:: commit 3e5eb63856ac711eeba059e43b1b468797dec057

Mintsuki <mintsuki@protonmail.com> — 2025-12-26 01:46

parents: b9b521f48d

lib/part: Add bounds checking to volume_read() function

diff --git a/common/lib/part.s2.c b/common/lib/part.s2.c
index 25ff3453..8314aa1a 100644
--- a/common/lib/part.s2.c
+++ b/common/lib/part.s2.c
@@ -74,6 +74,11 @@ bool volume_read(struct volume *volume, void *buffer, uint64_t loc, uint64_t cou
         panic(false, "Attempted volume_read() on pxe");
     }
 
+    uint64_t part_size = volume->sect_count * volume->sector_size;
+    if (loc >= part_size || count > part_size - loc) {
+        return false;
+    }
+
     uint64_t block_size = volume->fastest_xfer_size * volume->sector_size;
 
     uint64_t progress = 0;
tab: 248 wrap: offon