From 93d96414be1e7fbf895a05025c0a3422dc55c88e Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Sat, 15 Jan 2011 18:12:09 +0100 Subject: s4:dsdb_find_nc_root - fix it up to let the provisioning work correctly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- source4/dsdb/common/util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c index b2d4be0068..148a77d153 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. */ -- cgit