From 2f5ed83b99cf2b3cf35a09669aab32191dd285aa Mon Sep 17 00:00:00 2001 From: Brian Robbins Date: Fri, 29 Aug 2025 11:32:45 -0700 Subject: [PATCH 1/2] Only dispose non-null handles in ETWTraceEventSource. --- src/TraceEvent/ETWTraceEventSource.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TraceEvent/ETWTraceEventSource.cs b/src/TraceEvent/ETWTraceEventSource.cs index 5fa723796..04e8e839a 100644 --- a/src/TraceEvent/ETWTraceEventSource.cs +++ b/src/TraceEvent/ETWTraceEventSource.cs @@ -879,7 +879,7 @@ protected override void Dispose(bool disposing) { foreach (TraceEventNativeMethods.SafeTraceHandle handle in handles) { - handle.Dispose(); + handle?.Dispose(); } handles = null; From e3ddb58a701ea6d039c2a09c0520035d4b2ab0e4 Mon Sep 17 00:00:00 2001 From: Brian Robbins Date: Fri, 29 Aug 2025 12:34:45 -0700 Subject: [PATCH 2/2] Also check if the handle is valid before disposing it. --- src/TraceEvent/ETWTraceEventSource.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/TraceEvent/ETWTraceEventSource.cs b/src/TraceEvent/ETWTraceEventSource.cs index 04e8e839a..710805364 100644 --- a/src/TraceEvent/ETWTraceEventSource.cs +++ b/src/TraceEvent/ETWTraceEventSource.cs @@ -879,7 +879,10 @@ protected override void Dispose(bool disposing) { foreach (TraceEventNativeMethods.SafeTraceHandle handle in handles) { - handle?.Dispose(); + if(handle != null && handle.IsValid) + { + handle.Dispose(); + } } handles = null;