aboutsummaryrefslogtreecommitdiff
path: root/src/lib/gssapi
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2011-02-22 20:30:24 +0000
committerGreg Hudson <ghudson@mit.edu>2011-02-22 20:30:24 +0000
commit5da01b50554199e0ea275581755af4dce5b27f6d (patch)
tree402c2c9219b2fe24082058eb9f77cb5590f22c4d /src/lib/gssapi
parentc7646b1baf19f4f849c4e42dd6adced4d7cb2fcf (diff)
downloadkrb5-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.c7
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)