r24260: Ensure we always override any existing values for these generated
authorAndrew Bartlett <abartlet@samba.org>
Tue, 7 Aug 2007 03:35:45 +0000 (03:35 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:01:31 +0000 (15:01 -0500)
attributes.  Anything else leads to madness.

Andrew Bartlett

source/dsdb/samdb/ldb_modules/kludge_acl.c

index ed95d8112d97f03a2ca514e35578aa313bd4833d..d26c8e348572e8a33a171ec2e657beb01bcbd464 100644 (file)
@@ -122,6 +122,8 @@ static int kludge_acl_allowedAttributes(struct ldb_context *ldb, struct ldb_mess
        const struct dsdb_schema *schema = dsdb_get_schema(ldb);
        const struct dsdb_class *class;
        int i, j, ret;
+       /* Must remove any existing attribute, or else confusion reins */
+       ldb_msg_remove_attr(msg, attrName);
        ret = ldb_msg_add_empty(msg, attrName, 0, &allowedAttributes);
        if (ret != LDB_SUCCESS) {
                return ret;
@@ -182,6 +184,8 @@ static int kludge_acl_childClasses(struct ldb_context *ldb, struct ldb_message *
        const struct dsdb_schema *schema = dsdb_get_schema(ldb);
        const struct dsdb_class *class;
        int i, j, ret;
+       /* Must remove any existing attribute, or else confusion reins */
+       ldb_msg_remove_attr(msg, attrName);
        ret = ldb_msg_add_empty(msg, attrName, 0, &allowedClasses);
        if (ret != LDB_SUCCESS) {
                return ret;