summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/format1/import-extents.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/format1/import-extents.c b/lib/format1/import-extents.c
index 84791b58..13f5d930 100644
--- a/lib/format1/import-extents.c
+++ b/lib/format1/import-extents.c
@@ -226,7 +226,8 @@ static int _read_linear(struct pool *mem, struct lv_map *lvm)
seg->len++;
while ((lvm->map[le + seg->len].pv == seg->area[0].pv) &&
- (lvm->map[le + seg->len].pe == seg->area[0].pe +
+ (seg->area[0].pv &&
+ lvm->map[le + seg->len].pe == seg->area[0].pe +
seg->len));
le += seg->len;
@@ -249,7 +250,8 @@ static int _check_stripe(struct lv_map *lvm, struct stripe_segment *seg,
*/
for (st = 0; st < seg->stripes; st++)
if ((lvm->map[le + st * len].pv != seg->area[st].pv) ||
- (lvm->map[le + st * len].pe != seg->area[st].pe + seg->len))
+ (seg->area[st].pv &&
+ lvm->map[le + st * len].pe != seg->area[st].pe + seg->len))
return 0;
return 1;