diff options
author | Jeremy Allison <jra@samba.org> | 2006-03-02 18:34:10 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2006-03-02 18:34:10 +0000 |
commit | 77ee8a4accd8b51d46400ab51ea960f80a546302 (patch) | |
tree | 15a11d1e51dde0db8ed49664a740d7f6c988a054 /source/tdb | |
parent | cfdc82d521149a64f67b191343221ab273e8bd6d (diff) | |
download | samba-77ee8a4accd8b51d46400ab51ea960f80a546302.tar.gz samba-77ee8a4accd8b51d46400ab51ea960f80a546302.tar.xz samba-77ee8a4accd8b51d46400ab51ea960f80a546302.zip |
r13792: Merged Simo's fixes for tdbtraverse.
Jeremy.
Diffstat (limited to 'source/tdb')
-rw-r--r-- | source/tdb/tdb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/tdb/tdb.c b/source/tdb/tdb.c index 5d70c046d37..f07f474716f 100644 --- a/source/tdb/tdb.c +++ b/source/tdb/tdb.c @@ -1397,6 +1397,7 @@ int tdb_traverse(TDB_CONTEXT *tdb, tdb_traverse_func fn, void *private_val) /* Drop chain lock, call out */ if (tdb_unlock(tdb, tl.hash, F_WRLCK) != 0) { ret = -1; + SAFE_FREE(key.dptr); goto out; } if (fn && fn(tdb, key, dbuf, private_val)) { @@ -1406,9 +1407,8 @@ int tdb_traverse(TDB_CONTEXT *tdb, tdb_traverse_func fn, void *private_val) TDB_LOG((tdb, 0, "tdb_traverse: unlock_record failed!\n"));; ret = -1; } - tdb->travlocks.next = tl.next; SAFE_FREE(key.dptr); - return count; + goto out; } SAFE_FREE(key.dptr); } |