From b5749104908b85d6058821fa0a6a9f7297e6a8d9 Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Mon, 20 Apr 2020 18:27:43 -0700 Subject: [PATCH] Add missing call to `Symbolizer::LateInitialize()` in UBSan's standalone init. Summary: This fixes symbolization in Standalone UBSan mode for the Darwin simulators. 861b69faee5df8d4e13ef316c7474a10e4069e81 (rdar://problem/58789439) tried to fix symbolization for all sanitizers on Darwin simulators but unfortunately it only fixed the problem for TSan. For UBSan in standalone mode the fix wasn't sufficient because UBSan's standalone init doesn't call `Symbolizer::LateInitialize()` like ASan and TSan do. This meant that `AtosSymbolizerProcess::LateInitialize()` was never being called before `AtosSymbolizerProcess::StartSymbolizerSubprocess()` which breaks an invariant we expect to hold. The missing call to `Symbolizer::LateInitialize()` during UBSan's standalone init seems like an accidently omission so this patch simply adds it. rdar://problem/62083617 Reviewers: vitalybuka, kubamracek, yln, samsonov Subscribers: #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D78530 (cherry picked from commit 564530e50ad4870801a2080a08645cc1cc2df805) --- compiler-rt/lib/ubsan/ubsan_init.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler-rt/lib/ubsan/ubsan_init.cpp b/compiler-rt/lib/ubsan/ubsan_init.cpp index 1a3b7d3726743..26b6227aa484b 100644 --- a/compiler-rt/lib/ubsan/ubsan_init.cpp +++ b/compiler-rt/lib/ubsan/ubsan_init.cpp @@ -41,6 +41,7 @@ static void CommonStandaloneInit() { AndroidLogInit(); InitializeCoverage(common_flags()->coverage, common_flags()->coverage_dir); CommonInit(); + Symbolizer::LateInitialize(); } void __ubsan::InitAsStandalone() {