diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2016-11-01 16:22:38 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2016-11-01 16:23:11 +0100 |
commit | 7565f43fc1c544625d153f510b950f9f9bf6e848 (patch) | |
tree | a51aa9e53f11a9b6cf0bff705e273257492b6401 /dev-libs/jemalloc | |
parent | media-libs/glfw: Added kde-frameworks/extra-cmake-modules to DEPEND. (diff) | |
download | gentoo-7565f43fc1c544625d153f510b950f9f9bf6e848.tar.gz gentoo-7565f43fc1c544625d153f510b950f9f9bf6e848.tar.bz2 gentoo-7565f43fc1c544625d153f510b950f9f9bf6e848.zip |
dev-libs/jemalloc: Patch added to fix an issue with sys-apps/sandbox
Cherry picked commit c443b67561 [Link 1] which fixes an issue which
prevented any jemalloc-enabled application from running through
sys-apps/sandbox (typical use case is emerge with FEATURES=sandbox and
FEATURES=test).
Cherry picked commit 3c8c3e9e9b [Link 2] which fixes a leaked file
descriptor.
Link 1: https://github.com/jemalloc/jemalloc/commit/c443b67561891ae68d688daf5f8ce37820cdba2b
Link 2: https://github.com/jemalloc/jemalloc/commit/3c8c3e9e9b59b6e34a222816a05f0a01a68919b3
Gentoo-Bug: https://bugs.gentoo.org/592420
Package-Manager: portage-2.3.2
Diffstat (limited to 'dev-libs/jemalloc')
-rw-r--r-- | dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch | 26 | ||||
-rw-r--r-- | dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch | 58 | ||||
-rw-r--r-- | dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild (renamed from dev-libs/jemalloc/jemalloc-4.2.1.ebuild) | 2 |
3 files changed, 86 insertions, 0 deletions
diff --git a/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch b/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch new file mode 100644 index 000000000000..da9f2d8ad771 --- /dev/null +++ b/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch @@ -0,0 +1,26 @@ +From 3c8c3e9e9b59b6e34a222816a05f0a01a68919b3 Mon Sep 17 00:00:00 2001 +From: Jason Evans <jasone@canonware.com> +Date: Mon, 26 Sep 2016 15:55:40 -0700 +Subject: [PATCH] Close file descriptor after reading + "/proc/sys/vm/overcommit_memory". + +This bug was introduced by c2f970c32b527660a33fa513a76d913c812dcf7c +(Modify pages_map() to support mapping uncommitted virtual memory.). + +This resolves #399. +--- + src/pages.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/pages.c b/src/pages.c +index 2a9b7e3..05b0d69 100644 +--- a/src/pages.c ++++ b/src/pages.c +@@ -219,6 +219,7 @@ os_overcommits_proc(void) + return (false); /* Error. */ + + nread = read(fd, &buf, sizeof(buf)); ++ close(fd); + if (nread < 1) + return (false); /* Error. */ + /* diff --git a/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch b/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch new file mode 100644 index 000000000000..d2b065a3b6e0 --- /dev/null +++ b/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch @@ -0,0 +1,58 @@ +From c443b67561891ae68d688daf5f8ce37820cdba2b Mon Sep 17 00:00:00 2001 +From: Jason Evans <jasone@canonware.com> +Date: Sat, 29 Oct 2016 22:41:04 -0700 +Subject: [PATCH] Use syscall(2) rather than {open,read,close}(2) during boot. + +Some applications wrap various system calls, and if they call the +allocator in their wrappers, unexpected reentry can result. This is not +a general solution (many other syscalls are spread throughout the code), +but this resolves a bootstrapping issue that is apparently common. + +This resolves #443. +--- + src/pages.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/src/pages.c b/src/pages.c +index 05b0d69..84e2216 100644 +--- a/src/pages.c ++++ b/src/pages.c +@@ -207,6 +207,11 @@ os_overcommits_sysctl(void) + #endif + + #ifdef JEMALLOC_PROC_SYS_VM_OVERCOMMIT_MEMORY ++/* ++ * Use syscall(2) rather than {open,read,close}(2) when possible to avoid ++ * reentry during bootstrapping if another library has interposed system call ++ * wrappers. ++ */ + static bool + os_overcommits_proc(void) + { +@@ -214,12 +219,26 @@ os_overcommits_proc(void) + char buf[1]; + ssize_t nread; + ++#ifdef SYS_open ++ fd = (int)syscall(SYS_open, "/proc/sys/vm/overcommit_memory", O_RDONLY); ++#else + fd = open("/proc/sys/vm/overcommit_memory", O_RDONLY); ++#endif + if (fd == -1) + return (false); /* Error. */ + ++#ifdef SYS_read ++ nread = (ssize_t)syscall(SYS_read, fd, &buf, sizeof(buf)); ++#else + nread = read(fd, &buf, sizeof(buf)); ++#endif ++ ++#ifdef SYS_close ++ syscall(SYS_close, fd); ++#else + close(fd); ++#endif ++ + if (nread < 1) + return (false); /* Error. */ + /* diff --git a/dev-libs/jemalloc/jemalloc-4.2.1.ebuild b/dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild index 8c320ea1c37f..c7f3d8aa79e6 100644 --- a/dev-libs/jemalloc/jemalloc-4.2.1.ebuild +++ b/dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild @@ -17,6 +17,8 @@ IUSE="debug static-libs stats" HTML_DOCS=( doc/jemalloc.html ) PATCHES=( "${FILESDIR}/${PN}-3.5.1-strip-optimization.patch" "${FILESDIR}/${PN}-3.5.1_fix_html_install.patch" + "${FILESDIR}/${PN}-4.2-issue_399.patch" + "${FILESDIR}/${PN}-4.2-issue_443.patch" ) MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h ) # autotools-utils.eclass auto-adds configure options when static-libs is in IUSE |