:: commit 1c2942c5f87fba74988155e3373a55ee612215c9

Mintsuki <mintsuki@protonmail.com> — 2026-04-01 19:14

parents: ca253330a8

lib/part: Check for overflow in cache block size calculation

diff --git a/common/lib/part.s2.c b/common/lib/part.s2.c
index 5225d91a..be47d32c 100644
--- a/common/lib/part.s2.c
+++ b/common/lib/part.s2.c
@@ -24,7 +24,8 @@ static bool cache_block(struct volume *volume, uint64_t block) {
 
     if (volume->cache == NULL)
         volume->cache =
-            ext_mem_alloc(volume->fastest_xfer_size * volume->sector_size);
+            ext_mem_alloc(CHECKED_MUL((uint64_t)volume->fastest_xfer_size, (uint64_t)volume->sector_size,
+                panic(false, "cache_block: block size overflow")));
 
     if (volume->first_sect % (volume->sector_size / 512)) {
         return false;
tab: 248 wrap: offon