[lvm-devel] master - cleanup: allocate NAME_LEN size for lv name

Zdenek Kabelac zkabelac at fedoraproject.org
Tue Dec 13 21:09:49 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=47b96c3537968caf0cfb8ffa3874d64944715bec
Commit:        47b96c3537968caf0cfb8ffa3874d64944715bec
Parent:        d0fe3ec0c58ccd5dfcc4f5fd40ddabab0c9defe5
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Tue Dec 13 00:09:38 2016 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Dec 13 22:07:52 2016 +0100

cleanup: allocate NAME_LEN size for lv name

---
 lib/metadata/raid_manip.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index c70ce3e..b8a47c0 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -548,18 +548,15 @@ static char *_generate_raid_name(struct logical_volume *lv,
 				 const char *suffix, int count)
 {
 	const char *format = (count >= 0) ? "%s_%s_%u" : "%s_%s";
-	size_t len = strlen(lv->name) + strlen(suffix) + ((count >= 0) ? 5 : 2);
-	char *name;
+	char name[NAME_LEN], *lvname;
 	int historical;
 
-	if (!(name = dm_pool_alloc(lv->vg->vgmem, len))) {
-		log_error("Failed to allocate new name.");
+	if (dm_snprintf(name, sizeof(name), format, lv->name, suffix, count) < 0) {
+		log_error("Failed to new raid name for %s.",
+			  display_lvname(lv));
 		return NULL;
 	}
 
-	if (dm_snprintf(name, len, format, lv->name, suffix, count) < 0)
-		return_NULL;
-
 	if (!validate_name(name)) {
 		log_error("New logical volume name \"%s\" is not valid.", name);
 		return NULL;
@@ -571,7 +568,12 @@ static char *_generate_raid_name(struct logical_volume *lv,
 		return NULL;
 	}
 
-	return name;
+	if (!(lvname = dm_pool_strdup(lv->vg->vgmem, name))) {
+		log_error("Failed to allocate new name.");
+		return NULL;
+	}
+
+	return lvname;
 }
 /*
  * Create an LV of specified type.  Set visible after creation.




More information about the lvm-devel mailing list