summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Levine <plevine457@gmail.com>2019-06-16 19:55:31 -0400
committerMichał Górny <mgorny@gentoo.org>2019-06-17 08:25:05 +0200
commitfac747ad8938ce04897dfe1d188260f42ce8b6cb (patch)
treec59b5e1bbb9153d6a17943504b437ab7d02e1823 /dev-cpp
parentdev-ruby/rmagick: install docs in correct location (diff)
downloadgentoo-fac747ad8938ce04897dfe1d188260f42ce8b6cb.tar.gz
gentoo-fac747ad8938ce04897dfe1d188260f42ce8b6cb.tar.bz2
gentoo-fac747ad8938ce04897dfe1d188260f42ce8b6cb.zip
dev-cpp/gtest: Fix segfault in googletest-death-test
Fixes call to mmap to include MAP_GROWSDOWN flag for stack auto-resizing. Reported-by: tka <tka@kamph.org> Tested-by: Arfrever Frehtes Taifersar Arahesis <arfrever.fta@gmail.com> Closes: https://bugs.gentoo.org/688162 Closes: https://github.com/gentoo/gentoo/pull/12271 Package-Manager: Portage-2.3.67, Repoman-2.3.14 Signed-off-by: Peter Levine <plevine457@gmail.com> Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-cpp')
-rw-r--r--dev-cpp/gtest/files/gtest-1.9.0_pre20190607-add-mmap-stack-flag.patch15
-rw-r--r--dev-cpp/gtest/files/gtest-9999-increase-clone-stack-size.patch14
-rw-r--r--dev-cpp/gtest/gtest-1.7.0-r1.ebuild2
-rw-r--r--dev-cpp/gtest/gtest-1.8.0-r1.ebuild2
-rw-r--r--dev-cpp/gtest/gtest-1.8.0.ebuild2
-rw-r--r--dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild2
-rw-r--r--dev-cpp/gtest/gtest-9999.ebuild2
7 files changed, 20 insertions, 19 deletions
diff --git a/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-add-mmap-stack-flag.patch b/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-add-mmap-stack-flag.patch
new file mode 100644
index 000000000000..9a840aa58766
--- /dev/null
+++ b/dev-cpp/gtest/files/gtest-1.9.0_pre20190607-add-mmap-stack-flag.patch
@@ -0,0 +1,15 @@
+Bug: https://bugs.gentoo.org/688162
+Upstream PR: https://github.com/google/googletest/pull/2276
+
+--- a/googletest/src/gtest-death-test.cc
++++ b/googletest/src/gtest-death-test.cc
+@@ -1357,6 +1357,9 @@ static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
+ const auto stack_size = static_cast<size_t>(getpagesize());
+ // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
+ void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE,
++# if GTEST_OS_LINUX
++ (stack_grows_down ? MAP_GROWSDOWN : 0) | // Needed for stack auto-resizing
++# endif
+ MAP_ANON | MAP_PRIVATE, -1, 0);
+ GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED);
+
diff --git a/dev-cpp/gtest/files/gtest-9999-increase-clone-stack-size.patch b/dev-cpp/gtest/files/gtest-9999-increase-clone-stack-size.patch
deleted file mode 100644
index 5e4dc47f704e..000000000000
--- a/dev-cpp/gtest/files/gtest-9999-increase-clone-stack-size.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Bug: https://bugs.gentoo.org/629620
-Upstream PR: https://github.com/google/googletest/pull/2276
-
---- a/googletest/src/gtest-death-test.cc
-+++ b/googletest/src/gtest-death-test.cc
-@@ -1354,7 +1354,7 @@
-
- if (!use_fork) {
- static const bool stack_grows_down = StackGrowsDown();
-- const auto stack_size = static_cast<size_t>(getpagesize());
-+ const auto stack_size = static_cast<size_t>(getpagesize() * 8);
- // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
- void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE,
- MAP_ANON | MAP_PRIVATE, -1, 0);
diff --git a/dev-cpp/gtest/gtest-1.7.0-r1.ebuild b/dev-cpp/gtest/gtest-1.7.0-r1.ebuild
index f1185b2db0cc..360809f62e74 100644
--- a/dev-cpp/gtest/gtest-1.7.0-r1.ebuild
+++ b/dev-cpp/gtest/gtest-1.7.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
diff --git a/dev-cpp/gtest/gtest-1.8.0-r1.ebuild b/dev-cpp/gtest/gtest-1.8.0-r1.ebuild
index 18d837c58fcd..0e0934020cdb 100644
--- a/dev-cpp/gtest/gtest-1.8.0-r1.ebuild
+++ b/dev-cpp/gtest/gtest-1.8.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
diff --git a/dev-cpp/gtest/gtest-1.8.0.ebuild b/dev-cpp/gtest/gtest-1.8.0.ebuild
index a2fc61eb5c4f..da82dca28b27 100644
--- a/dev-cpp/gtest/gtest-1.8.0.ebuild
+++ b/dev-cpp/gtest/gtest-1.8.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
diff --git a/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild b/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild
index 1ff88fb723ff..9fc545d7fd83 100644
--- a/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild
+++ b/dev-cpp/gtest/gtest-1.9.0_pre20190607.ebuild
@@ -35,7 +35,7 @@ DEPEND="test? ( ${PYTHON_DEPS} )"
RDEPEND="!dev-cpp/gmock"
PATCHES=(
- "${FILESDIR}"/${PN}-9999-increase-clone-stack-size.patch
+ "${FILESDIR}"/${PN}-1.9.0_pre20190607-add-mmap-stack-flag.patch
)
pkg_setup() {
diff --git a/dev-cpp/gtest/gtest-9999.ebuild b/dev-cpp/gtest/gtest-9999.ebuild
index 685acf50cd67..bd677dc0bd1d 100644
--- a/dev-cpp/gtest/gtest-9999.ebuild
+++ b/dev-cpp/gtest/gtest-9999.ebuild
@@ -33,7 +33,7 @@ DEPEND="test? ( ${PYTHON_DEPS} )"
RDEPEND="!dev-cpp/gmock"
PATCHES=(
- "${FILESDIR}"/${PN}-9999-increase-clone-stack-size.patch
+ "${FILESDIR}"/${PN}-1.9.0_pre20190607-add-mmap-stack-flag.patch
)
pkg_setup() {