From 9bffab7e3e0156bff9a6d4d2791812ce951114ba Mon Sep 17 00:00:00 2001 From: fgsfds Date: Sat, 31 May 2025 13:24:13 +0200 Subject: [PATCH] port: do not read past the end of EEPROM when scanning for headers --- src/game/pak.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/game/pak.c b/src/game/pak.c index 2f84bee29..7b6c64578 100644 --- a/src/game/pak.c +++ b/src/game/pak.c @@ -859,6 +859,11 @@ PakErr2 pakReadHeaderAtOffset(s8 device, u32 offset, struct pakfileheader *heade return PAK_ERR2_BADOFFSET; } + if (offset > g_Paks[device].pdnumbytes - sizeof(sp38)) { + // not enough bytes left for a header + return PAK_ERR2_BADOFFSET; + } + if (!pakRetrieveHeaderFromCache(device, blocknum, headerptr)) { result = pakReadWriteBlock(device, PFS(device), g_Paks[device].pdnoteindex, 0, offset, sizeof(sp38), sp38);