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:
Peter Levine
2019-06-16 19:55:31 -04:00
committed by Michał Górny
parent bf5ee725b3
commit fac747ad89
7 changed files with 20 additions and 19 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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() {

View File

@@ -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() {