krb5: not_found must free krb5_get_error_message string

Even though krb5_get_error_message() returns 'const char *' the
C-string is allocated and must be freed using krb5_free_error_message().

Change-Id: I8d4ef6fce12f113617443d15abadf51f1e04cf1a
This commit is contained in:
Jeffrey Altman
2020-05-27 02:35:46 -04:00
committed by Jeffrey Altman
parent c6213fc894
commit 739f7e0484

View File

@@ -684,15 +684,17 @@ static int
not_found(krb5_context context, krb5_const_principal p, krb5_error_code code)
{
krb5_error_code ret;
char *str, *err;
char *str;
const char *err;
err = krb5_get_error_message(context, code);
ret = krb5_unparse_name(context, p, &str);
if(ret) {
krb5_clear_error_message(context);
return code;
}
err = krb5_get_error_message(context, code);
krb5_set_error_message(context, code, N_("%s (%s)", ""), err, str);
krb5_free_error_message(context, err);
free(str);
return code;
}