diff --git a/compiler-rt/lib/scudo/standalone/combined.h b/compiler-rt/lib/scudo/standalone/combined.h --- a/compiler-rt/lib/scudo/standalone/combined.h +++ b/compiler-rt/lib/scudo/standalone/combined.h @@ -215,6 +215,7 @@ void unmapTestOnly() { TSDRegistry.unmapTestOnly(); Primary.unmapTestOnly(); + Secondary.unmapTestOnly(); #ifdef GWP_ASAN_HOOKS if (getFlags()->GWP_ASAN_InstallSignalHandlers) gwp_asan::segv_handler::uninstallSignalHandlers(); diff --git a/compiler-rt/lib/scudo/standalone/secondary.h b/compiler-rt/lib/scudo/standalone/secondary.h --- a/compiler-rt/lib/scudo/standalone/secondary.h +++ b/compiler-rt/lib/scudo/standalone/secondary.h @@ -83,6 +83,7 @@ void enable() {} void releaseToOS() {} void disableMemoryTagging() {} + void unmapTestOnly() {} bool setOption(Option O, UNUSED sptr Value) { if (O == Option::ReleaseInterval || O == Option::MaxCacheEntriesCount || O == Option::MaxCacheEntrySize) @@ -326,6 +327,8 @@ void enable() { Mutex.unlock(); } + void unmapTestOnly() { empty(); } + private: void empty() { struct { @@ -456,6 +459,8 @@ void disableMemoryTagging() { Cache.disableMemoryTagging(); } + void unmapTestOnly() { Cache.unmapTestOnly(); } + private: typename Config::SecondaryCache Cache; diff --git a/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp b/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp --- a/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp +++ b/compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp @@ -67,6 +67,7 @@ scudo::ScopedString Str(1024); L->getStats(&Str); Str.output(); + L->unmapTestOnly(); } struct NoCacheConfig { @@ -124,6 +125,7 @@ scudo::ScopedString Str(1024); L->getStats(&Str); Str.output(); + L->unmapTestOnly(); } TEST(ScudoSecondaryTest, SecondaryIterate) { @@ -147,6 +149,7 @@ scudo::ScopedString Str(1024); L->getStats(&Str); Str.output(); + L->unmapTestOnly(); } TEST(ScudoSecondaryTest, SecondaryOptions) { @@ -170,6 +173,7 @@ EXPECT_TRUE(L->setOption(scudo::Option::MaxCacheEntrySize, 1UL << 20)); EXPECT_TRUE(L->canCache(1UL << 16)); } + L->unmapTestOnly(); } static std::mutex Mutex; @@ -216,4 +220,5 @@ scudo::ScopedString Str(1024); L->getStats(&Str); Str.output(); + L->unmapTestOnly(); }