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
	 Luke Howard
					Luke Howard