From 288a007202ea66195fc1317b146bcfc37cc8dae4 Mon Sep 17 00:00:00 2001 From: Raf <> Date: Fri, 2 Aug 2024 17:43:05 +0800 Subject: [PATCH] portx64: bug fix: mp3 code accessing out of bounds memory: increased alloc/audio heap size --- src/lib/mp3.c | 4 ++++ src/lib/snd.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/mp3.c b/src/lib/mp3.c index 9f69e9ac5..e94af6431 100644 --- a/src/lib/mp3.c +++ b/src/lib/mp3.c @@ -60,7 +60,11 @@ void mp3Init(ALHeap *heap) var8009c6d8 = alHeapAlloc(heap, 256 * sizeof(var8009c6d8[0]), 1); var8009c6dc = alHeapAlloc(heap, 256 * sizeof(var8009c6dc[0]), 1); +#ifdef PLATFORM_64BIT + var8009c640 = alHeapAlloc(heap, 2*10500 * sizeof(struct mp3decfourbytes), 1); +#else var8009c640 = alHeapAlloc(heap, 10500 * sizeof(struct mp3decfourbytes), 1); +#endif var8009c644 = alHeapAlloc(heap, 8192 * sizeof(var8009c644[0]), 1); mp3mainInit(); diff --git a/src/lib/snd.c b/src/lib/snd.c index 6beac208b..c2c88d694 100644 --- a/src/lib/snd.c +++ b/src/lib/snd.c @@ -1460,7 +1460,7 @@ void sndInit(void) #endif #ifdef PLATFORM_64BIT - heaplen = 1024 * 661; + heaplen = 1024 * 745; #endif g_Vars.langfilteron = false;