From: Andrew Tridgell Date: Fri, 7 Aug 2009 07:16:26 +0000 (+1000) Subject: use talloc with the global schema consistently X-Git-Tag: talloc-2.0.0~464^2~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c12c985e7f2debb25452e484925b7fdf987c659;p=thirdparty%2Fsamba.git use talloc with the global schema consistently Before this change, the first opener of the sam ldb context would become the owner of the global schema, then the autofree context got a reference to the schema. Any subsequent opens of the sam ldb also got a reference. This meant that the talloc hierarchy was inconsistent between the first sam ldb open and subsequent opens. With this change the autofree context becomes the owner of the global schema, and all ldb contexts get a reference. --- diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index 5ded04e9da1..5d78d0a0c68 100644 --- a/source4/dsdb/schema/schema_set.c +++ b/source4/dsdb/schema/schema_set.c @@ -437,7 +437,8 @@ void dsdb_make_schema_global(struct ldb_context *ldb) } /* we want the schema to be around permanently */ - talloc_reference(talloc_autofree_context(), schema); + talloc_reparent(talloc_parent(schema), talloc_autofree_context(), schema); + global_schema = schema; dsdb_set_global_schema(ldb);