Skip to content

Commit ad2837d

Browse files
authored
Merge pull request #114 from OpenFodder/codex/fix-amiga-hills.lbm-load-vulnerability
Guard Amiga hill sprite copy against short buffers
2 parents b7e31c7 + 8356e5a commit ad2837d

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

Source/Amiga/Graphics_Amiga.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,13 @@ void cGraphics_Amiga::Load_Hill_Data() {
292292
mImageHillSprites = Decode_Image("hills", 64);
293293
mImageHillSprites.mData->resize(mImageHillBackground.GetHeader()->ScreenSize() * (mImageHillBackground.GetHeader()->mPlanes + 30));
294294

295+
// Legacy code below writes to fixed offsets in the hill sprite buffer.
296+
// Ensure the decoded image is large enough before using those offsets.
297+
constexpr size_t kHillSpriteMinSize = 0x42A0E;
298+
if (mImageHillSprites.mData->size() < kHillSpriteMinSize) {
299+
return;
300+
}
301+
295302
// A5A7E
296303
uint8* a0 = mImageHillSprites.mData->data() + (29 * 40);
297304
uint8* a1 = mImageHillSprites.mData->data() + 0x390EE + 0x3E8;

0 commit comments

Comments
 (0)