[31552] in CVS-changelog-for-Kerberos-V5
krb5 commit: Fix memory leak parsing invalid FILE keytab entry
daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Thu Jul 9 20:38:09 2026
From: ghudson@mit.edu
To: cvs-krb5@mit.edu
Message-Id: <20260710003802.758481055D5@krbdev.mit.edu>
Date: Thu, 9 Jul 2026 20:38:02 -0400 (EDT)
MIME-Version: 1.0
Reply-To: krbdev@mit.edu
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
https://github.com/krb5/krb5/commit/37638e5a7cb6f507f7c9e9b61abb7f5189e804f3
commit 37638e5a7cb6f507f7c9e9b61abb7f5189e804f3
Author: Arthur Chan <arthur.chan@adalogics.com>
Date: Tue Jun 23 18:48:06 2026 +0100
Fix memory leak parsing invalid FILE keytab entry
Use krb5_free_principal() to free ret_entry->principal on error;
otherwise we could leak the realm on error.
[ghudson@mit.edu: used k5alloc; simplified cleanup code; rewrote
commit message]
src/lib/krb5/keytab/kt_file.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/lib/krb5/keytab/kt_file.c b/src/lib/krb5/keytab/kt_file.c
index 993f902c7..00fb072d9 100644
--- a/src/lib/krb5/keytab/kt_file.c
+++ b/src/lib/krb5/keytab/kt_file.c
@@ -948,7 +948,7 @@ krb5_ktfileint_internal_read_entry(krb5_context context, krb5_keytab id, krb5_ke
}
if (!count || (count < 0))
return KRB5_KT_END;
- ret_entry->principal = (krb5_principal)malloc(sizeof(krb5_principal_data));
+ ret_entry->principal = k5alloc(sizeof(*ret_entry->principal), &error);
if (!ret_entry->principal)
return ENOMEM;
@@ -1105,13 +1105,9 @@ krb5_ktfileint_internal_read_entry(krb5_context context, krb5_keytab id, krb5_ke
return 0;
fail:
-
- for (i = 0; i < ret_entry->principal->length; i++)
- free(ret_entry->principal->data[i].data);
- free(ret_entry->principal->data);
- ret_entry->principal->data = 0;
- free(ret_entry->principal);
- ret_entry->principal = 0;
+ krb5_free_principal(context, ret_entry->principal);
+ free(ret_entry->key.contents);
+ memset(ret_entry, 0, sizeof(*ret_entry));
return error;
}
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5