From: Matthias Dieter Wallnöfer Date: Sat, 15 Jan 2011 17:12:09 +0000 (+0100) Subject: s4:dsdb_find_nc_root - fix it up to let the provisioning work correctly X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=93d96414be1e7fbf895a05025c0a3422dc55c88e;p=samba.git s4:dsdb_find_nc_root - fix it up to let the provisioning work correctly Use the temporary list unless we have at least the three main "namingContexts" from the rootDSE available (Default, Configuration, Schema - these are mandatory on all AD deployments!). This bug has been discovered by Nadya in relation with her SD work. Autobuild-User: Matthias Dieter Wallnöfer Autobuild-Date: Sat Jan 15 19:01:11 CET 2011 on sn-devel-104 --- diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c index b2d4be00689..148a77d1534 100644 --- a/source4/dsdb/common/util.c +++ b/source4/dsdb/common/util.c @@ -3284,10 +3284,10 @@ int dsdb_find_nc_root(struct ldb_context *samdb, TALLOC_CTX *mem_ctx, struct ldb } el = ldb_msg_find_element(root_res->msgs[0], "namingContexts"); - if (!el) { + if ((el == NULL) || (el->num_values < 3)) { struct ldb_message *tmp_msg; - DEBUG(5,("Finding namingContexts element in root_res failed. Using a temporary list.")); + DEBUG(5,("dsdb_find_nc_root: Finding a valid 'namingContexts' element in the RootDSE failed. Using a temporary list.")); /* This generates a temporary list of NCs in order to let the * provisioning work. */