all repos — mgba @ ad0fbb995dbd0114b56c68e484d4a55861713a3d

mGBA Game Boy Advance Emulator

Fix memory corruption bug in GBAExtdataSerialize
nattthebear goyuken@gmail.com
Thu, 25 Feb 2016 21:25:30 -0500
commit

ad0fbb995dbd0114b56c68e484d4a55861713a3d

parent

48050c33eaaf2e90afe6fa3ee7ffa80828ead3ed

1 files changed, 3 insertions(+), 3 deletions(-)

jump to
M src/gba/serialize.csrc/gba/serialize.c

@@ -582,14 +582,14 @@ }

bool GBAExtdataSerialize(struct GBAExtdata* extdata, struct VFile* vf) { ssize_t position = vf->seek(vf, 0, SEEK_CUR); - ssize_t size = 2; + ssize_t size = sizeof(struct GBAExtdataHeader); size_t i = 0; for (i = 1; i < EXTDATA_MAX; ++i) { if (extdata->data[i].data) { - size += sizeof(uint64_t) * 2; + size += sizeof(struct GBAExtdataHeader); } } - if (size == 2) { + if (size == sizeof(struct GBAExtdataHeader)) { return true; } struct GBAExtdataHeader* header = malloc(size);