[lvm-devel] master - cleanup: we already know max device name size
Zdenek Kabelac
zkabelac at fedoraproject.org
Tue Jun 17 13:24:41 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0558b1a0869f9a68d78e80140500874756c70e4d
Commit: 0558b1a0869f9a68d78e80140500874756c70e4d
Parent: 7aef45f9bb8620e194d086ebeeaca0312e8aee04
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Mon Jun 16 12:39:32 2014 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Jun 17 13:43:04 2014 +0200
cleanup: we already know max device name size
Use NAME_LEN constant to simplify creation of device name.
Since the max size should be already tested in validation,
throw INTERNAL_ERROR if the size of vg/lv is bigger then NAME_LEN.
---
tools/lvconvert.c | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 731d4c8..75eb565 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -884,15 +884,13 @@ int lvconvert_poll(struct cmd_context *cmd, struct logical_volume *lv,
* the polldaemon, lvconvert, pvmove code that a comprehensive
* audit/rework is needed
*/
- int len = strlen(lv->vg->name) + strlen(lv->name) + 2;
- char *uuid = alloca(sizeof(lv->lvid));
- char *lv_full_name = alloca(len);
+ char uuid[sizeof(lv->lvid)];
+ char lv_full_name[NAME_LEN];
- if (!uuid || !lv_full_name)
- return_0;
-
- if (dm_snprintf(lv_full_name, len, "%s/%s", lv->vg->name, lv->name) < 0)
- return_0;
+ if (dm_snprintf(lv_full_name, sizeof(lv_full_name), "%s/%s", lv->vg->name, lv->name) < 0) {
+ log_error(INTERNAL_ERROR "Name \"%s/%s\" is too long.", lv->vg->name, lv->name);
+ return 0;
+ }
memcpy(uuid, &lv->lvid, sizeof(lv->lvid));
More information about the lvm-devel
mailing list