summaryrefslogtreecommitdiff
path: root/tools/vgimportclone.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-03-10 01:25:37 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-03-10 01:29:06 +0100
commit241c63f7a72cecad085c8983b8a294d8d9985119 (patch)
treeca154f901cb7c443596338447c107c16419ea74d /tools/vgimportclone.c
parent131ca0eb9582dd183ed40400caf4fc832f43cb16 (diff)
downloadlvm2-241c63f7a72cecad085c8983b8a294d8d9985119.tar.gz
cov: fix iter memleak in vgimportclose
Add missing release of iterator on error path.
Diffstat (limited to 'tools/vgimportclone.c')
-rw-r--r--tools/vgimportclone.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/vgimportclone.c b/tools/vgimportclone.c
index 58cae5fac..18f10f49a 100644
--- a/tools/vgimportclone.c
+++ b/tools/vgimportclone.c
@@ -190,6 +190,7 @@ static int _get_other_devs(struct cmd_context *cmd, struct dm_list *new_devs, st
struct dev_iter *iter;
struct device *dev;
struct device_list *devl;
+ int r = 1;
if (!(iter = dev_iter_create(cmd->filter, 0)))
return_0;
@@ -197,14 +198,16 @@ static int _get_other_devs(struct cmd_context *cmd, struct dm_list *new_devs, st
while ((dev = dev_iter_get(cmd, iter))) {
if (_get_device_list(new_devs, dev))
continue;
- if (!(devl = malloc(sizeof(*devl))))
- return_0;
+ if (!(devl = malloc(sizeof(*devl)))) {
+ r = 0;
+ goto_bad;
+ }
devl->dev = dev;
dm_list_add(other_devs, &devl->list);
}
-
+bad:
dev_iter_destroy(iter);
- return 1;
+ return r;
}
int vgimportclone(struct cmd_context *cmd, int argc, char **argv)