From 20beaf630b89e5f1547f2c0a10311de898d69b7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Mon, 16 Jan 2006 13:12:29 +0000 Subject: [PATCH] (gss_delete_sec_context): if the context handle is GSS_C_NO_CONTEXT, don't fall over. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16569 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/delete_sec_context.c | 6 +++++- lib/gssapi/krb5/delete_sec_context.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/gssapi/delete_sec_context.c b/lib/gssapi/delete_sec_context.c index 6803fd117..1cdc16337 100644 --- a/lib/gssapi/delete_sec_context.c +++ b/lib/gssapi/delete_sec_context.c @@ -43,11 +43,16 @@ OM_uint32 gss_delete_sec_context { GSSAPI_KRB5_INIT (); + *minor_status = 0; + if (output_token) { output_token->length = 0; output_token->value = NULL; } + if (*context_handle == GSS_C_NO_CONTEXT) + return GSS_S_COMPLETE; + HEIMDAL_MUTEX_lock(&(*context_handle)->ctx_id_mutex); krb5_auth_con_free (gssapi_krb5_context, @@ -69,6 +74,5 @@ OM_uint32 gss_delete_sec_context memset(*context_handle, 0, sizeof(**context_handle)); free (*context_handle); *context_handle = GSS_C_NO_CONTEXT; - *minor_status = 0; return GSS_S_COMPLETE; } diff --git a/lib/gssapi/krb5/delete_sec_context.c b/lib/gssapi/krb5/delete_sec_context.c index 6803fd117..1cdc16337 100644 --- a/lib/gssapi/krb5/delete_sec_context.c +++ b/lib/gssapi/krb5/delete_sec_context.c @@ -43,11 +43,16 @@ OM_uint32 gss_delete_sec_context { GSSAPI_KRB5_INIT (); + *minor_status = 0; + if (output_token) { output_token->length = 0; output_token->value = NULL; } + if (*context_handle == GSS_C_NO_CONTEXT) + return GSS_S_COMPLETE; + HEIMDAL_MUTEX_lock(&(*context_handle)->ctx_id_mutex); krb5_auth_con_free (gssapi_krb5_context, @@ -69,6 +74,5 @@ OM_uint32 gss_delete_sec_context memset(*context_handle, 0, sizeof(**context_handle)); free (*context_handle); *context_handle = GSS_C_NO_CONTEXT; - *minor_status = 0; return GSS_S_COMPLETE; }