From ad0fbb995dbd0114b56c68e484d4a55861713a3d Mon Sep 17 00:00:00 2001 From: nattthebear Date: Thu, 25 Feb 2016 21:25:30 -0500 Subject: [PATCH] Fix memory corruption bug in GBAExtdataSerialize --- src/gba/serialize.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gba/serialize.c b/src/gba/serialize.c index 44daecda5..26946d9f0 100644 --- a/src/gba/serialize.c +++ b/src/gba/serialize.c @@ -582,14 +582,14 @@ bool GBAExtdataGet(struct GBAExtdata* extdata, enum GBAExtdataTag tag, struct GB 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);