From 6f63a0e1691acb05c2a21c6fdaca3d45b1ca56df Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 6 Jan 2010 07:34:20 +0000 Subject: [PATCH] Merged r4121:4122 from branches/SDL-1.2: more double-free fixes. --- src/audio/SDL_wave.c | 3 +++ src/events/SDL_events.c | 1 + 2 files changed, 4 insertions(+) diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c index b7f5003d5..5ac6623db 100644 --- a/src/audio/SDL_wave.c +++ b/src/audio/SDL_wave.c @@ -454,6 +454,7 @@ SDL_LoadWAV_RW(SDL_RWops * src, int freesrc, do { if (chunk.data != NULL) { SDL_free(chunk.data); + chunk.data = NULL; } lenread = ReadChunk(src, &chunk); if (lenread < 0) { @@ -553,6 +554,7 @@ SDL_LoadWAV_RW(SDL_RWops * src, int freesrc, do { if (*audio_buf != NULL) { SDL_free(*audio_buf); + *audio_buf = NULL; } lenread = ReadChunk(src, &chunk); if (lenread < 0) { @@ -625,6 +627,7 @@ ReadChunk(SDL_RWops * src, Chunk * chunk) if (SDL_RWread(src, chunk->data, chunk->length, 1) != 1) { SDL_Error(SDL_EFREAD); SDL_free(chunk->data); + chunk->data = NULL; return (-1); } return (chunk->length); diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c index 383e018fc..5567b59f9 100644 --- a/src/events/SDL_events.c +++ b/src/events/SDL_events.c @@ -176,6 +176,7 @@ SDL_StopEventThread(void) SDL_WaitThread(SDL_EventThread, NULL); SDL_EventThread = NULL; SDL_DestroyMutex(SDL_EventLock.lock); + SDL_EventLock.lock = NULL; } if (SDL_EventQ.lock) { SDL_DestroyMutex(SDL_EventQ.lock);