[compiler-rt] 5e691a1 - [scudo] Fix MallocIterateBoundary on 32 bit.

Christopher Ferris via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 12 21:51:53 PDT 2023


Author: Christopher Ferris
Date: 2023-06-12T21:51:41-07:00
New Revision: 5e691a1c9b0ad22689d4a434ddf4fed940e58dec

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

LOG: [scudo] Fix MallocIterateBoundary on 32 bit.

On Android, the 32 bit value of 8 for BlockDelta results in a
failure because a valid pointer can never be found.

Change the code to always use 16 which passes on both 32 bit
and 64 bit.

Verified that re-introducing the old bug causes the test to fail
on both 32 bit and 64 with the new BlockDelta value.

Reviewed By: Chia-hungDuan

Differential Revision: https://reviews.llvm.org/D152767

Added: 
    

Modified: 
    compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp b/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
index 05d1d4826bd55..26bab8d984fd7 100644
--- a/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
+++ b/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
@@ -333,7 +333,7 @@ static void callback(uintptr_t Base, size_t Size, void *Arg) {
 // block is a boundary for. It must only be seen once by the callback function.
 TEST(ScudoWrappersCTest, MallocIterateBoundary) {
   const size_t PageSize = sysconf(_SC_PAGESIZE);
-  const size_t BlockDelta = FIRST_32_SECOND_64(8U, 16U);
+  const size_t BlockDelta = 16U;
   const size_t SpecialSize = PageSize - BlockDelta;
 
   // We aren't guaranteed that any size class is exactly a page wide. So we need


        


More information about the llvm-commits mailing list