From d2900ddf1121f777ec8b28620fa93637b58e2a59 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 2 Aug 2007 15:11:37 +0000 Subject: r24128: fix double free in error path metze (This used to be commit 29e2d8e044c9213643a2f5f29891ce853a839347) --- source3/libads/sasl.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'source3') diff --git a/source3/libads/sasl.c b/source3/libads/sasl.c index 5c4006e769..c727c8b50a 100644 --- a/source3/libads/sasl.c +++ b/source3/libads/sasl.c @@ -962,11 +962,10 @@ static ADS_STATUS ads_sasl_gssapi_do_bind(ADS_STRUCT *ads, const gss_name_t serv &output_token, &ret_flags, NULL); - - if (input_token.value) { - gss_release_buffer(&minor_status, &input_token); + if (scred) { + ber_bvfree(scred); + scred = NULL; } - if (gss_rc && gss_rc != GSS_S_CONTINUE_NEEDED) { status = ADS_ERROR_GSS(gss_rc, minor_status); goto failed; @@ -999,13 +998,15 @@ static ADS_STATUS ads_sasl_gssapi_do_bind(ADS_STRUCT *ads, const gss_name_t serv gss_rc = gss_unwrap(&minor_status,context_handle,&input_token,&output_token, &conf_state,NULL); + if (scred) { + ber_bvfree(scred); + scred = NULL; + } if (gss_rc) { status = ADS_ERROR_GSS(gss_rc, minor_status); goto failed; } - gss_release_buffer(&minor_status, &input_token); - p = (uint8 *)output_token.value; #if 0 -- cgit