package sdl_mixer: fix for double-freeing resources with WAV files

This commit is contained in:
Tony Theodore 2013-02-09 18:26:37 +11:00
parent 36555723f5
commit f7133d3145
1 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,35 @@
This file is part of MXE.
See index.html for further information.
https://bugs.gentoo.org/show_bug.cgi?id=406739
Nikos Chantziaras 2012-03-03 03:13:39 EST
There's a bug in the current version of SDL_mixer where failing to load a WAV sample will result in freeing a resource twice, resulting in an application crash. There is an upstream fix for this:
http://hg.libsdl.org/SDL_mixer/rev/ea53a85853dd
Upstream bug: http://bugzilla.libsdl.org/show_bug.cgi?id=1418
--- a/mixer.c
+++ b/mixer.c
@@ -610,13 +610,15 @@
break;
default:
SDL_SetError("Unrecognized sound file type");
- return(0);
+ if ( freesrc ) {
+ SDL_RWclose(src);
+ }
+ loaded = NULL;
+ break;
}
if ( !loaded ) {
+ /* The individual loaders have closed src if needed */
SDL_free(chunk);
- if ( freesrc ) {
- SDL_RWclose(src);
- }
return(NULL);
}