diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c index 465195eb8..48acb3f30 100644 --- a/src/audio/SDL_wave.c +++ b/src/audio/SDL_wave.c @@ -440,6 +440,7 @@ SDL_AudioSpec * 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 ) { @@ -522,6 +523,7 @@ SDL_AudioSpec * 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 ) { @@ -591,6 +593,7 @@ static int 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/cdrom/win32/SDL_syscdrom.c b/src/cdrom/win32/SDL_syscdrom.c index 3d0587dad..98499a88a 100644 --- a/src/cdrom/win32/SDL_syscdrom.c +++ b/src/cdrom/win32/SDL_syscdrom.c @@ -377,6 +377,7 @@ void SDL_SYS_CDQuit(void) if ( SDL_numcds > 0 ) { for ( i=0; ihwdata != NULL) { /* free system specific hardware data */ SDL_free(joystick->hwdata); + joystick->hwdata = NULL; } } @@ -354,6 +355,7 @@ void SDL_SYS_JoystickQuit(void) for (i = 0; i < MAX_JOYSTICKS; i++) { if ( SYS_JoystickName[i] != NULL ) { SDL_free(SYS_JoystickName[i]); + SYS_JoystickName[i] = NULL; } } } diff --git a/src/video/SDL_yuv_sw.c b/src/video/SDL_yuv_sw.c index 13c4a92e1..303a5e6d4 100644 --- a/src/video/SDL_yuv_sw.c +++ b/src/video/SDL_yuv_sw.c @@ -1294,5 +1294,6 @@ void SDL_FreeYUV_SW(_THIS, SDL_Overlay *overlay) SDL_free(swdata->rgb_2_pix); } SDL_free(swdata); + overlay->hwdata = NULL; } } diff --git a/src/video/windx5/SDL_dx5yuv.c b/src/video/windx5/SDL_dx5yuv.c index 2457dacd8..6111ff535 100644 --- a/src/video/windx5/SDL_dx5yuv.c +++ b/src/video/windx5/SDL_dx5yuv.c @@ -290,6 +290,7 @@ void DX5_FreeYUVOverlay(_THIS, SDL_Overlay *overlay) IDirectDrawSurface_Release(hwdata->surface); } SDL_free(hwdata); + overlay->hwdata = NULL; } }