diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-09-22 22:15:11 -0700 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-10-02 12:45:05 +0200 |
commit | c7358d989034c9d936c04f2a7e4f89db252b798e (patch) | |
tree | a32e16da6d352bd18162a0e93e221ea2ae73751c | |
parent | e7846f69cacdd0551fcd777a71bf833a2fc9ca2b (diff) | |
download | samba-c7358d989034c9d936c04f2a7e4f89db252b798e.tar.gz samba-c7358d989034c9d936c04f2a7e4f89db252b798e.tar.bz2 samba-c7358d989034c9d936c04f2a7e4f89db252b798e.zip |
s4-ldb: fixed a memory leak
-rw-r--r-- | source4/lib/ldb/ldb_tdb/ldb_index.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_index.c b/source4/lib/ldb/ldb_tdb/ldb_index.c index 1acbc204f7..66d70a9f47 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_index.c +++ b/source4/lib/ldb/ldb_tdb/ldb_index.c @@ -135,6 +135,7 @@ static int ltdb_convert_from_idxptr(struct ldb_module *module, struct ldb_messag return LDB_ERR_OPERATIONS_ERROR; } + talloc_free(el->values); *el = ptr->el; if (ptr_out) { @@ -163,7 +164,11 @@ static int ltdb_update_idxptr(struct ldb_module *module, TALLOC_CTX *mem_ctx, el->values = val2; el->num_values = 1; - el->values[0].data = talloc_memdup(el->values, &ptr, sizeof(ptr)); + if (strcmp(el->name, LTDB_IDXPTR) == 0) { + abort(); + } + + el->values[0].data = talloc_memdup(val2, &ptr, sizeof(ptr)); el->values[0].length = sizeof(ptr); /* update the name */ |