diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-10-27 20:30:53 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2009-10-27 20:30:53 +1100 |
commit | 798b05a9740f43b2b6f9a5091878d85e3c88409d (patch) | |
tree | f09b33b4eb37d7eea40a97c193657721286f7ab1 | |
parent | 9a2112ec6604bb9d2c9cf9a99ee42e3e19d209db (diff) | |
download | samba-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.c | 1 | ||||
-rw-r--r-- | source4/lib/ldb_wrap.c | 5 |
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); |