summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2024-01-14 14:26:37 +0100
committerJulius Werner <jwerner@chromium.org>2024-08-23 01:08:16 +0000
commit41feb32559d574e7e08f42742dc4ef8abc3ddd46 (patch)
tree3ebbce83ef7805f80c94240d9cde356cf944694a /util
parent7bb8de184338453cde924c816e027af5eae40d32 (diff)
region: Turn region_end() into an inclusive region_last()
The current region_end() implementation is susceptible to overflow if the region is at the end of the addressable space. A common case with the memory-mapped flash of x86 directly below the 32-bit limit. Note: This patch also changes console output to inclusive limits. IMO, to the better. Change-Id: Ic4bd6eced638745b7e845504da74542e4220554a Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79946 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'util')
-rw-r--r--util/cbfstool/cbfstool.c8
-rw-r--r--util/cbfstool/cse_serger.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c
index cc8dbb5e3c..25f48478d2 100644
--- a/util/cbfstool/cbfstool.c
+++ b/util/cbfstool/cbfstool.c
@@ -423,9 +423,9 @@ static bool create_mmap_windows(void)
&mmap_window_table[j].flash_space)) {
ERROR("Flash space windows (base=0x%zx, limit=0x%zx) and (base=0x%zx, limit=0x%zx) overlap!\n",
region_offset(&mmap_window_table[i].flash_space),
- region_end(&mmap_window_table[i].flash_space),
+ region_last(&mmap_window_table[i].flash_space),
region_offset(&mmap_window_table[j].flash_space),
- region_end(&mmap_window_table[j].flash_space));
+ region_last(&mmap_window_table[j].flash_space));
return false;
}
@@ -433,9 +433,9 @@ static bool create_mmap_windows(void)
&mmap_window_table[j].host_space)) {
ERROR("Host space windows (base=0x%zx, limit=0x%zx) and (base=0x%zx, limit=0x%zx) overlap!\n",
region_offset(&mmap_window_table[i].flash_space),
- region_end(&mmap_window_table[i].flash_space),
+ region_last(&mmap_window_table[i].flash_space),
region_offset(&mmap_window_table[j].flash_space),
- region_end(&mmap_window_table[j].flash_space));
+ region_last(&mmap_window_table[j].flash_space));
return false;
}
}
diff --git a/util/cbfstool/cse_serger.c b/util/cbfstool/cse_serger.c
index 006a01e9be..9d74a120c3 100644
--- a/util/cbfstool/cse_serger.c
+++ b/util/cbfstool/cse_serger.c
@@ -647,7 +647,7 @@ static size_t get_cse_region_end_offset(void)
size_t end_offset;
for (size_t i = 0; i < BP_TOTAL; i++) {
- end_offset = region_end(&params.layout_regions[i]);
+ end_offset = region_last(&params.layout_regions[i]) + 1;
if (end_offset > offset)
offset = end_offset;
}