summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2015-11-09 13:23:59 -0600
committerDavid Teigland <teigland@redhat.com>2015-11-09 13:23:59 -0600
commit7ec61cd5b9d4fcafa5313602f0a0696fa4690f6c (patch)
treed9c6650976ed35fd311b72c7c842d73afe25227c
parentcd937efa77dcd8713aa7679728001c11e20fab70 (diff)
downloadlvm2-7ec61cd5b9d4fcafa5313602f0a0696fa4690f6c.tar.gz
vgrename: check if new and old names match
When the first arg is a UUID and vgrename translates that UUID to a current VG name, the old and new VG names are not being checked for equality. If they are equal, it produces an internal error rather than a proper error.
-rw-r--r--tools/vgrename.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/vgrename.c b/tools/vgrename.c
index 316228a8d..07d992ece 100644
--- a/tools/vgrename.c
+++ b/tools/vgrename.c
@@ -110,7 +110,13 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path,
log_suppress(2);
found_id = id_read_format(&id, vg_name_old);
log_suppress(0);
+
if (found_id && (vg_name = lvmcache_vgname_from_vgid(cmd->mem, (char *)id.uuid))) {
+ if (!strcmp(vg_name, vg_name_new)) {
+ log_error("New VG name must differ from the old VG name.");
+ return 0;
+ }
+
vg_name_old = vg_name;
vgid = (char *)id.uuid;
} else