[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