Fix preventing memory allocation in signal handler (#16485)
authorJan Vorlicek <janvorli@microsoft.com>
Fri, 23 Feb 2018 09:40:54 +0000 (10:40 +0100)
committerGitHub <noreply@github.com>
Fri, 23 Feb 2018 09:40:54 +0000 (10:40 +0100)
commit1270aa557a1de3e25e8699522ee74e66ce48046a
treebfed5d61579db71a0cb0869250d44c535ce7e631
parent2ddde33b2b46da116b2b36c2e5db640b5d76901f
Fix preventing memory allocation in signal handler (#16485)

There was a subtle bug. When the hardware exception handler returns back
to the signal handler, the exception's CONTEXT record may contain
modified registers and so the changes need to be propagated back to the
signal context. But the recent change #16384 was restoring the signal
context from the originally grabbed context instead of the one that's
pointed to by the exception, which is different.

I have also added a little optimization - the contextRecord that was
added is not needed, since the signalContextRecord can be used as the
initial context record for the exception. So we can save the
contextRecord and also copying to the signalContextRecord from it.
src/pal/src/exception/signal.cpp