From: Pierangelo Masarati Date: Fri, 16 Nov 2001 15:06:18 +0000 (+0000) Subject: update dn can add/modrdn/delete entries rooted at '' (according to ACLs) X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~855 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4c283cfe65e7a289847c158543d0623f45f6a3c8;p=openldap update dn can add/modrdn/delete entries rooted at '' (according to ACLs) --- diff --git a/servers/slapd/back-bdb/add.c b/servers/slapd/back-bdb/add.c index 0753f1611b..73d1127359 100644 --- a/servers/slapd/back-bdb/add.c +++ b/servers/slapd/back-bdb/add.c @@ -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; diff --git a/servers/slapd/back-bdb/delete.c b/servers/slapd/back-bdb/delete.c index 8ce2072a93..6aeae10482 100644 --- a/servers/slapd/back-bdb/delete.c +++ b/servers/slapd/back-bdb/delete.c @@ -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; diff --git a/servers/slapd/back-bdb/modrdn.c b/servers/slapd/back-bdb/modrdn.c index f7574bf8ce..8220338703 100644 --- a/servers/slapd/back-bdb/modrdn.c +++ b/servers/slapd/back-bdb/modrdn.c @@ -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;