[31666] in CVS-changelog-for-Kerberos-V5
krb5 commit [krb5-1.22]: Fix leak on error in xdr_krb5_keyblock()
daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Mon Nov 9 12:01:40 2026
From: ghudson@mit.edu
To: cvs-krb5@mit.edu
Message-Id: <20261109170135.9A502105839@krbdev.mit.edu>
Date: Mon, 9 Nov 2026 12:01:35 -0500 (EST)
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/10192728aab5f5743df5fb0a71fa86165dc5d6a8
commit 10192728aab5f5743df5fb0a71fa86165dc5d6a8
Author: Greg Hudson <ghudson@mit.edu>
Date: Sat Oct 17 10:50:28 2026 -0400
Fix leak on error in xdr_krb5_keyblock()
In xdr_krb5_keyblock(), if xdr_bytes() fails, still assign cp back to
objp->contents to avoid leaking a potential allocation.
(cherry picked from commit 893576ef054c7f136b1601cdea7d47ce18442ae0)
ticket: 9261
version_fixed: 1.22.3
src/lib/kadm5/kadm_rpc_xdr.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/lib/kadm5/kadm_rpc_xdr.c b/src/lib/kadm5/kadm_rpc_xdr.c
index 9387eba06..2ece69c58 100644
--- a/src/lib/kadm5/kadm_rpc_xdr.c
+++ b/src/lib/kadm5/kadm_rpc_xdr.c
@@ -1156,16 +1156,16 @@ bool_t
xdr_krb5_keyblock(XDR *xdrs, krb5_keyblock *objp)
{
char *cp;
+ bool_t r;
/* XXX This only works because free_keyblock assumes ->contents
is allocated by malloc() */
if(!xdr_krb5_enctype(xdrs, &objp->enctype))
return FALSE;
cp = (char *)objp->contents;
- if (!xdr_bytes(xdrs, &cp, &objp->length, GSSRPC_MAX_ELEMENT_SIZE))
- return FALSE;
+ r = xdr_bytes(xdrs, &cp, &objp->length, GSSRPC_MAX_ELEMENT_SIZE);
objp->contents = (uint8_t *)cp;
- return TRUE;
+ return r;
}
bool_t
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5