From: Rusty Russell Date: Tue, 1 Mar 2011 12:49:20 +0000 (+1030) Subject: tdb2: close memory leak in traverse. X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=ac8e5733a4a06c47096f582d23036e0eb6db1e88 tdb2: close memory leak in traverse. --- diff --git a/ccan/tdb2/traverse.c b/ccan/tdb2/traverse.c index 410054d7..14cdac65 100644 --- a/ccan/tdb2/traverse.c +++ b/ccan/tdb2/traverse.c @@ -26,14 +26,18 @@ static int64_t traverse(struct tdb_context *tdb, int ltype, struct tdb_data k, d; int64_t count = 0; + k.dptr = NULL; for (ret = first_in_hash(tdb, ltype, &tinfo, &k, &d.dsize); ret == 1; ret = next_in_hash(tdb, ltype, &tinfo, &k, &d.dsize)) { d.dptr = k.dptr + k.dsize; count++; - if (fn && fn(tdb, k, d, p)) + if (fn && fn(tdb, k, d, p)) { + free(k.dptr); break; + } + free(k.dptr); } if (ret < 0)