After the call to make_prefixed_uuid() allocs uuid, it must be freed if dm_find_part() fails. Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> --- 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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel