[runtime] Fix a case where crash chaining was broken (#37261)
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 2 Jun 2020 18:27:32 +0000 (14:27 -0400)
committerGitHub <noreply@github.com>
Tue, 2 Jun 2020 18:27:32 +0000 (14:27 -0400)
We must always have a call to mono_chain_signal() after mono_handle_native_crash(), in case signal chaining and crash chaining are both enabled.

src/mono/mono/mini/mini-runtime.c

index ca2a59c..5401644 100644 (file)
@@ -3605,6 +3605,10 @@ MONO_SIG_HANDLER_FUNC (, mono_sigsegv_signal_handler)
        } else {
                if (mono_dump_start ())
                        mono_handle_native_crash (mono_get_signame (SIGSEGV), &mctx, (MONO_SIG_HANDLER_INFO_TYPE*)info);
+               if (mono_do_crash_chaining) {
+                       mono_chain_signal (MONO_SIG_HANDLER_PARAMS);
+                       return;
+               }
        }
 #endif
 }