From 2c12c985e7f2debb25452e484925b7fdf987c659 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 7 Aug 2009 17:16:26 +1000 Subject: 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. --- source4/dsdb/schema/schema_set.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index 5ded04e9da..5d78d0a0c6 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); -- cgit