From 956678685325a79a315f4ef19c0d834fd1747e4c Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 14 Aug 2012 16:08:47 +1000 Subject: s4-dsdb: Add mem_ctx argument to samdb_ntds_settings_dn As this value is calculated new each time, we need to give it a context to live on. If the value is the forced value during provision, a reference is taken. This was responsible for the memory leak in the replication process. In the example I was given, this DN appeared in memory 13596 times! Andrew Bartlett Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Tue Aug 14 10:05:14 CEST 2012 on sn-devel-104 --- source4/dsdb/repl/drepl_partitions.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/dsdb/repl/drepl_partitions.c') diff --git a/source4/dsdb/repl/drepl_partitions.c b/source4/dsdb/repl/drepl_partitions.c index 3aa715a92d..7464dc1554 100644 --- a/source4/dsdb/repl/drepl_partitions.c +++ b/source4/dsdb/repl/drepl_partitions.c @@ -52,7 +52,7 @@ WERROR dreplsrv_load_partitions(struct dreplsrv_service *s) tmp_ctx = talloc_new(s); W_ERROR_HAVE_NO_MEMORY(tmp_ctx); - ntds_dn = samdb_ntds_settings_dn(s->samdb); + ntds_dn = samdb_ntds_settings_dn(s->samdb, tmp_ctx); if (!ntds_dn) { DEBUG(1,(__location__ ": Unable to find ntds_dn: %s\n", ldb_errstring(s->samdb))); talloc_free(tmp_ctx); -- cgit