diff options
author | Greg Hudson <ghudson@mit.edu> | 2011-02-22 20:30:24 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2011-02-22 20:30:24 +0000 |
commit | 5da01b50554199e0ea275581755af4dce5b27f6d (patch) | |
tree | 402c2c9219b2fe24082058eb9f77cb5590f22c4d /src/lib/gssapi | |
parent | c7646b1baf19f4f849c4e42dd6adced4d7cb2fcf (diff) | |
download | krb5-5da01b50554199e0ea275581755af4dce5b27f6d.zip krb5-5da01b50554199e0ea275581755af4dce5b27f6d.tar.gz krb5-5da01b50554199e0ea275581755af4dce5b27f6d.tar.bz2 |
Don't leak the mechanism internal context when we get an error in the
mechglue's gss_accept_sec_context.
From aberry@likewise.com.
ticket: 6813
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24645 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi')
-rw-r--r-- | src/lib/gssapi/mechglue/g_accept_sec_context.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/gssapi/mechglue/g_accept_sec_context.c b/src/lib/gssapi/mechglue/g_accept_sec_context.c index d585de7..cf21c15 100644 --- a/src/lib/gssapi/mechglue/g_accept_sec_context.c +++ b/src/lib/gssapi/mechglue/g_accept_sec_context.c @@ -352,9 +352,14 @@ error_out: if (union_ctx_id->mech_type->elements) free(union_ctx_id->mech_type->elements); free(union_ctx_id->mech_type); - *context_handle = GSS_C_NO_CONTEXT; + } + if (union_ctx_id->internal_ctx_id && mech->gss_delete_sec_context) { + mech->gss_delete_sec_context(&temp_minor_status, + &union_ctx_id->internal_ctx_id, + GSS_C_NO_BUFFER); } free(union_ctx_id); + *context_handle = GSS_C_NO_CONTEXT; } if (src_name) |