[dm-devel] [PATCH 13/32] kpartx: Fix memory leak of uuid found by coverity
Benjamin Marzinski
bmarzins at redhat.com
Wed Aug 1 20:56:59 UTC 2018
After the call to make_prefixed_uuid() allocs uuid, it must be freed if
dm_find_part() fails.
Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
---
kpartx/devmapper.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/kpartx/devmapper.c b/kpartx/devmapper.c
index f94d70e..cd33449 100644
--- a/kpartx/devmapper.c
+++ b/kpartx/devmapper.c
@@ -663,7 +663,7 @@ int dm_find_part(const char *parent, const char *delim, int part,
tmp = dm_find_uuid(uuid);
if (tmp == NULL)
- return r;
+ goto out;
/* Sanity check on partition, see dm_foreach_partmaps */
if (dm_type(tmp, "linear") != 1)
@@ -689,13 +689,14 @@ int dm_find_part(const char *parent, const char *delim, int part,
tmp, uuid, name);
r = dm_rename(tmp, name);
- if (r == 0) {
- free(uuid);
- if (verbose)
- fprintf(stderr, "renaming %s->%s failed\n", tmp, name);
- } else
+ if (r == 1) {
*part_uuid = uuid;
+ return 1;
+ }
+ if (verbose)
+ fprintf(stderr, "renaming %s->%s failed\n", tmp, name);
out:
+ free(uuid);
free(tmp);
return r;
}
--
2.7.4
More information about the dm-devel
mailing list