summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2020-09-12 12:08:15 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2020-09-12 12:55:20 +0200
commita9cb96f146377ff59a34a40792a9d8537ec89755 (patch)
tree05624973fc9e21dd6bc8f1fb0cca2b14977aeebd
parent463a61e62e32aa81391f40468d48d19948cd5062 (diff)
downloadlvm2-a9cb96f146377ff59a34a40792a9d8537ec89755.tar.gz
lvconvert: check if LV has cow type
Cow may not be a COW type, the return value of origin_from_cow(cow) may be NULL. Reported-by: Wu Guanghao <wuguanghao3@huawei.com> Reported-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
-rw-r--r--tools/lvconvert.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index d420eb52f..780a81567 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -1825,6 +1825,11 @@ static int _lvconvert_splitsnapshot(struct cmd_context *cmd, struct logical_volu
struct volume_group *vg = cow->vg;
const char *cow_name = display_lvname(cow);
+ if (!lv_is_cow(cow)) {
+ log_error(INTERNAL_ERROR "Volume %s is not a COW.", cow_name);
+ return 0;
+ }
+
if (lv_is_virtual_origin(origin_from_cow(cow))) {
log_error("Unable to split off snapshot %s with virtual origin.", cow_name);
return 0;