2010-03-24 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Wed, 24 Mar 2010 20:53:15 +0000 (20:53 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Wed, 24 Mar 2010 20:53:15 +0000 (20:53 -0000)
* mini-exceptions.c (get_exception_catch_class): Non catch
clausesdon't have an exception class, so don't decode it. This would
crash with filter clauses.

svn path=/trunk/mono/; revision=154172

mono/mini/ChangeLog
mono/mini/mini-exceptions.c

index e1cd56623ffc2503f1c2c3311a3800dcd356e45c..15ea4ec4fc7aa5b7535e6efea6cceef8f2cb9eef 100755 (executable)
@@ -1,3 +1,9 @@
+2010-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-exceptions.c (get_exception_catch_class): Non catch clauses
+       don't have an exception class, so don't decode it. This would crash
+       with filter clauses.
+
 2010-03-24  U-anarquia\miguel  <miguel@anarquia>
 
        Make sure that trunk builds with DISABLE_JIT, an update to the
index ae29d7783f5b802836f296fda94fcfe87df56e8b..3ff5faa1306b27d1abeb8d2e5a0743697f7046ec 100644 (file)
@@ -1073,7 +1073,8 @@ get_exception_catch_class (MonoJitExceptionInfo *ei, MonoJitInfo *ji, MonoContex
        MonoType *inflated_type;
        MonoGenericContext context;
 
-       if (!catch_class)
+       /*MonoJitExceptionInfo::data is an union used by filter and finally clauses too.*/
+       if (!catch_class || ei->flags != MONO_EXCEPTION_CLAUSE_NONE)
                return NULL;
 
        if (!ji->has_generic_jit_info || !mono_jit_info_get_generic_jit_info (ji)->has_this)