all repos — mgba @ 826569fdf7a69c620b6df66e3afd52bffa7274a8

mGBA Game Boy Advance Emulator

GBA BIOS: Fix BIOS decompression routines with invalid source addresses
Jeffrey Pfau jeffrey@endrift.com
Fri, 06 Mar 2015 22:18:27 -0800
commit

826569fdf7a69c620b6df66e3afd52bffa7274a8

parent

e61d413d69aa3d1319c60a7565033214da8eb2c7

2 files changed, 5 insertions(+), 0 deletions(-)

jump to
M CHANGESCHANGES

@@ -47,6 +47,7 @@ - Qt: Fix crash when starting GDB stub after closing a game

- Qt: Fix patch loading while a game is running - Util: Fix sockets on Windows - Qt: Fix crash when loading a game after stopping GDB server + - GBA BIOS: Fix BIOS decompression routines with invalid source addresses Misc: - GBA Audio: Change internal audio sample buffer from 32-bit to 16-bit samples - GBA Memory: Simplify memory API and use fixed bus width
M src/gba/bios.csrc/gba/bios.c

@@ -233,6 +233,7 @@ case 0x11:

case 0x12: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad LZ77 source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:

@@ -247,6 +248,7 @@ break;

case 0x13: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad Huffman source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:

@@ -262,6 +264,7 @@ case 0x14:

case 0x15: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad RL source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:

@@ -278,6 +281,7 @@ case 0x17:

case 0x18: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad UnFilter source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default: