* exceptions.cc (exception::myfault_handle): Only handle the minimum

amount of exceptions the myfault handler was designed for.
This commit is contained in:
Corinna Vinschen 2014-04-09 19:20:01 +00:00
parent 236f226893
commit 09a7cdcc4b
2 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-04-09 Corinna Vinschen <corinna@vinschen.de>
* exceptions.cc (exception::myfault_handle): Only handle the minimum
amount of exceptions the myfault handler was designed for.
2014-04-08 Corinna Vinschen <corinna@vinschen.de>
* cygwin.sc.in: (Temporarily?) workaround serious ld bug which

View File

@ -555,7 +555,20 @@ exception::myfault_handle (LPEXCEPTION_POINTERS ep)
_cygtls& me = _my_tls;
if (me.andreas)
me.andreas->leave (); /* Return from a "san" caught fault */
{
/* Only handle the minimum amount of exceptions the myfault handler
was designed for. */
switch (ep->ExceptionRecord->ExceptionCode)
{
case STATUS_ACCESS_VIOLATION:
case STATUS_DATATYPE_MISALIGNMENT:
case STATUS_STACK_OVERFLOW:
case STATUS_ARRAY_BOUNDS_EXCEEDED:
me.andreas->leave (); /* Return from a "san" caught fault */
default:
break;
}
}
return EXCEPTION_CONTINUE_SEARCH;
}
#endif /* __x86_64 */