]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/bind.c
Import slapd nextid chunking from -devel.
[openldap] / servers / slapd / bind.c
index d5d4cae9669080149274473f51c084ee9d39fc76..4ba1471d5bfb90cf57e8527e612a784659467fb2 100644 (file)
@@ -135,6 +135,20 @@ do_bind(
                        free( cred.bv_val );
                }
 
+               pthread_mutex_lock( &conn->c_dnmutex );
+
+               if ( conn->c_cdn != NULL ) {
+                       free( conn->c_cdn );
+                       conn->c_cdn = NULL;
+               }
+
+               if ( conn->c_dn != NULL ) {
+                       free( conn->c_dn );
+                       conn->c_dn = NULL;
+               }
+
+               pthread_mutex_unlock( &conn->c_dnmutex );
+
                send_ldap_result( conn, op, LDAP_SUCCESS, NULL, NULL );
                return;
        }
@@ -152,6 +166,20 @@ do_bind(
                        free( cred.bv_val );
                }
                if ( cred.bv_len == 0 ) {
+                       pthread_mutex_lock( &conn->c_dnmutex );
+
+                       if ( conn->c_cdn != NULL ) {
+                               free( conn->c_cdn );
+                               conn->c_cdn = NULL;
+                       }
+
+                       if ( conn->c_dn != NULL ) {
+                               free( conn->c_dn );
+                               conn->c_dn = NULL;
+                       }
+
+                       pthread_mutex_unlock( &conn->c_dnmutex );
+
                        send_ldap_result( conn, op, LDAP_SUCCESS,
                                NULL, NULL );
                } else if ( default_referral && *default_referral ) {