[compiler-rt] Poison last word of FakeFrame (PR #133689)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 6 19:56:01 PDT 2025


================
@@ -107,7 +107,12 @@ FakeFrame *FakeStack::Allocate(uptr stack_size_log, uptr class_id,
     FakeFrame *res = reinterpret_cast<FakeFrame *>(
         GetFrame(stack_size_log, class_id, pos));
     res->real_stack = real_stack;
-    *SavedFlagPtr(reinterpret_cast<uptr>(res), class_id) = &flags[pos];
+    u8 **saved_flag_ptr = SavedFlagPtr(reinterpret_cast<uptr>(res), class_id);
+    *saved_flag_ptr = &flags[pos];
+
+    // Poison the last word of FakeFrame
+    u8 *shadow = reinterpret_cast<u8*>(MemToShadow(reinterpret_cast<uptr>(saved_flag_ptr)));
----------------
vitalybuka wrote:

do we know if saved_flag_ptr is granule aligned?

https://github.com/llvm/llvm-project/pull/133689


More information about the llvm-commits mailing list