r25748: Don't segfault if we don't have a schema yet.
authorAndrew Bartlett <abartlet@samba.org>
Mon, 29 Oct 2007 09:58:29 +0000 (10:58 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:43:41 +0000 (05:43 +0100)
Andrew Bartlett
(This used to be commit 388e15a4c1fab55d376be956c2a7168b946bc994)

source4/dsdb/samdb/ldb_modules/kludge_acl.c

index 27c13ddf60ed95eb9ab17c344a04ca044a0e82c6..97130495a3adde2df3d54a8427cc366c0080a530 100644 (file)
@@ -122,6 +122,12 @@ 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;
+
+       /* If we don't have a schema yet, we can't do anything... */
+       if (schema == NULL) {
+               return LDB_SUCCESS;
+       }
+
        /* Must remove any existing attribute, or else confusion reins */
        ldb_msg_remove_attr(msg, attrName);
        ret = ldb_msg_add_empty(msg, attrName, 0, &allowedAttributes);
@@ -184,6 +190,12 @@ 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;
+
+       /* If we don't have a schema yet, we can't do anything... */
+       if (schema == NULL) {
+               return LDB_SUCCESS;
+       }
+
        /* Must remove any existing attribute, or else confusion reins */
        ldb_msg_remove_attr(msg, attrName);
        ret = ldb_msg_add_empty(msg, attrName, 0, &allowedClasses);