diff --git a/compiler-rt/lib/asan/asan_poisoning.cpp b/compiler-rt/lib/asan/asan_poisoning.cpp --- a/compiler-rt/lib/asan/asan_poisoning.cpp +++ b/compiler-rt/lib/asan/asan_poisoning.cpp @@ -66,6 +66,12 @@ // Since asan's mapping is compacting, the shadow chunk may be // not page-aligned, so we only flush the page-aligned portion. ReleaseMemoryPagesToOS(MemToShadow(p), MemToShadow(p + size)); + +#if SANITIZER_FUCHSIA + // In Fuchsia ReleaseMemoryPagesToOS is a no-op. __sanitizer_fill_shadow + // With a 0 value and a 0 threshold will decommit the shadow pages. + __sanitizer_fill_shadow(p, size, 0, 0); +#endif } void AsanPoisonOrUnpoisonIntraObjectRedzone(uptr ptr, uptr size, bool poison) {