From 47666eafb3bbb7a3569d65f11ddbab9746076c41 Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Tue, 13 Jan 2015 01:37:09 +0900 Subject: [PATCH] sbin/hammer: fix potential memory leak This patch properly frees calloc/malloced memory. --- sbin/hammer/cmd_blockmap.c | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/sbin/hammer/cmd_blockmap.c b/sbin/hammer/cmd_blockmap.c index 86bc2cb..2ab40ef 100644 --- a/sbin/hammer/cmd_blockmap.c +++ b/sbin/hammer/cmd_blockmap.c @@ -250,6 +250,15 @@ collect_get(hammer_off_t phys_offset) } static +void +collect_rel(collect_t collect) +{ + free(collect->layer2); + free(collect->track2); + free(collect); +} + +static struct hammer_blockmap_layer2 * collect_get_track(collect_t collect, hammer_off_t offset, struct hammer_blockmap_layer2 *layer2) @@ -271,14 +280,15 @@ static void dump_collect_table(void) { - collect_t collect; + collect_t collect, tmp; int i; for (i = 0; i < COLLECT_HSIZE; ++i) { - for (collect = CollectHash[i]; - collect; - collect = collect->hnext) { + for (collect = CollectHash[i]; collect; ) { dump_collect(collect); + tmp = collect; + collect = collect->hnext; + collect_rel(tmp); } } } -- 1.7.1