大多数成熟的编译器似乎都对堆栈变量修饰符有很好的支持。
对于clang,我发现了-fsanitize=safe-stack,但是它不支持共享库,这对我来说几乎没有用。
看来消毒剂是作为附加组件实现的?是否有人知道clang是否具有不受共享库限制的任何替代(内置?)反堆栈粉碎支持,或者是否计划推广现有的有限安全堆栈实现以赶上所有其他编译器?
最佳答案
clang支持gcc的-fstack-protector
选项:
:: clang --help | grep stack-protector
-fno-stack-protector Disable the use of stack protectors
-fstack-protector-all Force the usage of stack protectors for all functions
-fstack-protector-strong
-fstack-protector Enable stack protectors for functions potentially vulnerable to stack smashing
我相信它遵循GCC在这里所做的。
关于clang - clang编译器中的堆栈保护等效项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39371514/