[interp] throw NRE in mint_strlen
authorBernhard Urban <bernhard.urban@xamarin.com>
Sun, 26 Mar 2017 02:06:09 +0000 (22:06 -0400)
committerBernhard Urban <bernhard.urban@xamarin.com>
Sun, 26 Mar 2017 10:12:31 +0000 (06:12 -0400)
mono/mini/interp/interp.c
mono/tests/Makefile.am

index ef55ca088195ffa2f86979ee9b53190181ca5882..668a945464153bac7b3d5e331c68147b4a9c030e 100644 (file)
@@ -3290,7 +3290,10 @@ array_constructed:
                }
                MINT_IN_CASE(MINT_STRLEN)
                        ++ip;
-                       sp [-1].data.i = mono_string_length ((MonoString*)sp [-1].data.p);
+                       o = sp [-1].data.p;
+                       if (!o)
+                               THROW_EX (mono_get_exception_null_reference (), ip);
+                       sp [-1].data.i = mono_string_length ((MonoString*) o);
                        MINT_IN_BREAK;
                MINT_IN_CASE(MINT_ARRAY_RANK)
                        o = sp [-1].data.p;
index 228bfd4d915b944b077de44c1340164f80c4984e..db5399099ab0b793e3ecfb9950a56b666000e707 100644 (file)
@@ -952,7 +952,6 @@ INTERP_DISABLED_TESTS = \
        bug-544446.exe \
        bug-685908.exe \
        bug-70561.exe \
-       bug-78549.exe \
        bug-80307.exe \
        bug-80392.2.exe \
        bug-81673.exe \