From 7ed10800fe6b0f5e85ae1492d3a440f8668e0103 Mon Sep 17 00:00:00 2001 From: Loris Reiff Date: Tue, 4 Jun 2024 06:06:09 -0700 Subject: [PATCH] Allow syscalls relevant for dynamic startup when sanitizers are used Static linking with sanitizers is not possible on ELF platforms. PiperOrigin-RevId: 640128022 Change-Id: I3cfdb0737b12803c9682a0994bf0fce272929652 --- 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 058f3b29..8e187819 100644 --- a/sandboxed_api/sandbox2/policybuilder.cc +++ b/sandboxed_api/sandbox2/policybuilder.cc @@ -389,6 +389,10 @@ PolicyBuilder& PolicyBuilder::AllowLlvmSanitizers() { // https://github.com/llvm/llvm-project/blob/9aa39481d9eb718e872993791547053a3c1f16d5/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp#L150 // https://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/pthread_getattr_np.c;h=de7edfa0928224eb8375e2fe894d6677570fbb3b;hb=HEAD#l188 AllowSyscall(__NR_sched_getaffinity); + // https://github.com/llvm/llvm-project/blob/3cabbf60393cc8d55fe635e35e89e5973162de33/compiler-rt/lib/interception/interception.h#L352 +#ifdef __ELF__ + AllowDynamicStartup(); +#endif // https://github.com/llvm/llvm-project/blob/02c2b472b510ff55679844c087b66e7837e13dc2/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp#L434 #ifdef __NR_readlink OverridableBlockSyscallWithErrno(__NR_readlink, ENOENT);