From: Greg Hudson Date: Tue, 5 Mar 2024 22:38:49 +0000 (-0500) Subject: Fix leak in KDC NDR encoding X-Git-Tag: krb5-1.22-beta1~114 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7d0d85bf99caf60c0afd4dcf91b0c4c683b983fe;p=thirdparty%2Fkrb5.git Fix leak in KDC NDR encoding If the KDC tries to encode a principal containing encode invalid UTF-8 sequences for inclusion in a PAC delegation info buffer, it will leak a small amount of memory in enc_wchar_pointer() before failing. Fix the leak. ticket: 9115 (new) tags: pullup target_version: 1.21-next --- diff --git a/src/kdc/ndr.c b/src/kdc/ndr.c index 48395abe52..d438408ee2 100644 --- a/src/kdc/ndr.c +++ b/src/kdc/ndr.c @@ -96,14 +96,13 @@ enc_wchar_pointer(const char *utf8, struct encoded_wchars *encoded_out) size_t utf16len, num_wchars; uint8_t *utf16; - k5_buf_init_dynamic(&b); - ret = k5_utf8_to_utf16le(utf8, &utf16, &utf16len); if (ret) return ret; num_wchars = utf16len / 2; + k5_buf_init_dynamic(&b); k5_buf_add_uint32_le(&b, num_wchars + 1); k5_buf_add_uint32_le(&b, 0); k5_buf_add_uint32_le(&b, num_wchars);