Conversation

Replying to and
It's hard to grade fortify support since it can only work for statically sized buffers and avoids checks in cases where the compiler can see it never overflows. Some implementations primarily (or only) use inline checks and won't be detected. Some also cover more libc functions.
1
1
Replying to and
There's also SafeStack but the LLVM implementation is a bit half-baked and there isn't production integration into the runtime for Linux. Android ended up using ShadowCallStack instead due to SafeStack limitations / issues. Could still detect it being used though.
1
1
Also worth noting that stack canaries can still be used alongside either of those. ShadowCallStack just protects return addresses and SafeStack tries to put anything that cannot have overflows (no references to it) on a separate safe stack so unsafe stack can still have canaries.
1
1