From 508c7066a66145019d798a696fde9489dc849322 Mon Sep 17 00:00:00 2001 From: Sandboxed API Team Date: Mon, 22 Feb 2021 06:01:48 -0800 Subject: [PATCH] asan uses mmap() internally, so allow mmap() calls in asan builds PiperOrigin-RevId: 358802336 Change-Id: I26fa891cc9fffcfd32f6b18a63b39d6f2282ff7d --- sandboxed_api/sandbox2/policybuilder.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sandboxed_api/sandbox2/policybuilder.cc b/sandboxed_api/sandbox2/policybuilder.cc index b65fb6f..ce4734e 100644 --- a/sandboxed_api/sandbox2/policybuilder.cc +++ b/sandboxed_api/sandbox2/policybuilder.cc @@ -205,6 +205,10 @@ PolicyBuilder& PolicyBuilder::AllowLlvmSanitizers() { } if constexpr (sapi::sanitizers::IsASan()) { AllowSyscall(__NR_sigaltstack); + // asan uses a custom allocator that runs mmap under the hood. For example: + // https://github.com/llvm/llvm-project/blob/596d534ac3524052df210be8d3c01a33b2260a42/compiler-rt/lib/asan/asan_allocator.cpp#L980 + // https://github.com/llvm/llvm-project/blob/62ec4ac90738a5f2d209ed28c822223e58aaaeb7/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h#L98 + AllowMmap(); } return *this; }