From 3c027eec3b83de9c7f7224b2b0f98eaa11729d34 Mon Sep 17 00:00:00 2001
From: Markus Mittendrein <[EMAIL REDACTED]>
Date: Sun, 20 Nov 2022 22:25:47 +0100
Subject: [PATCH] Add missing error handling to SDL_realloc call
---
src/mixer.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/mixer.c b/src/mixer.c
index 67c14551..1c295f84 100644
--- a/src/mixer.c
+++ b/src/mixer.c
@@ -758,6 +758,7 @@ Mix_Chunk *Mix_LoadWAV_RW(SDL_RWops *src, int freesrc)
SDL_AudioCVT wavecvt;
int samplesize;
int wavfree; /* to decide how to free chunk->abuf. */
+ Uint8 *resized_buf;
/* rcg06012001 Make sure src is valid */
if (!src) {
@@ -860,7 +861,12 @@ Mix_Chunk *Mix_LoadWAV_RW(SDL_RWops *src, int freesrc)
return(NULL);
}
- chunk->abuf = SDL_realloc(wavecvt.buf, wavecvt.len_cvt);
+ resized_buf = SDL_realloc(wavecvt.buf, wavecvt.len_cvt);
+ if (resized_buf == NULL) {
+ chunk->abuf = wavecvt.buf;
+ } else {
+ chunk->abuf = resized_buf;
+ }
chunk->alen = wavecvt.len_cvt;
wavfree = 0;
}