summaryrefslogtreecommitdiffstats
path: root/src/sdl_mixer-1-fix-double-free.patch
blob: 4ee3a50db972ce6a7727ccf70eba989ecb75ad59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
This file is part of MXE. See LICENSE.md for licensing 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);
 	}