Re: [PATCH] msvcrt: Handle synchronous flag for x64 C++ exceptions
21 Apr
2017
21 Apr
'17
1:33 p.m.
Hi, On 04/20/17 16:42, Daniel Lehman wrote:
+ if (descr->magic >= CXX_FRAME_MAGIC_VC8 && + (descr->flags & FUNC_DESCR_SYNCHRONOUS) && + (rec->ExceptionCode != CXX_EXCEPTION && rec->ExceptionCode != STATUS_UNWIND_CONSOLIDATE)) + return ExceptionContinueSearch; /* handle only c++ exceptions */ I think the condition for STATUS_UNWIND_CONSOLIDATE should also check number of parameters and ExceptionInformation[0]==(ULONG_PTR)call_catch_block like it's done during unwinding.
Also the code breaks unwinding for longjump when FUNC_DESCR_SYNCHRONOUS flag is set. Thanks, Piotr
3159
Age (days ago)
3159
Last active (days ago)
0 comments
1 participants
participants (1)
-
Piotr Caban