[lvm-devel] master - lv_manip: add extra internal error
Zdenek Kabelac
zkabelac at sourceware.org
Fri Jun 22 21:38:54 UTC 2018
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=106ee05ba01146abff248a4e7eae77982fda9ebd
Commit: 106ee05ba01146abff248a4e7eae77982fda9ebd
Parent: 6c84a36b539d02a5f975a1e5e98c180621078498
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Wed Jun 20 10:44:13 2018 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Jun 22 23:37:02 2018 +0200
lv_manip: add extra internal error
Catch error early, when trying to store data into non-allocated area.
---
lib/metadata/lv_manip.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 27cd2c1..4efe04a 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -1190,6 +1190,11 @@ int set_lv_segment_area_lv(struct lv_segment *seg, uint32_t area_num,
display_lvname(seg->lv), seg->le, area_num,
display_lvname(lv), le);
+ if (area_num >= seg->area_count) {
+ log_error(INTERNAL_ERROR "Try to set to high area number (%u >= %u) for LV %s.",
+ area_num, seg->area_count, display_lvname(seg->lv));
+ return 0;
+ }
lv->status |= status;
if (lv_is_raid_metadata(lv)) {
seg->meta_areas[area_num].type = AREA_LV;
More information about the lvm-devel
mailing list