From 0335b7e8376c06c340124a42c9b01a436a3a4525 Mon Sep 17 00:00:00 2001 From: Steve Date: Thu, 8 Feb 2018 21:30:02 +0000 Subject: [PATCH] Use uint32 for file lengths. --- src/system/io.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/system/io.c b/src/system/io.c index a2001b2..c75b1e4 100644 --- a/src/system/io.c +++ b/src/system/io.c @@ -77,6 +77,7 @@ char *readFile(const char *filename) char *readCompressedFile(const char *filename) { unsigned char *buffer, *cBuffer; + uint32_t l1, l2; unsigned long length, cLength; FILE *file = fopen(getFileLocation(filename), "rb"); @@ -85,8 +86,14 @@ char *readCompressedFile(const char *filename) if (file) { - fread(&length, sizeof(unsigned long), 1, file); - fread(&cLength, sizeof(unsigned long), 1, file); + fread(&l1, sizeof(uint32_t), 1, file); + fread(&l2, sizeof(uint32_t), 1, file); + + l1 = SDL_SwapLE32(l1); + l2 = SDL_SwapLE32(l2); + + length = l1; + cLength = l2; buffer = malloc(length + 1); memset(buffer, 0, length + 1);