[release/6.0] Adding null check to avoid abort when invalid IL is encountered (#57731)
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Thu, 19 Aug 2021 17:02:58 +0000 (19:02 +0200)
committerGitHub <noreply@github.com>
Thu, 19 Aug 2021 17:02:58 +0000 (19:02 +0200)
When a callvirt instruction is encountered on a static method, there is
a hard abort/crash. This commit avoids the problem.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bill Holmes <bill.holmes@unity3d.com>
src/mono/mono/mini/method-to-ir.c

index 5b607e5..5d17be0 100644 (file)
@@ -7314,7 +7314,7 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 
                        sp -= n;
 
-                       if (virtual_ && cmethod && sp [0]->opcode == OP_TYPED_OBJREF) {
+                       if (virtual_ && cmethod && sp [0] && sp [0]->opcode == OP_TYPED_OBJREF) {
                                ERROR_DECL (error);
 
                                MonoMethod *new_cmethod = mono_class_get_virtual_method (sp [0]->klass, cmethod, error);