From 9383a88a86a361fcd9c4e9d40cc179e99d5c8b92 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Thu, 16 Apr 2020 07:20:43 +0000 Subject: [PATCH] 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. --- lib/gssapi/mech/gssspi_exchange_meta_data.c | 2 +- lib/gssapi/mech/gssspi_query_meta_data.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gssapi/mech/gssspi_exchange_meta_data.c b/lib/gssapi/mech/gssspi_exchange_meta_data.c index 1a83bf6cd..fa98cbd73 100644 --- a/lib/gssapi/mech/gssspi_exchange_meta_data.c +++ b/lib/gssapi/mech/gssspi_exchange_meta_data.c @@ -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; diff --git a/lib/gssapi/mech/gssspi_query_meta_data.c b/lib/gssapi/mech/gssspi_query_meta_data.c index daf679af9..490bbc9f0 100644 --- a/lib/gssapi/mech/gssspi_query_meta_data.c +++ b/lib/gssapi/mech/gssspi_query_meta_data.c @@ -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;