[mupen64plus-core] 87/310: Prevent segfault when .local/share/mupen64plus/ owned by root

Sven Eckelmann ecsv-guest at moszumanska.debian.org
Thu Nov 26 05:57:22 UTC 2015


This is an automated email from the git hooks/post-receive script.

ecsv-guest pushed a commit to branch armhf_test
in repository mupen64plus-core.

commit 2d0bd82d33555d905ae9ab030079e5ecc3ed2969
Author: Sven Eckelmann <sven at narfation.org>
Date:   Sun Jul 24 11:53:45 2011 +0200

    Prevent segfault when .local/share/mupen64plus/ owned by root
---
 debian/changelog                        |  2 +
 debian/patches/privilege_segfault.patch | 77 +++++++++++++++++++++++++++++++++
 debian/patches/series                   |  1 +
 3 files changed, 80 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index c4cfe42..a3246a2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,8 @@ mupen64plus-core (1.99.4-3) UNRELEASED; urgency=low
     - Add rewrite_makefile.patch, Rewrite Makefile to fix flags and linking
     - Add big_endian_conflict.patch, Don't use _BIG_ENDIAN to check for
       endianness
+    - Add privilege_segfault.patch, Prevent segfault when
+      .local/share/mupen64plus/ owned by root
 
  -- Sven Eckelmann <sven at narfation.org>  Wed, 13 Jul 2011 08:38:54 +0200
 
diff --git a/debian/patches/privilege_segfault.patch b/debian/patches/privilege_segfault.patch
new file mode 100644
index 0000000..4392780
--- /dev/null
+++ b/debian/patches/privilege_segfault.patch
@@ -0,0 +1,77 @@
+Description: Prevent segfault when .local/share/mupen64plus/ owned by root
+Origin: upstream, https://bitbucket.org/richard42/mupen64plus-core/changeset/7a3c40f91e4f
+Author: Richard Goedeken <Richard at fascinationsoftware.com>
+
+---
+diff --git a/src/main/main.c b/src/main/main.c
+index 1ce8a6d5542349b3cf05a0c9aa6fa19de6caa9b3..0aadb400cb716e9b5b9c23e3fc578f36b5d48707 100644
+--- a/src/main/main.c
++++ b/src/main/main.c
+@@ -88,9 +88,8 @@ char *get_savespath()
+     snprintf(path, 1024, "%ssave%c", ConfigGetUserDataPath(), OSAL_DIR_SEPARATOR);
+     path[1023] = 0;
+ 
+-    /* make sure the directory exists */
+-    if (osal_mkdirp(path, 0700) != 0)
+-        return NULL;
++    /* create directory if it doesn't exist */
++    osal_mkdirp(path, 0700);
+ 
+     return path;
+ }
+diff --git a/src/main/savestates.c b/src/main/savestates.c
+index edc80e29a053620a21bdf2b1b7cb2447fdfd5a4a..d9a35fd92a0248279ba12f14ac2dd45046020120 100644
+--- a/src/main/savestates.c
++++ b/src/main/savestates.c
+@@ -155,6 +155,13 @@ void savestates_save()
+     f = gzopen(file, "wb");
+     free(file);
+ 
++    if (f==NULL)
++    {
++        main_message(M64MSG_STATUS, OSD_BOTTOM_LEFT, "Could not open state file: %s", filename);
++        free(filename);
++        return;
++    }
++
+     /* Write magic number. */
+     gzwrite(f, savestate_magic, 8);
+ 
+@@ -256,11 +263,11 @@ void savestates_load()
+     free(file);
+ 
+     if(f==NULL)
+-        {
++    {
+         main_message(M64MSG_STATUS, OSD_BOTTOM_LEFT, "Could not open state file: %s", filename);
+         free(filename);
+         return;
+-        }
++    }
+ 
+     /* Read and check Mupen64Plus magic number. */
+     gzread(f, buffer, 8);
+diff --git a/src/memory/dma.c b/src/memory/dma.c
+index 35a19f49d27d37d1be432731b58a005fb1e97411..9c9aee5de170b5769a869b206469efcf01e77bf2 100644
+--- a/src/memory/dma.c
++++ b/src/memory/dma.c
+@@ -53,8 +53,7 @@ void dma_pi_read(void)
+         {
+             char *filename;
+             FILE *f;
+-            filename = (char *) malloc(strlen(get_savespath())+
+-            strlen(ROM_SETTINGS.goodname)+4+1);
++            filename = (char *) malloc(strlen(get_savespath()) + strlen(ROM_SETTINGS.goodname) + 4 + 1);
+             strcpy(filename, get_savespath());
+             strcat(filename, ROM_SETTINGS.goodname);
+             strcat(filename, ".sra");
+@@ -123,8 +122,7 @@ void dma_pi_write(void)
+                 FILE *f;
+                 int i;
+                 
+-                filename = (char *) malloc(strlen(get_savespath())+
+-                strlen(ROM_SETTINGS.goodname)+4+1);
++                filename = (char *) malloc(strlen(get_savespath()) + strlen(ROM_SETTINGS.goodname) + 4 + 1);
+                 strcpy(filename, get_savespath());
+                 strcat(filename, ROM_SETTINGS.goodname);
+                 strcat(filename, ".sra");
diff --git a/debian/patches/series b/debian/patches/series
index fa8d4a0..6903d99 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@ rtc.patch
 n64_romswap.patch
 rjump_globber.patch
 big_endian_conflict.patch
+privilege_segfault.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-core.git



More information about the Pkg-games-commits mailing list