Fix chained hardware exception handling on Unix (#12316)
authorJan Vorlicek <janvorli@microsoft.com>
Fri, 16 Jun 2017 11:23:34 +0000 (13:23 +0200)
committerGitHub <noreply@github.com>
Fri, 16 Jun 2017 11:23:34 +0000 (13:23 +0200)
commitb594d588bc8a7778c30cf0445599ce97cc2edac9
tree80eca90a5f4e5484b4fedefb3597148b804c0813
parent23cbc3e9a2d8b0602a8e154b15b2a11ced71c17f
Fix chained hardware exception handling on Unix (#12316)

There is an issue when hardware exception occurs while handling another hardware exception. In such case,
the exception unwinding ends up in an infinite loop. It is caused by the kernel reusing the same location
for signal handler context.

The fix is to use the windows style context local variable in the common_signal_handler that contains
the right context - it is the original signal context converted to windows style context.
src/pal/src/exception/seh-unwind.cpp
src/pal/src/exception/signal.cpp