diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2016-12-13 00:09:38 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2016-12-13 22:07:52 +0100 |
commit | 47b96c3537968caf0cfb8ffa3874d64944715bec (patch) | |
tree | e1ec9e529c5b6728db776c9c138229bc63b0f1dc | |
parent | d0fe3ec0c58ccd5dfcc4f5fd40ddabab0c9defe5 (diff) | |
download | lvm2-47b96c3537968caf0cfb8ffa3874d64944715bec.tar.gz |
cleanup: allocate NAME_LEN size for lv name
-rw-r--r-- | 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 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. |