From 7ec61cd5b9d4fcafa5313602f0a0696fa4690f6c Mon Sep 17 00:00:00 2001 From: David Teigland Date: Mon, 9 Nov 2015 13:23:59 -0600 Subject: [PATCH] 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. --- tools/vgrename.c | 6 ++++++ 1 file changed, 6 insertions(+) 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 -- 2.43.5