diff options
author | Andrew Bartlett <abartlet@samba.org> | 2009-09-25 08:34:33 -0700 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-10-02 12:45:07 +0200 |
commit | 1c71c096459da85b1e5276d8c315b05e7bc870fa (patch) | |
tree | 45d4eb8174cc0beaa545163db0912636a75fdefb | |
parent | 46c2af361252ae5543691854e8e3896d1e4b8e92 (diff) | |
download | samba-1c71c096459da85b1e5276d8c315b05e7bc870fa.tar.gz samba-1c71c096459da85b1e5276d8c315b05e7bc870fa.tar.bz2 samba-1c71c096459da85b1e5276d8c315b05e7bc870fa.zip |
s4:dsdb Don't allow creating of new objects with an isDefunct schema class
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/objectclass.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/objectclass.c b/source4/dsdb/samdb/ldb_modules/objectclass.c index ad14acbcf8..cc88d6b96d 100644 --- a/source4/dsdb/samdb/ldb_modules/objectclass.c +++ b/source4/dsdb/samdb/ldb_modules/objectclass.c @@ -138,7 +138,13 @@ static int objectclass_sort(struct ldb_module *module, if (!current->objectclass) { ldb_asprintf_errstring(ldb, "objectclass %.*s is not a valid objectClass in schema", (int)objectclass_element->values[i].length, (const char *)objectclass_element->values[i].data); - return LDB_ERR_OBJECT_CLASS_VIOLATION; + /* This looks weird, but windows apparently returns this for invalid objectClass values */ + return LDB_ERR_NO_SUCH_ATTRIBUTE; + } else if (current->objectclass->isDefunct) { + ldb_asprintf_errstring(ldb, "objectclass %.*s marked as isDefunct objectClass in schema - not valid for new objects", + (int)objectclass_element->values[i].length, (const char *)objectclass_element->values[i].data); + /* This looks weird, but windows apparently returns this for invalid objectClass values */ + return LDB_ERR_NO_SUCH_ATTRIBUTE; } /* this is the root of the tree. We will start |