[lvm-devel] [PATCH 1/4] pvmove: check return value of top_level_lv_name() in _set_up_pvmove_lv
Wu Guanghao
wuguanghao3 at huawei.com
Fri Sep 11 09:40:09 UTC 2020
The return value of top_level_lv_name may be NULL, so we should
check return value of top_level_lv_name before calling
strcmp(lv->name, top_level_lv_name(vg, lv_name)).
Signed-off-by: Wu Guanghao <wuguanghao3 at huawei.com>
Signed-off-by: Zhiqiang Liu <liuzhiqiang26 at huawei.com>
---
tools/pvmove.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tools/pvmove.c b/tools/pvmove.c
index cc512b9de..3101de1df 100644
--- a/tools/pvmove.c
+++ b/tools/pvmove.c
@@ -326,6 +326,7 @@ static struct logical_volume *_set_up_pvmove_lv(struct cmd_context *cmd,
int lv_skipped = 0;
int needs_exclusive = *exclusive;
const struct logical_volume *holder;
+ const char *new_lv_name;
/* FIXME Cope with non-contiguous => splitting existing segments */
if (!(lv_mirr = lv_create_empty("pvmove%d", NULL,
@@ -363,7 +364,11 @@ static struct logical_volume *_set_up_pvmove_lv(struct cmd_context *cmd,
if (lv == lv_mirr)
continue;
- if (lv_name && strcmp(lv->name, top_level_lv_name(vg, lv_name)))
+ new_lv_name = top_level_lv_name(vg, lv_name);
+ if (!new_lv_name)
+ return NULL;
+
+ if (lv_name && strcmp(lv->name, new_lv_name))
continue;
if (!lv_is_on_pvs(lv, source_pvl))
--
More information about the lvm-devel
mailing list