]> git.sur5r.net Git - openldap/commitdiff
ITS#7757 plug memleak
authorHoward Chu <hyc@openldap.org>
Tue, 3 Dec 2013 22:16:20 +0000 (14:16 -0800)
committerHoward Chu <hyc@openldap.org>
Tue, 3 Dec 2013 22:16:20 +0000 (14:16 -0800)
libraries/libldap/cyrus.c

index a57292800be5a9bbbaff01b57083a7504cb89a74..b8dd81afb240164c70cea7400a4cf978adb51c97 100644 (file)
@@ -567,8 +567,11 @@ ldap_int_sasl_bind(
                ctx = ld->ld_defconn->lconn_sasl_authctx;
 
                rc = ldap_parse_sasl_bind_result( ld, result, &scred, 0 );
-               if ( rc != LDAP_SUCCESS )
+               if ( rc != LDAP_SUCCESS ) {
+                       if ( scred )
+                               ber_bvfree( scred );
                        goto done;
+               }
 
                rc = ldap_result2error( ld, result, 0 );
                if ( rc != LDAP_SUCCESS && rc != LDAP_SASL_BIND_IN_PROGRESS ) {
@@ -584,8 +587,11 @@ ldap_int_sasl_bind(
                }
 
                mech = *rmech;
-               if ( rc == LDAP_SUCCESS && mech == NULL )
+               if ( rc == LDAP_SUCCESS && mech == NULL ) {
+                       if ( scred )
+                               ber_bvfree( scred );
                        goto success;
+               }
 
                do {
                        if( ! scred ) {