diff options
author | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-10-12 17:32:24 +0200 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-10-12 17:35:52 +0200 |
commit | 8b67e1ab703e85182eb288138d3fb1fa8a903002 (patch) | |
tree | 4a509019ce3bcd03a3d74f0e1d3a9b1b485864c5 | |
parent | 926a935a612e3d3d3aec6473303a884126d9ea72 (diff) | |
download | samba-8b67e1ab703e85182eb288138d3fb1fa8a903002.tar.gz samba-8b67e1ab703e85182eb288138d3fb1fa8a903002.tar.bz2 samba-8b67e1ab703e85182eb288138d3fb1fa8a903002.zip |
s4:objectclass ldb module - Check for empty messages
I think the check for empty messages fits best here.
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/objectclass.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass.c b/source4/dsdb/samdb/ldb_modules/objectclass.c index b6f1a1aa23..b5e058df0b 100644 --- a/source4/dsdb/samdb/ldb_modules/objectclass.c +++ b/source4/dsdb/samdb/ldb_modules/objectclass.c @@ -706,7 +706,13 @@ static int objectclass_modify(struct ldb_module *module, struct ldb_request *req if (!schema) { return ldb_next_request(module, req); } - objectclass_element = ldb_msg_find_element(req->op.mod.message, "objectClass"); + + /* As with the "real" AD we don't accept empty messages */ + if (req->op.mod.message->num_elements == 0) { + ldb_set_errstring(ldb, "objectclass: modify message must have " + "elements/attributes!"); + return LDB_ERR_UNWILLING_TO_PERFORM; + } ac = oc_init_context(module, req); if (ac == NULL) { @@ -715,6 +721,7 @@ static int objectclass_modify(struct ldb_module *module, struct ldb_request *req /* If no part of this touches the objectClass, then we don't * need to make any changes. */ + objectclass_element = ldb_msg_find_element(req->op.mod.message, "objectClass"); /* If the only operation is the deletion of the objectClass * then go on with just fixing the attribute case */ |