diff --git a/CHANGES b/CHANGES index a98b797c4..0534d133d 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,7 @@ Bugfixes: - GBA Video: Fix regression adjusting brightness of backdrop - DS GX: Properly reject invalid commands - DS: Fix leaking BIOS and firmware filehandles + - DS: Fix freeing memory for partial BIOS on load failure Misc: - DS GX: Clean up and unify texture mapping - DS Core: Add symbol loading diff --git a/src/ds/ds.c b/src/ds/ds.c index 85ec8a187..8fdbd9629 100644 --- a/src/ds/ds.c +++ b/src/ds/ds.c @@ -597,7 +597,11 @@ bool DSLoadBIOS(struct DS* ds, struct VFile* vf) { mLOG(DS, INFO, "Official DS ARM9 BIOS detected"); } else { mLOG(DS, WARN, "BIOS checksum incorrect"); - vf->unmap(vf, data, size); + if (size == 0x1000) { + free(data); + } else { + vf->unmap(vf, data, size); + } return false; } return true;