This is an automated email from the git hooks/post-receive script. ecsv-guest pushed a commit to branch master in repository mupen64plus.
commit ee582769c445e29186659381772d32b0cb24cd32 Author: Sven Eckelmann <[email protected]> Date: Sat Oct 3 01:28:02 2009 +0200 Update noexecstack.patch, Backport actual commit from upstream --- debian/changelog | 1 + debian/patches/noexecstack.patch | 33 ++++++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0b49813..6bea1a9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ mupen64plus (1.5+dfsg1-6) UNRELEASED; urgency=low - Add Origin information to patches - Update fix_readpng.patch, Backport actual commit from upstream - Update ftbfs-glibc210.patch, Backport actual commit from upstream + - Update noexecstack.patch, Backport actual commit from upstream -- Sven Eckelmann <[email protected]> Sat, 03 Oct 2009 00:36:41 +0200 diff --git a/debian/patches/noexecstack.patch b/debian/patches/noexecstack.patch index 66ca3bf..3c0f37b 100644 --- a/debian/patches/noexecstack.patch +++ b/debian/patches/noexecstack.patch @@ -9,6 +9,7 @@ Origin: backported, commit:1414 Bug: http://code.google.com/p/mupen64plus/issues/detail?id=268 Bug-Debian: http://bugs.debian.org/547644 Author: Sven Eckelmann <[email protected]> +Author: Richard Goedeken <[email protected]> --- diff --git a/Makefile b/Makefile @@ -30,21 +31,22 @@ index 01493e6e7f70fcd49ec784b97b54882404dbb599..2368afa38816069f4fd176c1936c23f4 ifeq ($(DBG), 1) CFLAGS += -DDBG diff --git a/r4300/recomp.c b/r4300/recomp.c -index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0bfd45d774 100644 +index 876fc55213fde588365ec948abaf60abb56f07f6..aafe8642602d88d7f1dd2fbeb08a8968d341e9a7 100644 --- a/r4300/recomp.c +++ b/r4300/recomp.c -@@ -20,6 +20,10 @@ +@@ -20,6 +20,11 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include <stdlib.h> +#if defined(__GNUC__) ++#include <unistd.h> +#include <malloc.h> +#include <sys/mman.h> +#endif #include "recomp.h" #include "recomph.h" //include for function prototypes -@@ -2168,7 +2172,7 @@ void init_block(int *source, precomp_block *block) +@@ -2168,7 +2173,7 @@ void init_block(int *source, precomp_block *block) if (!block->block) { long memsize = ((length+1)+(length>>2)) * sizeof(precomp_instr); @@ -53,7 +55,7 @@ index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0b memset(block->block, 0, memsize); already_exist = 0; } -@@ -2178,12 +2182,12 @@ void init_block(int *source, precomp_block *block) +@@ -2178,12 +2183,12 @@ void init_block(int *source, precomp_block *block) if (!block->code) { #if defined(PROFILE_R4300) @@ -69,7 +71,7 @@ index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0b } else { -@@ -2574,3 +2578,35 @@ void prefetch_opcode(unsigned int op) +@@ -2574,3 +2579,48 @@ void prefetch_opcode(unsigned int op) recomp_ops[((src >> 26) & 0x3F)](); } @@ -79,9 +81,19 @@ index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0b +void *malloc_exec(size_t size) +{ +#if defined(__GNUC__) -+ void* block = valloc(size); -+ if (block != NULL) -+ mprotect(block, size, PROT_READ | PROT_WRITE | PROT_EXEC); ++ int pagesize = sysconf(_SC_PAGE_SIZE); ++ if (pagesize == -1) ++ { printf("Memory error: couldn't determine system memory page size.\n"); return NULL; } ++ ++ /* Allocate a buffer aligned on a page boundary; ++ initial protection is PROT_READ | PROT_WRITE */ ++ void *block = NULL; ++ if (posix_memalign(&block, pagesize, size) != 0) ++ { printf("Memory error: couldn't allocate %i byte block of %i-byte aligned memory.\n", size, pagesize); return NULL; } ++ ++ if (mprotect(block, size, PROT_READ | PROT_WRITE | PROT_EXEC) != 0) ++ { printf("Memory error: couldn't set RWX permissions on %i byte block of memory.\n", size); return NULL; } ++ + return block; +#else + return malloc(size); @@ -94,7 +106,8 @@ index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0b +void *realloc_exec(void *ptr, size_t size, size_t newsize) +{ + void* block = malloc_exec(newsize); -+ if (block != NULL) { ++ if (block != NULL) ++ { + size_t copysize; + if (size < newsize) + copysize = size; @@ -105,6 +118,8 @@ index 876fc55213fde588365ec948abaf60abb56f07f6..d3672f30f52ed9fbd0391d434c660b0b + free(ptr); + return block; +} ++ ++ diff --git a/r4300/recomp.h b/r4300/recomp.h index d286bef27a9b107e0c5da36ca444a59ed7b9cf8d..1b2c859c7bcdf189d2d75cb8d6e2626f461a2852 100644 --- a/r4300/recomp.h -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

