r25933: LDB: Don't free errstring until after the printf, in case it is one of
authorAndrew Bartlett <abartlet@samba.org>
Tue, 13 Nov 2007 03:31:28 +0000 (04:31 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:45:07 +0000 (05:45 +0100)
the arguments.

Andrew Bartlett
(This used to be commit af40b1cd88f0e932665f6fe90daae8e687a3dc0c)

source4/lib/ldb/common/ldb.c

index 25d273f8e92b506999d4efe90fe37100cd69470d..f687e152d30f800df2f8dfd5e993fba56158476e 100644 (file)
@@ -277,14 +277,16 @@ void ldb_set_errstring(struct ldb_context *ldb, const char *err_string)
 void ldb_asprintf_errstring(struct ldb_context *ldb, const char *format, ...)
 {
        va_list ap;
+       char *old_string = NULL;
 
        if (ldb->err_string) {
-               talloc_free(ldb->err_string);
+               old_string = ldb->err_string;
        }
 
        va_start(ap, format);
        ldb->err_string = talloc_vasprintf(ldb, format, ap);
        va_end(ap);
+       talloc_free(old_string);
 }
 
 void ldb_reset_err_string(struct ldb_context *ldb)