Hello community,

here is the log from the commit of package SDL_mixer for openSUSE:Factory 
checked in at 2013-11-25 16:04:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/SDL_mixer (Old)
 and      /work/SRC/openSUSE:Factory/.SDL_mixer.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "SDL_mixer"

Changes:
--------
--- /work/SRC/openSUSE:Factory/SDL_mixer/SDL_mixer.changes      2013-09-27 
18:29:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.SDL_mixer.new/SDL_mixer.changes 2013-11-25 
16:04:10.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Nov 23 19:19:39 UTC 2013 - [email protected]
+
+- import patches from 
https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/sdl_mixer
+  to fix mixer / mikmod free corruption (bnc#851996)
+  Add double-free-crash.patch, mikmod1.patch and mikmod2.patch
+
+-------------------------------------------------------------------

New:
----
  double-free-crash.patch
  mikmod1.patch
  mikmod2.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ SDL_mixer.spec ++++++
--- /var/tmp/diff_new_pack.w8hPoM/_old  2013-11-25 16:04:11.000000000 +0100
+++ /var/tmp/diff_new_pack.w8hPoM/_new  2013-11-25 16:04:11.000000000 +0100
@@ -27,6 +27,12 @@
 
 Source:         
http://libsdl.org/projects/SDL_mixer/release/%name-%version.tar.gz
 Source1:        baselibs.conf
+# PATCH-FIX-UPSTREAM: http://hg.libsdl.org/SDL_mixer/rev/56cad6484b04
+Patch1:         mikmod1.patch
+# PATCH-FIX-UPSTREAM: http://hg.libsdl.org/SDL_mixer/rev/2ebb0d016f27
+Patch2:         mikmod2.patch
+# PATCH-FIX-UPSTREAM: http://hg.libsdl.org/SDL_mixer/rev/2d713670db9b
+Patch3:         double-free-crash.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  flac-devel
 BuildRequires:  fluidsynth-devel
@@ -75,6 +81,9 @@
 
 %prep
 %setup -q
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 # remove unneccessary files from upstream tarball [bnc#508180] to clean up 
source RPM
 rm libmikmod-3.1.12.zip
 rm Watcom-OS2.zip

++++++ double-free-crash.patch ++++++

# HG changeset patch
# User Sam Lantinga <[email protected]>
# Date 1329087437 18000
# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
# Parent  df72f22b4b411ad4b08f924329678aabd5ac97d6
Fixed 1418 - crash on double free if loading WAV file failed

diff -r df72f22b4b41 -r 2d713670db9b mixer.c
--- a/mixer.c   Mon Jan 30 21:41:45 2012 -0500
+++ b/mixer.c   Sun Feb 12 17:57:17 2012 -0500
@@ -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);
        }
 

++++++ mikmod1.patch ++++++

# HG changeset patch
# User Sam Lantinga <[email protected]>
# Date 1342998807 25200
# Node ID 56cad6484b04f83c8d42428c755a046678506436
# Parent  c92001a2c18f628698c58aa4e05a7335d10d0e9e
Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver

diff -r c92001a2c18f -r 56cad6484b04 CHANGES
--- a/CHANGES   Sun Mar 04 21:32:47 2012 +0000
+++ b/CHANGES   Sun Jul 22 16:13:27 2012 -0700
@@ -1,3 +1,7 @@
+1.2.13:
+Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
+ * Fixed malloc/free mismatch in the MikMod driver
+
 1.2.12:
 Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
  * Fixed seek offset with SMPEG (was relative, should be absolute)
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
--- a/dynamic_mod.c     Sun Mar 04 21:32:47 2012 +0000
+++ b/dynamic_mod.c     Sun Jul 22 16:13:27 2012 -0700
@@ -93,6 +93,13 @@
                        SDL_UnloadObject(mikmod.handle);
                        return -1;
                }
+               mikmod.MikMod_free =
+                       (void (*)(void*))
+                       SDL_LoadFunction(mikmod.handle, "MikMod_free");
+               if ( mikmod.MikMod_free == NULL ) {
+                       SDL_UnloadObject(mikmod.handle);
+                       return -1;
+               }
                mikmod.Player_Active =
                        (BOOL (*)(void))
                        SDL_LoadFunction(mikmod.handle, "Player_Active");
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
--- a/dynamic_mod.h     Sun Mar 04 21:32:47 2012 +0000
+++ b/dynamic_mod.h     Sun Jul 22 16:13:27 2012 -0700
@@ -35,6 +35,7 @@
        void (*MikMod_RegisterDriver)(struct MDRIVER*);
        int* MikMod_errno;
        char* (*MikMod_strerror)(int);
+       void (*MikMod_free)(void*);
        BOOL (*Player_Active)(void);
        void (*Player_Free)(MODULE*);
        MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
--- a/music_mod.c       Sun Mar 04 21:32:47 2012 +0000
+++ b/music_mod.c       Sun Jul 22 16:13:27 2012 -0700
@@ -109,13 +109,13 @@
 
        list = mikmod.MikMod_InfoDriver();
        if ( list )
-         free(list);
+         mikmod.MikMod_free(list);
        else
          mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
 
        list = mikmod.MikMod_InfoLoader();
        if ( list )
-         free(list);
+         mikmod.MikMod_free(list);
        else
          mikmod.MikMod_RegisterAllLoaders();
 

++++++ mikmod2.patch ++++++

# HG changeset patch
# User Sam Lantinga <[email protected]>
# Date 1343000017 25200
# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
# Parent  56cad6484b04f83c8d42428c755a046678506436
Fixed normal linking with libmikmod and linking with earlier versions of 
libmikmod.

diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
--- a/dynamic_mod.c     Sun Jul 22 16:13:27 2012 -0700
+++ b/dynamic_mod.c     Sun Jul 22 16:33:37 2012 -0700
@@ -97,8 +97,8 @@
                        (void (*)(void*))
                        SDL_LoadFunction(mikmod.handle, "MikMod_free");
                if ( mikmod.MikMod_free == NULL ) {
-                       SDL_UnloadObject(mikmod.handle);
-                       return -1;
+                       /* libmikmod 3.1 and earlier doesn't have it */
+                       mikmod.MikMod_free = free;
                }
                mikmod.Player_Active =
                        (BOOL (*)(void))
@@ -246,6 +246,11 @@
                mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
                mikmod.MikMod_errno = &MikMod_errno;
                mikmod.MikMod_strerror = MikMod_strerror;
+#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
+               mikmod.MikMod_free = free;
+#else
+               mikmod.MikMod_free = MikMod_free;
+#endif
                mikmod.Player_Active = Player_Active;
                mikmod.Player_Free = Player_Free;
                mikmod.Player_LoadGeneric = Player_LoadGeneric;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to