[compiler-rt] dc4d9d6 - [msan] Release origin pages with shadow

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 22 17:07:25 PDT 2023


Author: Vitaly Buka
Date: 2023-06-22T17:07:02-07:00
New Revision: dc4d9d615f96338ece28bf66f5839db7352f0859

URL: https://github.com/llvm/llvm-project/commit/dc4d9d615f96338ece28bf66f5839db7352f0859
DIFF: https://github.com/llvm/llvm-project/commit/dc4d9d615f96338ece28bf66f5839db7352f0859.diff

LOG: [msan] Release origin pages with shadow

Added: 
    

Modified: 
    compiler-rt/lib/msan/msan_poisoning.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/msan/msan_poisoning.cpp b/compiler-rt/lib/msan/msan_poisoning.cpp
index af01aa69f78f6..1889e980bfc0e 100644
--- a/compiler-rt/lib/msan/msan_poisoning.cpp
+++ b/compiler-rt/lib/msan/msan_poisoning.cpp
@@ -216,6 +216,13 @@ void SetShadow(const void *ptr, uptr size, u8 value) {
       }
       if (!MmapFixedSuperNoReserve(page_beg, page_end - page_beg))
         Die();
+
+      if (__msan_get_track_origins()) {
+        // No need to set origin for zero shadow, but we can release pages.
+        uptr origin_beg = RoundUpTo(MEM_TO_ORIGIN(ptr), PageSize);
+        if (!MmapFixedSuperNoReserve(origin_beg, page_end - page_beg))
+          Die();
+      }
     }
   }
 }


        


More information about the llvm-commits mailing list