From c486c7dbd24b851b6318f5faade75d906a6c601e Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 12 Jan 2012 10:51:17 +0000 Subject: testing/xulrunner: test the ff9 randmap fix --- testing/xulrunner/APKBUILD | 6 ++++-- testing/xulrunner/ff9-aslr-fix.patch | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 testing/xulrunner/ff9-aslr-fix.patch diff --git a/testing/xulrunner/APKBUILD b/testing/xulrunner/APKBUILD index 6fadead67..82bd90275 100644 --- a/testing/xulrunner/APKBUILD +++ b/testing/xulrunner/APKBUILD @@ -3,7 +3,7 @@ pkgname=xulrunner pkgver=9.0.1 _ffoxver=9.0.1 -pkgrel=0 +pkgrel=1 pkgdesc="runtime environment for xul-based applications" url="http://developer.mozilla.org/en/XULRunner" arch="all" @@ -48,6 +48,7 @@ source="http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver} 0002-Use-C99-math-isfinite.patch 0003-xulrunner-jemalloc-aslr.patch 0004-xulrunner-malloc_usable_size.patch + ff9-aslr-fix.patch " _builddir="${srcdir}/mozilla-release" @@ -105,4 +106,5 @@ md5sums="7cf2bd379792a9b232267c6a79680566 firefox-9.0.1.source.tar.bz2 b0f7d491bc800b69ec718667a4b08acb mozconfig 1867db217d10722675c88b655db8c2d7 0002-Use-C99-math-isfinite.patch 7faa279d64c9ec2e7abc7c0497c7e07e 0003-xulrunner-jemalloc-aslr.patch -7cf18be3ada3eed5856fbab24219126d 0004-xulrunner-malloc_usable_size.patch" +7cf18be3ada3eed5856fbab24219126d 0004-xulrunner-malloc_usable_size.patch +96b40acd003a0a586e408bf09ae5af1d ff9-aslr-fix.patch" diff --git a/testing/xulrunner/ff9-aslr-fix.patch b/testing/xulrunner/ff9-aslr-fix.patch new file mode 100644 index 000000000..4e4297d0e --- /dev/null +++ b/testing/xulrunner/ff9-aslr-fix.patch @@ -0,0 +1,40 @@ +--- ./js/src/jsgcchunk.cpp 2011-12-22 17:13:21.000000000 +0000 ++++ ./js/src/jsgcchunk.cpp 2011-12-22 17:18:31.000000000 +0000 +@@ -213,7 +213,7 @@ + #elif defined(XP_UNIX) + + /* Required on Solaris 10. Might improve performance elsewhere. */ +-# if defined(SOLARIS) && defined(MAP_ALIGN) ++# if (defined(SOLARIS) && defined(MAP_ALIGN)) || defined(MOZ_MEMORY_LINUX) + # define JS_GC_HAS_MAP_ALIGN + + static void * +--- ./js/src/jsgcchunk.cpp 2011-12-22 17:55:24.000000000 +0000 ++++ ./js/src/jsgcchunk.cpp 2011-12-22 18:02:24.000000000 +0000 +@@ -226,12 +226,24 @@ + #ifdef SOLARIS + void *p = mmap((caddr_t) alignment, size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0); ++ if (p == MAP_FAILED) ++ return NULL; + #else +- void *p = mmap((void *) alignment, size, PROT_READ | PROT_WRITE, +- MAP_PRIVATE | MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0); +-#endif ++ void *p = mmap(NULL, size + alignment, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_NOSYNC | MAP_ANON, -1, 0); + if (p == MAP_FAILED) + return NULL; ++ uintptr_t aligned_ret; ++ size_t extra_size; ++ ++ aligned_ret = (uintptr_t)p + alignment - 1; ++ aligned_ret &= ~(alignment - 1); ++ extra_size = aligned_ret - (uintptr_t)p; ++ munmap(p, extra_size); ++ munmap(p + extra_size + size, alignment - extra_size); ++ p = (void *)aligned_ret; ++#endif ++ + return p; + } -- cgit v1.2.3