s4-ldb_wrap: Do not vasprintf() the ldb debug messages that will not be shown
authorAndrew Bartlett <abartlet@samba.org>
Thu, 9 Aug 2012 09:41:05 +0000 (19:41 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 9 Aug 2012 11:51:06 +0000 (13:51 +0200)
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

lib/ldb-samba/ldb_wrap.c

index 83a06743bef9ebce865cefbe36cb33a234fec409..028bd6f58d285b03b382d50a02d098bf28707b68 100644 (file)
@@ -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);
+       }
 }