[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