diff --git a/lib/krb5/error_string.c b/lib/krb5/error_string.c index 27b7f2d88..7567b25bd 100644 --- a/lib/krb5/error_string.c +++ b/lib/krb5/error_string.c @@ -107,3 +107,25 @@ krb5_have_error_string(krb5_context context) HEIMDAL_MUTEX_unlock(context->mutex); return str != NULL; } + +char * KRB5_LIB_FUNCTION +krb5_get_error_message(krb5_context context, krb5_error_code code) +{ + char *str; + + str = krb5_get_error_string(context); + if (str) + return str; + + { + const char *cstr = krb5_get_err_text(context, code); + if (cstr) + return strdup(cstr); + } + + if (asprintf(&str, "", code) == -1) + return NULL; + + return str; +} +