[mini] Fail methods that try to throw scalars. Fix hard crash from #42417. (#3312)
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 21 Jul 2016 17:48:34 +0000 (10:48 -0700)
committerZoltan Varga <vargaz@gmail.com>
Thu, 21 Jul 2016 17:48:34 +0000 (13:48 -0400)
mono/mini/method-to-ir.c

index c7ca275b134fe12dccc3803d1958b81a1bad99b7..386a319cc50234118d4e32d940a370c1d0833609 100644 (file)
@@ -12283,6 +12283,9 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                }
                case CEE_THROW:
                        CHECK_STACK (1);
+                       if (sp [-1]->type != STACK_OBJ)
+                               UNVERIFIED;
+
                        MONO_INST_NEW (cfg, ins, OP_THROW);
                        --sp;
                        ins->sreg1 = sp [0]->dreg;