The 06/13/2023 19:57, Edgecombe, Rick P wrote: > On Tue, 2023-06-13 at 18:57 +0100, Mark Brown wrote: > > > > > For my part, the thing I would really like to see unified as > > > > > much > > as > > > > > possible is at the app developer's interface (glibc/gcc). The > > > > > idea > > > > > would be to make it easy for app developers to know if their > > > > > app > > > > > supports shadow stack. There will probably be some differences, > > > > > but > > it > > > > > would be great if there was mostly the same behavior and a > > > > > small > > list > > > > > of differences. I'm thinking about the behavior of longjmp(), > > > > > swapcontext(), etc. > > > > > > Yes, very much so. sigaltcontext() too. > > For alt shadow stack's, this is what I came up with: > https://lore.kernel.org/lkml/20220929222936.14584-40-rick.p.edgecombe@xxxxxxxxx/ > > Unfortunately it can't work automatically with sigaltstack(). Since it > has to be a new thing anyway, it's been left for the future. I guess > that might have a better chance of being cross arch. i dont think you can add sigaltshstk later. libgcc already has unwinder code for shstk and that cannot handle discontinous shadow stack. (may affect longjmp too depending on how it is implemented) we can change the unwinder now to know how to switch shstk when it unwinds the signal frame and backport that to systems that want to support shstk. or we can introduce a new elf marking scheme just for sigaltshstk when it is added so incompatibility can be detected. or we simply not support unwinding with sigaltshstk which would make it pretty much useless in practice. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.