s4-ldb: fixed O(n^2) string handling in ldif debug print
authorAndrew Tridgell <tridge@samba.org>
Mon, 21 Sep 2009 23:29:22 +0000 (16:29 -0700)
committerAndrew Tridgell <tridge@samba.org>
Mon, 21 Sep 2009 23:31:01 +0000 (16:31 -0700)
source4/lib/ldb/common/ldb_ldif.c

index cde21320a2dd353475ecebf86c2cd652f12ccce1..b7ab7300b2508347005e5e14231321507a64c2c2 100644 (file)
@@ -783,7 +783,7 @@ static int ldif_printf_string(void *private_data, const char *fmt, ...)
        struct ldif_write_string_state *state =
                (struct ldif_write_string_state *)private_data;
        va_list ap;
-       size_t oldlen = strlen(state->string);
+       size_t oldlen = talloc_get_size(state->string);
        va_start(ap, fmt);
        
        state->string = talloc_vasprintf_append(state->string, fmt, ap);
@@ -791,8 +791,8 @@ static int ldif_printf_string(void *private_data, const char *fmt, ...)
        if (!state->string) {
                return -1;
        }
-               
-       return strlen(state->string) - oldlen;
+
+       return talloc_get_size(state->string) - oldlen;
 }
 
 char *ldb_ldif_write_string(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,