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:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user