summaryrefslogtreecommitdiff
path: root/media-libs/sdl2-mixer/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-09-10 04:21:55 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-09-10 04:21:55 +0100
commit677b7ba5c317778df2ad7e70df94b9b7eec4adbc (patch)
tree6c418a1546fff5becab5d8b9ed6803323e7f316e /media-libs/sdl2-mixer/files
parentfbda87924e6faa7a1919f1a2b4182490bde5ec5c (diff)
gentoo resync : 10.09.2021
Diffstat (limited to 'media-libs/sdl2-mixer/files')
-rw-r--r--media-libs/sdl2-mixer/files/sdl2-mixer-2.0.4-fluidsynth.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/media-libs/sdl2-mixer/files/sdl2-mixer-2.0.4-fluidsynth.patch b/media-libs/sdl2-mixer/files/sdl2-mixer-2.0.4-fluidsynth.patch
new file mode 100644
index 000000000000..cd740ac85c11
--- /dev/null
+++ b/media-libs/sdl2-mixer/files/sdl2-mixer-2.0.4-fluidsynth.patch
@@ -0,0 +1,30 @@
+From 6160668079f91d57a5d7bf0b40ffdd843be70daf Mon Sep 17 00:00:00 2001
+From: Sam Lantinga <slouken@libsdl.org>
+Date: Wed, 20 Jan 2021 10:17:10 -0800
+Subject: [PATCH] Fixed use-after-free in music_fluidsynth.c
+
+Tom M.
+
+There is a dangerous use-after-free in FLUIDSYNTH_Delete(): the settings object is deleted **before** the synth. Since the settings have been created first to initialize the synth, you must first delete the synth and then delete the settings. This currently crashes all applications that use fluidsynth 2.1.6 and SDL2_mixer. Please apply the attached patch and release a bug fix release.
+
+Originally reported at https://github.com/FluidSynth/fluidsynth/issues/748
+---
+ src/codecs/music_fluidsynth.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/codecs/music_fluidsynth.c b/src/codecs/music_fluidsynth.c
+index 8667f0d9..a47247f4 100644
+--- a/music_fluidsynth.c
++++ b/music_fluidsynth.c
+@@ -285,9 +285,10 @@ static void FLUIDSYNTH_Stop(void *context)
+ static void FLUIDSYNTH_Delete(void *context)
+ {
+ FLUIDSYNTH_Music *music = (FLUIDSYNTH_Music *)context;
++ fluid_settings_t *settings = fluidsynth.fluid_synth_get_settings(music->synth);
+ fluidsynth.delete_fluid_player(music->player);
+- fluidsynth.delete_fluid_settings(fluidsynth.fluid_synth_get_settings(music->synth));
+ fluidsynth.delete_fluid_synth(music->synth);
++ fluidsynth.delete_fluid_settings(settings);
+ SDL_free(music);
+ }
+