mirror of
https://github.com/samba-team/samba.git
synced 2025-08-26 01:49:31 +03:00
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 <uri@samba.org>
Reviewed-by: Richard Sharpe <rsharpe@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Richard Sharpe <sharpe@samba.org>
Autobuild-Date(master): Wed Jul 6 00:40:15 CEST 2016 on sn-devel-144
(cherry picked from commit 77f3730295
)
Autobuild-User(v4-3-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-3-test): Fri Jul 8 14:11:21 CEST 2016 on sn-devel-104
This commit is contained in:
committed by
Karolin Seeger
parent
c7dd545514
commit
e855e4431d
@ -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) {
|
||||
|
Reference in New Issue
Block a user