[corlib]: Fix race condition in ExceptionDispatchInfo. (#5279)
authorMartin Baulig <mabaul@microsoft.com>
Mon, 31 Jul 2017 17:01:41 +0000 (13:01 -0400)
committerGitHub <noreply@github.com>
Mon, 31 Jul 2017 17:01:41 +0000 (13:01 -0400)
mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs

index 77ffc4c02c8eb4d3574dceafad466db792dd28ed..7d31bda158c8478b08750514dc6aad113f499e43 100644 (file)
@@ -47,10 +47,11 @@ namespace System.Runtime.ExceptionServices {
             // Copy over the details we need to save.
             m_Exception = exception;
 #if MONO
-                       var count = exception.captured_traces == null ? 0 : exception.captured_traces.Length;
+                       var traces = exception.captured_traces;
+                       var count = traces == null ? 0 : traces.Length;
                        var stack_traces = new System.Diagnostics.StackTrace [count + 1];
                        if (count != 0)
-                               Array.Copy (exception.captured_traces, 0, stack_traces, 0, count);
+                               Array.Copy (traces, 0, stack_traces, 0, count);
 
                        stack_traces [count] = new System.Diagnostics.StackTrace (exception, 0, true);
                        m_stackTrace = stack_traces;