gss: honor allocated_ctx in gss_{exchange,query}_meta_data

The NegoEx gss_{exchange,query}_meta_data functions set allocated_ctx but never
did anything with it. Use it to determine whether we should free the context
handle on error.
This commit is contained in:
Luke Howard
2020-04-16 07:20:43 +00:00
parent c70540480b
commit 9383a88a86
2 changed files with 2 additions and 2 deletions

View File

@@ -104,7 +104,7 @@ gssspi_exchange_meta_data(
_gss_mg_error(m, *minor_status);
cleanup:
if (major_status != GSS_S_COMPLETE || ctx->gc_ctx == GSS_C_NO_CONTEXT)
if (allocated_ctx && major_status != GSS_S_COMPLETE)
gss_delete_sec_context(&junk, (gss_ctx_id_t *)&ctx, GSS_C_NO_BUFFER);
*context_handle = (gss_ctx_id_t) ctx;

View File

@@ -106,7 +106,7 @@ gssspi_query_meta_data(
_gss_mg_error(m, *minor_status);
cleanup:
if (major_status != GSS_S_COMPLETE || ctx->gc_ctx == GSS_C_NO_CONTEXT)
if (allocated_ctx && major_status != GSS_S_COMPLETE)
gss_delete_sec_context(&junk, (gss_ctx_id_t *)&ctx, GSS_C_NO_BUFFER);
*context_handle = (gss_ctx_id_t) ctx;