]> git.sur5r.net Git - openldap/commitdiff
update dn can add/modrdn/delete entries rooted at '' (according to ACLs)
authorPierangelo Masarati <ando@openldap.org>
Fri, 16 Nov 2001 15:06:18 +0000 (15:06 +0000)
committerPierangelo Masarati <ando@openldap.org>
Fri, 16 Nov 2001 15:06:18 +0000 (15:06 +0000)
servers/slapd/back-bdb/add.c
servers/slapd/back-bdb/delete.c
servers/slapd/back-bdb/modrdn.c

index 0753f1611bf0eeeb96684fc79a3f23b92e19ce8d..73d1127359724fca53ff6d8f5e0c4333bb811847 100644 (file)
@@ -195,7 +195,7 @@ retry:      rc = txn_abort( ltid );
                 *  or with parent ""
                 */
                if ( !be_isroot( be, op->o_ndn )) {
-                       if ( be_issuffix( be, "" ) ) {
+                       if ( be_issuffix( be, "" ) || be_isupdate( be, op->o_ndn ) ) {
                                static const Entry rootp = { NOID, "", "", NULL, NULL };
 
                                p = (Entry *)&rootp;
index 8ce2072a9396dd665ca17cc70f1f013744b8f18d..6aeae104829d27212bb97ebc26f9b0a0b8886c58 100644 (file)
@@ -163,7 +163,7 @@ retry:      /* transaction retry */
 
                /* no parent, must be root to delete */
                if( ! be_isroot( be, op->o_ndn ) ) {
-                       if ( be_issuffix( be, "" ) ) {
+                       if ( be_issuffix( be, "" ) || be_isupdate( be, op->o_ndn ) ) {
                                static const Entry rootp = { NOID, "", "", NULL, NULL };
 
                                p = (Entry *)&rootp;
index f7574bf8ce1d69d73c2f89adaecb533653c6a8e3..82203387034cd6b29275e4203c298600d54d10a8 100644 (file)
@@ -212,7 +212,7 @@ retry:      /* transaction retry */
                /* no parent, modrdn entry directly under root */
                isroot =  be_isroot( be, op->o_ndn );
                if ( ! isroot ) {
-                       if ( be_issuffix( be, "" ) ) {
+                       if ( be_issuffix( be, "" ) || be_isupdate( be, op->o_ndn ) ) {
 
                                p = (Entry *)&roote;
 
@@ -333,7 +333,7 @@ retry:      /* transaction retry */
 
                        /* no parent, modrdn entry directly under root */
                        if ( ! isroot ) {
-                               if ( be_issuffix( be, "" ) ) {
+                               if ( be_issuffix( be, "" ) || be_isupdate( be, op->o_ndn ) ) {
 
                                        np = (Entry *)&roote;