summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-08-09 19:41:05 +1000
committerAndrew Bartlett <abartlet@samba.org>2012-08-09 13:51:06 +0200
commit11d60d13dc54ff154b2a7bb53e326ed2180d473c (patch)
treeeb093355a8ee4630433648d8eb5138fbfeda3158
parent73f0cb5278e714740d0de75e6b0d0bf4c815491a (diff)
downloadsamba-11d60d13dc54ff154b2a7bb53e326ed2180d473c.tar.gz
samba-11d60d13dc54ff154b2a7bb53e326ed2180d473c.tar.bz2
samba-11d60d13dc54ff154b2a7bb53e326ed2180d473c.zip
s4-ldb_wrap: Do not vasprintf() the ldb debug messages that will not be shown
This malloc() and free() actually shows up quite high on a call profile of provision of the AD DC. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Thu Aug 9 13:51:06 CEST 2012 on sn-devel-104
-rw-r--r--lib/ldb-samba/ldb_wrap.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/ldb-samba/ldb_wrap.c b/lib/ldb-samba/ldb_wrap.c
index 83a06743be..028bd6f58d 100644
--- a/lib/ldb-samba/ldb_wrap.c
+++ b/lib/ldb-samba/ldb_wrap.c
@@ -47,7 +47,6 @@ static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
const char *fmt, va_list ap)
{
int samba_level = -1;
- char *s = NULL;
switch (level) {
case LDB_DEBUG_FATAL:
samba_level = 0;
@@ -63,10 +62,13 @@ static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
break;
};
- vasprintf(&s, fmt, ap);
- if (!s) return;
- DEBUG(samba_level, ("ldb: %s\n", s));
- free(s);
+ if (CHECK_DEBUGLVL(samba_level)) {
+ char *s = NULL;
+ vasprintf(&s, fmt, ap);
+ if (!s) return;
+ DEBUG(samba_level, ("ldb: %s\n", s));
+ free(s);
+ }
}