[lvm-devel] master - raid: add free for error path

Zdenek Kabelac zkabelac at sourceware.org
Wed Feb 28 20:22:13 UTC 2018


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=261e6c3df69082490a685f0d0599e88139b9a927
Commit:        261e6c3df69082490a685f0d0599e88139b9a927
Parent:        9bfc8881cb712a6b164f08ca3d70ec99745e6c22
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Sun Feb 25 16:20:30 2018 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Wed Feb 28 21:05:18 2018 +0100

raid: add free for error path

Recent patch forget to release now allocated 'dso' on error path.
---
 lib/raid/raid.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/raid/raid.c b/lib/raid/raid.c
index 31a0ac0..269a30c 100644
--- a/lib/raid/raid.c
+++ b/lib/raid/raid.c
@@ -655,6 +655,7 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
 	char *dso = NULL;
 	unsigned i;
 	uint64_t monitored = 0;
+	int r = 1;
 
 #ifdef DEVMAPPER_SUPPORT
 #  ifdef DMEVENTD
@@ -667,11 +668,14 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
 
 	for (i = 0; i < DM_ARRAY_SIZE(_raid_types); ++i)
 		if ((segtype = _init_raid_segtype(cmd, &_raid_types[i], dso, monitored)) &&
-		    !lvm_register_segtype(seglib, segtype))
+		    !lvm_register_segtype(seglib, segtype)) {
 			/* segtype is already destroyed */
-			return_0;
+			stack;
+			r = 0;
+			break;
+		}
 
 	dm_free(dso);
 
-	return 1;
+	return r;
 }




More information about the lvm-devel mailing list