svn commit: samba r19296 - in branches/SAMBA_4_0/source/lib: .
tridge at samba.org
tridge at samba.org
Sun Oct 15 21:31:58 GMT 2006
Author: tridge
Date: 2006-10-15 21:31:58 +0000 (Sun, 15 Oct 2006)
New Revision: 19296
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19296
Log:
added a leak detector to ldb_wrap_connect()
this makes 'make test' _very_ noisy, apologies for that, but nearly
all the noise is real memory leaks, so if you don't like it then jump
in and help fix the leaks :)
Modified:
branches/SAMBA_4_0/source/lib/db_wrap.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/db_wrap.c
===================================================================
--- branches/SAMBA_4_0/source/lib/db_wrap.c 2006-10-15 21:09:42 UTC (rev 19295)
+++ branches/SAMBA_4_0/source/lib/db_wrap.c 2006-10-15 21:31:58 UTC (rev 19296)
@@ -65,6 +65,21 @@
return strupper_talloc(mem_ctx, s);
}
+/* check for leaks */
+static int ldb_wrap_destructor(struct ldb_context *ldb)
+{
+ if (talloc_total_blocks(ldb) > 300) {
+ DEBUG(0,("WARNING: probable memory leak in ldb %s - %lu blocks %lu bytes\n",
+ (char *)ldb_get_opaque(ldb, "wrap_url"),
+ (unsigned long)talloc_total_blocks(ldb),
+ (unsigned long)talloc_total_size(ldb)));
+#if 0
+ talloc_report_full(ldb, stdout);
+#endif
+ }
+ return 0;
+}
+
/*
wrapped connection to a ldb database
to close just talloc_free() the returned ldb_context
@@ -136,12 +151,13 @@
return NULL;
}
- talloc_free(real_url);
-
ldb_set_debug(ldb, ldb_wrap_debug, NULL);
ldb_set_utf8_fns(ldb, NULL, wrap_casefold);
+ ldb_set_opaque(ldb, "wrap_url", real_url);
+ talloc_set_destructor(ldb, ldb_wrap_destructor);
+
return ldb;
}
More information about the samba-cvs
mailing list