Module: wine Branch: master Commit: 856f0f9d13af93d2d0b1d36fcf3f8dc976a4f4f8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=856f0f9d13af93d2d0b1d36fcf... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Fri Mar 18 12:40:25 2016 +0100 msvcrt: Handle non c++ exceptions in __DestructExceptionObject. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcrt/except.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/msvcrt/except.c b/dlls/msvcrt/except.c index 09f42f0..fc0e36e 100644 --- a/dlls/msvcrt/except.c +++ b/dlls/msvcrt/except.c @@ -400,6 +400,15 @@ void CDECL __DestructExceptionObject(EXCEPTION_RECORD *rec) TRACE("(%p)\n", rec); + if (rec->ExceptionCode != CXX_EXCEPTION) return; +#ifndef __x86_64__ + if (rec->NumberParameters != 3) return; +#else + if (rec->NumberParameters != 4) return; +#endif + if (rec->ExceptionInformation[0] < CXX_FRAME_MAGIC_VC6 || + rec->ExceptionInformation[0] > CXX_FRAME_MAGIC_VC8) return; + if (!info || !info->destructor) return;