diff -uNr openldap-2.2.29/libraries/libldap/cyrus.c openldap-2.2.29/libraries/libldap/cyrus.c --- openldap-2.2.29/libraries/libldap/cyrus.c 2005-10-04 15:34:31.000000000 -0400 +++ openldap-2.2.29/libraries/libldap/cyrus.c 2005-11-09 19:00:15.000000000 -0500 @@ -755,10 +755,11 @@ "ldap_int_sasl_bind: rc=%d sasl=%d len=%ld\n", rc, saslrc, scred->bv_len ); #endif + rc = ld->ld_errno = LDAP_LOCAL_ERROR; + ber_bvfree( scred ); + goto done; } ber_bvfree( scred ); - rc = ld->ld_errno = LDAP_LOCAL_ERROR; - goto done; } break; }