From: Uri Simchoni Date: Sun, 3 Jul 2016 19:50:22 +0000 (+0300) Subject: auth: fix a memory leak in gssapi_get_session_key() X-Git-Tag: samba-4.3.12~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e855e4431d26fc63dc8188d146f987ef5eb89d47;p=thirdparty%2Fsamba.git auth: fix a memory leak in gssapi_get_session_key() BUG: https://bugzilla.samba.org/show_bug.cgi?id=12006 Signed-off-by: Uri Simchoni Reviewed-by: Richard Sharpe Reviewed-by: Andreas Schneider Autobuild-User(master): Richard Sharpe Autobuild-Date(master): Wed Jul 6 00:40:15 CEST 2016 on sn-devel-144 (cherry picked from commit 77f3730295735dc9465c8e3d07fc761c83761b6e) Autobuild-User(v4-3-test): Karolin Seeger Autobuild-Date(v4-3-test): Fri Jul 8 14:11:21 CEST 2016 on sn-devel-104 --- diff --git a/auth/kerberos/gssapi_pac.c b/auth/kerberos/gssapi_pac.c index c6fa9092080..495d2dd7454 100644 --- a/auth/kerberos/gssapi_pac.c +++ b/auth/kerberos/gssapi_pac.c @@ -238,6 +238,7 @@ NTSTATUS gssapi_get_session_key(TALLOC_CTX *mem_ctx, int diflen, i; const uint8_t *p; + *keytype = 0; if (set->count < 2) { #ifdef HAVE_GSSKRB5_GET_SUBKEY @@ -248,10 +249,6 @@ NTSTATUS gssapi_get_session_key(TALLOC_CTX *mem_ctx, if (gss_maj == 0) { *keytype = KRB5_KEY_TYPE(subkey); krb5_free_keyblock(NULL /* should be krb5_context */, subkey); - } else -#else - { - *keytype = 0; } #endif gss_maj = gss_release_buffer_set(&gss_min, &set); @@ -262,7 +259,6 @@ NTSTATUS gssapi_get_session_key(TALLOC_CTX *mem_ctx, gse_sesskeytype_oid.elements, gse_sesskeytype_oid.length) != 0) { /* Perhaps a non-krb5 session key */ - *keytype = 0; gss_maj = gss_release_buffer_set(&gss_min, &set); return NT_STATUS_OK; } @@ -272,7 +268,6 @@ NTSTATUS gssapi_get_session_key(TALLOC_CTX *mem_ctx, gss_maj = gss_release_buffer_set(&gss_min, &set); return NT_STATUS_INVALID_PARAMETER; } - *keytype = 0; for (i = 0; i < diflen; i++) { *keytype = (*keytype << 7) | (p[i] & 0x7f); if (i + 1 != diflen && (p[i] & 0x80) == 0) {