]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#1430 fixes from HEAD
authorKurt Zeilenga <kurt@openldap.org>
Tue, 13 Nov 2001 19:41:50 +0000 (19:41 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 13 Nov 2001 19:41:50 +0000 (19:41 +0000)
servers/slapd/back-ldbm/delete.c
servers/slapd/back-ldbm/modrdn.c

index 6ff7a967a89dac5dcf22d4477d2e75fdb5ebe84d..dc8e63516d78241ce9ff78a0f66cbe05ab797d31 100644 (file)
@@ -93,7 +93,7 @@ ldbm_back_delete(
        }
 
        /* delete from parent's id2children entry */
-       if( (pdn = dn_parent( be, e->e_ndn )) != NULL ) {
+       if( (pdn = dn_parent( be, e->e_ndn )) != NULL && pdn[ 0 ] != '\0' ) {
                if( (p = dn2entry_w( be, pdn, NULL )) == NULL) {
                        Debug( LDAP_DEBUG_TRACE,
                                "<=- ldbm_back_delete: parent does not exist\n",
@@ -117,7 +117,7 @@ ldbm_back_delete(
 
        } else {
                /* no parent, must be root to delete */
-               if( ! be_isroot( be, op->o_ndn ) ) {
+               if( ! be_isroot( be, op->o_ndn ) && ! be_issuffix( be, "" )  ) {
                        Debug( LDAP_DEBUG_TRACE,
                                "<=- ldbm_back_delete: no parent & not root\n",
                                0, 0, 0);
index b87b056a5c57e45a08f8ceed37617400a20ddbdf..ebc8cc8351627809dc3a87b7299352e278d77314 100644 (file)
@@ -373,8 +373,8 @@ ldbm_back_modrdn(
 
                val.bv_val = new_rdn_vals[a_cnt];
                val.bv_len = strlen( val.bv_val );
-               if ( ! access_allowed( be, conn, op, p
-                               mod_tmp->sml_desc, &val, ACL_WRITE ) ) {
+               if ( ! access_allowed( be, conn, op, e
+                               desc, &val, ACL_WRITE ) ) {
                        Debug( LDAP_DEBUG_TRACE,
                                "ldbm_back_modrdn: access not allowed "
                                "to attr \"%s\"\n%s%s",
@@ -431,8 +431,8 @@ ldbm_back_modrdn(
 
                        val.bv_val = old_rdn_vals[d_cnt];
                        val.bv_len = strlen( val.bv_val );
-                       if ( ! access_allowed( be, conn, op, p
-                                       mod_tmp->sml_desc, &val, ACL_WRITE ) ) {
+                       if ( ! access_allowed( be, conn, op, e
+                                       desc, &val, ACL_WRITE ) ) {
                                Debug( LDAP_DEBUG_TRACE,
                                        "ldbm_back_modrdn: access not allowed "
                                        "to attr \"%s\"\n%s%s",