[PATCH] D136667: Check return address stored in normal stack and CET shadow stack in unwind process phase2

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 31 14:20:34 PDT 2022


MaskRay added a comment.

Is this check a libgcc behavior? Is it intended for just C++ exceptions (regular phase2) or also for `_Unwind_ForcedUnwind`?

For C++ exceptions `exception_object->exception_class != 0` is always true while for `_Unwind_ForcedUnwind` `exception_class` is typically zero, so I am not sure having the code in `unwind_phase2_forced` is useful...



================
Comment at: libunwind/src/UnwindLevel1.c:318
   unsigned framesWalked = 1;
+#if defined(_LIBUNWIND_USE_CET)
+  unsigned long shadowStackTop = _get_ssp();
----------------
`#ifdef`


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136667/new/

https://reviews.llvm.org/D136667



More information about the llvm-commits mailing list