mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-30 10:38:07 -07:00
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>
This commit is contained in:
committed by
Michał Górny
parent
bf5ee725b3
commit
fac747ad89
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user