summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-10-27 20:30:53 +1100
committerAndrew Tridgell <tridge@samba.org>2009-10-27 20:30:53 +1100
commit798b05a9740f43b2b6f9a5091878d85e3c88409d (patch)
treef09b33b4eb37d7eea40a97c193657721286f7ab1
parent9a2112ec6604bb9d2c9cf9a99ee42e3e19d209db (diff)
downloadsamba-798b05a9740f43b2b6f9a5091878d85e3c88409d.tar.gz
samba-798b05a9740f43b2b6f9a5091878d85e3c88409d.tar.bz2
samba-798b05a9740f43b2b6f9a5091878d85e3c88409d.zip
s4-dsdb: call dsdb_make_schema_global() from ldb_wrap
Calling it from samdb_connect() can cause a stale schema to be put into the global schema. Thanks to Andrew Bartlett for spotting this.
-rw-r--r--source4/dsdb/samdb/samdb.c1
-rw-r--r--source4/lib/ldb_wrap.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/source4/dsdb/samdb/samdb.c b/source4/dsdb/samdb/samdb.c
index 70f0409c3d..b3ba63388d 100644
--- a/source4/dsdb/samdb/samdb.c
+++ b/source4/dsdb/samdb/samdb.c
@@ -133,7 +133,6 @@ struct ldb_context *samdb_connect(TALLOC_CTX *mem_ctx,
if (!ldb) {
return NULL;
}
- dsdb_make_schema_global(ldb);
return ldb;
}
diff --git a/source4/lib/ldb_wrap.c b/source4/lib/ldb_wrap.c
index ecd7bf4554..134c2271fd 100644
--- a/source4/lib/ldb_wrap.c
+++ b/source4/lib/ldb_wrap.c
@@ -248,6 +248,11 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
DLIST_ADD(ldb_wrap_list, w);
+ /* make the resulting schema global */
+ if (lp_ctx != NULL && strcmp(lp_sam_url(lp_ctx), url) == 0) {
+ dsdb_make_schema_global(ldb);
+ }
+
DEBUG(3,("ldb_wrap open of %s\n", url));
talloc_set_destructor(w, ldb_wrap_destructor);