msvcrt: Handle non c++ exceptions in __DestructExceptionObject.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
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 @@
 
     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;