1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

s4:dsdb/subtree_delete: do the recursive delete AS_SYSTEM/TRUSTED (bug #7711)

Now that the acl module checks for SEC_ADS_DELETE_TREE,
we can do the recursive delete AS_SYSTEM.

We need to pass the TRUSTED flags as we operate from
the TOP module.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
This commit is contained in:
Stefan Metzmacher 2012-11-24 10:14:59 +01:00 committed by Michael Adam
parent 60192fd100
commit 5dd4555f39

View File

@ -79,9 +79,17 @@ static int subtree_delete(struct ldb_module *module, struct ldb_request *req)
return LDB_ERR_NOT_ALLOWED_ON_NON_LEAF;
}
/* we need to start from the top since other LDB modules could
* enforce constraints (eg "objectclass" and "samldb" do so). */
flags = DSDB_FLAG_TOP_MODULE | DSDB_TREE_DELETE;
/*
* we need to start from the top since other LDB modules could
* enforce constraints (eg "objectclass" and "samldb" do so).
*
* We pass DSDB_FLAG_AS_SYSTEM as the acl module above us
* has already checked for SEC_ADS_DELETE_TREE.
*/
flags = DSDB_FLAG_TOP_MODULE |
DSDB_FLAG_AS_SYSTEM |
DSDB_FLAG_TRUSTED |
DSDB_TREE_DELETE;
if (ldb_request_get_control(req, LDB_CONTROL_RELAX_OID) != NULL) {
flags |= DSDB_MODIFY_RELAX;
}