]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/bind.c
error message from be_entry_put tool backend function
[openldap] / servers / slapd / back-ldbm / bind.c
index b76fc0c8dcdaa4856c9a4405aaf4d6f37c3aa158..1eda1d2b36ab6613bf8459fd7264a258032ba243 100644 (file)
@@ -1,7 +1,7 @@
 /* bind.c - ldbm backend bind and unbind routines */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -54,23 +54,22 @@ ldbm_back_bind(
        dn = ndn;
 
        /* get entry with reader lock */
-       if ( (e = dn2entry_r( be, dn->bv_val, &matched )) == NULL ) {
+       if ( (e = dn2entry_r( be, dn, &matched )) == NULL ) {
                char *matched_dn = NULL;
-               struct berval **refs = NULL;
+               BVarray refs = NULL;
 
                if( matched != NULL ) {
                        matched_dn = ch_strdup( matched->e_dn );
 
                        refs = is_entry_referral( matched )
-                               ? get_entry_referrals( be, conn, op, matched,
-                                       dn->bv_val, LDAP_SCOPE_DEFAULT )
+                               ? get_entry_referrals( be, conn, op, matched )
                                : NULL;
 
                        cache_return_entry_r( &li->li_cache, matched );
 
                } else {
                        refs = referral_rewrite( default_referral,
-                               NULL, dn->bv_val, LDAP_SCOPE_DEFAULT );
+                               NULL, dn, LDAP_SCOPE_DEFAULT );
                }
 
                /* allow noauth binds */
@@ -98,8 +97,8 @@ ldbm_back_bind(
                                NULL, NULL, NULL, NULL );
                }
 
-               ber_bvecfree( refs );
-               free( matched_dn );
+               if ( refs ) bvarray_free( refs );
+               if ( matched_dn ) free( matched_dn );
                return( rc );
        }
 
@@ -127,8 +126,8 @@ ldbm_back_bind(
 
        if ( is_entry_referral( e ) ) {
                /* entry is a referral, don't allow bind */
-               struct berval **refs = get_entry_referrals( be,
-                       conn, op, e, dn->bv_val, LDAP_SCOPE_DEFAULT );
+               BVarray refs = get_entry_referrals( be,
+                       conn, op, e );
 
 #ifdef NEW_LOGGING
                LDAP_LOG(( "backend", LDAP_LEVEL_INFO,
@@ -148,7 +147,7 @@ ldbm_back_bind(
                                NULL, NULL, NULL, NULL );
                }
 
-               ber_bvecfree( refs );
+               bvarray_free( refs );
 
                rc = 1;
                goto return_results;