]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ldb: Avoid a "talloc_steal"
authorVolker Lendecke <vl@samba.org>
Mon, 25 Jan 2016 11:40:53 +0000 (12:40 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 3 Feb 2016 14:04:11 +0000 (15:04 +0100)
There's only one caller of "next_chunk" that does a talloc_steal right
after the call. Pass in a talloc context.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
lib/ldb/common/ldb_ldif.c

index a8ad4aae7bc081eec2566636eba07da0791c0f3a..07de5179ba7dff151ed9ef4d4e2fa5e9ee8b2a34 100644 (file)
@@ -417,7 +417,7 @@ int ldb_ldif_write(struct ldb_context *ldb,
 
   caller frees
 */
-static char *next_chunk(struct ldb_context *ldb,
+static char *next_chunk(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                        int (*fgetc_fn)(void *), void *private_data)
 {
        size_t alloc_size=0, chunk_size = 0;
@@ -429,7 +429,7 @@ static char *next_chunk(struct ldb_context *ldb,
                if (chunk_size+1 >= alloc_size) {
                        char *c2;
                        alloc_size += 1024;
-                       c2 = talloc_realloc(ldb, chunk, char, alloc_size);
+                       c2 = talloc_realloc(mem_ctx, chunk, char, alloc_size);
                        if (!c2) {
                                talloc_free(chunk);
                                errno = ENOMEM;
@@ -774,11 +774,10 @@ struct ldb_ldif *ldb_ldif_read(struct ldb_context *ldb,
        msg->elements = NULL;
        msg->num_elements = 0;
 
-       chunk = next_chunk(ldb, fgetc_fn, private_data);
+       chunk = next_chunk(ldb, ldif, fgetc_fn, private_data);
        if (!chunk) {
                goto failed;
        }
-       talloc_steal(ldif, chunk);
 
        s = chunk;