From 86a2c45848582025e2a15e0fb67a6632ace2f482 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 f1e61dff0..937b05f5d 100644 --- a/src/gba/serialize.c +++ b/src/gba/serialize.c @@ -514,14 +514,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);