gecko-dev/mozglue/tests/moz.build
Yannis Juglaret 6a8f812670 Bug 1733532 - Avoid using stack buffers during calls to Thread32Next. r=gstoll
Thread32Next relies on NtMapViewOfSection to map the snapshot that it works with.
We hook NtMapViewOfSection, so calls to Thread32Next reach our patched_NtMapViewOfSection.

With some third-party software, this results in a crash if we use stack buffers (see bug 1733532),
because for some reason the stack cookie check code is not mapped executable. If we can avoid using
stack buffers in that case, then the third-party DLL should get its result from NtMapViewOfSection
without error.

This change thus splits patched_NtMapViewOfSection so that we only use stack buffers when necessary,
i.e. when an executable mapping is asked. Hopefully this can fix bug 1733532.

Differential Revision: https://phabricator.services.mozilla.com/D169450
2023-02-24 15:43:51 +00:00

54 lines
1.2 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DisableStlWrapping()
# Important: for CppUnitTests to be run, they also need to be added
# to testing/cppunittest.ini.
GeckoCppUnitTests(
[
"ShowSSEConfig",
],
linkage=None,
)
CppUnitTests(
[
"TestBaseProfiler",
"TestIntegerPrintfMacros",
"TestPrintf",
]
)
with Files("TestBaseProfiler.cpp"):
BUG_COMPONENT = ("Core", "Gecko Profiler")
if CONFIG["OS_ARCH"] == "WINNT":
GeckoCppUnitTests(
[
"TestNativeNt",
"TestPEExportSection",
"TestStackCookie",
"TestTimeStampWin",
],
linkage=None,
)
OS_LIBS += [
"ntdll",
"version",
]
if CONFIG["OS_TARGET"] == "WINNT" and CONFIG["CC_TYPE"] in ("gcc", "clang"):
# This allows us to use wmain as the entry point on mingw
LDFLAGS += [
"-municode",
]
TEST_DIRS += [
"gtest",
]