summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-12-13 00:09:38 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2016-12-13 22:07:52 +0100
commit47b96c3537968caf0cfb8ffa3874d64944715bec (patch)
treee1ec9e529c5b6728db776c9c138229bc63b0f1dc
parentd0fe3ec0c58ccd5dfcc4f5fd40ddabab0c9defe5 (diff)
downloadlvm2-47b96c3537968caf0cfb8ffa3874d64944715bec.tar.gz
cleanup: allocate NAME_LEN size for lv name
-rw-r--r--lib/metadata/raid_manip.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index c70ce3e71..b8a47c08a 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.