Hi. On 9/6/19 4:46 PM, Matthew Malcomson wrote: > Ensuring that the shadow stack is cleared on normal function exit will > be done by adding instrumentation to the function epilogue through the > compiler. > longjmp and setjmp are some abnormal methods of exiting the function > that can't be handled in the compiler since they can be called in > uninstrumented code to unwind past instrumented function frames.
I'm curious why you are adding a new code that is not part of libsanitizer runtime? Does it mean the current LLVM implementation does not properly handle setjmp and longjmp? Note that rule of thumb is that we need to upstream all libsanitizer changes before we merge libsanitizer. We are doing that in order to not have a bug difference against upstream libsanitizer. Martin