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