s3-libads: fix a memory leak in ads_sasl_spnego_bind()
authorUri Simchoni <uri@samba.org>
Sun, 3 Jul 2016 19:51:56 +0000 (22:51 +0300)
committerRichard Sharpe <sharpe@samba.org>
Tue, 5 Jul 2016 18:55:08 +0000 (20:55 +0200)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12006

Signed-off-by: Uri Simchoni <uri@samba.org>
Signed-off-by: Richard Sharpe <rsharpe@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
source3/libads/sasl.c

index 10f63e891817b51e65de883f6ffcbf6cca2dce26..d76d8724ac0a39f78a7a83663379c81bf0579932 100644 (file)
@@ -696,7 +696,7 @@ static ADS_STATUS ads_sasl_spnego_bind(ADS_STRUCT *ads)
        struct berval *scred=NULL;
        int rc, i;
        ADS_STATUS status;
-       DATA_BLOB blob;
+       DATA_BLOB blob = data_blob_null;
        char *given_principal = NULL;
        char *OIDs[ASN1_MAX_OIDS];
 #ifdef HAVE_KRB5
@@ -792,6 +792,9 @@ static ADS_STATUS ads_sasl_spnego_bind(ADS_STRUCT *ads)
 done:
        ads_free_service_principal(&p);
        TALLOC_FREE(frame);
+       if (blob.data != NULL) {
+               data_blob_free(&blob);
+       }
        return status;
 }