From ac8e5733a4a06c47096f582d23036e0eb6db1e88 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 1 Mar 2011 23:19:20 +1030 Subject: [PATCH] tdb2: close memory leak in traverse. --- ccan/tdb2/traverse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) -- 2.39.2