From 140592187b37dafba98dc55e71c429c56d6e60b8 Mon Sep 17 00:00:00 2001 From: Eryu Guan Date: Mon, 19 Oct 2015 19:37:57 +0800 Subject: [PATCH] btrfs-progs: fix memory leak on error path dev_scans and t_scans should be freed on malloc error. Signed-off-by: Eryu Guan Signed-off-by: David Sterba --- chunk-recover.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chunk-recover.c b/chunk-recover.c index d0ca920..f8693f7 100644 --- a/chunk-recover.c +++ b/chunk-recover.c @@ -846,11 +846,16 @@ static int scan_devices(struct recover_control *rc) if (!dev_scans) return -ENOMEM; t_scans = (pthread_t *)malloc(sizeof(pthread_t) * devnr); - if (!t_scans) + if (!t_scans) { + free(dev_scans); return -ENOMEM; + } t_rets = (long *)malloc(sizeof(long) * devnr); - if (!t_rets) + if (!t_rets) { + free(dev_scans); + free(t_scans); return -ENOMEM; + } list_for_each_entry(dev, &rc->fs_devices->devices, dev_list) { fd = open(dev->name, O_RDONLY); -- 2.7.4