https://bugs.gentoo.org/971622 https://github.com/FreeRDP/FreeRDP/pull/12555 From b747708a8986f56903620b0e3e08b8b140ffeab7 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Fri, 27 Mar 2026 08:57:03 +0100 Subject: [PATCH] [winpr,kerberos] fix krb_log_context_encryption * For MIT the values returned from krb5_get_etype_info must be cleaned up. * For Heimdal add a separate path, currently only stubbed --- winpr/libwinpr/sspi/Kerberos/kerberos.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/winpr/libwinpr/sspi/Kerberos/kerberos.c b/winpr/libwinpr/sspi/Kerberos/kerberos.c index 2be916498abb..c486ec3b053e 100644 --- a/winpr/libwinpr/sspi/Kerberos/kerberos.c +++ b/winpr/libwinpr/sspi/Kerberos/kerberos.c @@ -153,18 +153,28 @@ krb5_error_code kerberos_log_msg(krb5_context ctx, krb5_error_code code, const c void krb_log_context_encryption(krb5_context ctx, krb5_principal princ) { +#if defined(WITH_KRB5_HEIMDAL) + WLog_WARN(TAG, "TODO: Implement encryption info message for Heimdal"); +#elif defined(WITH_KRB5_MIT) krb5_get_init_creds_opt opt = WINPR_C_ARRAY_INIT; krb5_enctype enctype = 0; krb5_data salt = WINPR_C_ARRAY_INIT; krb5_data s2kparam = WINPR_C_ARRAY_INIT; char buffer[128] = WINPR_C_ARRAY_INIT; - krb5_error_code rv = krb_log_exec(krb5_get_etype_info, ctx, princ, &opt, &enctype, &salt, &s2kparam); krb5_enctype_to_string(enctype, buffer, sizeof(buffer)); const char* msg = krb5_get_error_message(ctx, rv); + WLog_DBG(TAG, "[%s] enctype=%s, salt[%u]=%s, s2kparam[%u]=%s", msg, buffer, salt.length, salt.data, s2kparam.length, s2kparam.data); + + krb5_free_data_contents(ctx, &salt); + krb5_free_data_contents(ctx, &s2kparam); + krb5_free_error_message(ctx, msg); +#else +#error "Missing implementation for unknown kerberos type" +#endif } static void credentials_unref(KRB_CREDENTIALS* credentials);