Module: wine Branch: master Commit: 856f0f9d13af93d2d0b1d36fcf3f8dc976a4f4f8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=856f0f9d13af93d2d0b1d36fcf...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Mar 18 12:40:25 2016 +0100
msvcrt: Handle non c++ exceptions in __DestructExceptionObject.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;