From 2afc92b96e84a43b67dd0f29b115d8acf16b53e9 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Thu, 20 Jun 2024 10:09:29 -0400 Subject: [PATCH] Dispose IDisposables in NativePdbWriter - The code creates a local variable that's an IDisposable (CustomMetadataWriter), but doesn't call Dispose() on it. - The CustomMetadataWriter class holds two IDisposables (MemoryStream and BinaryStreamWriter), but was only Dispose()ing one of them. --- symbols/pdb/Mono.Cecil.Pdb/NativePdbWriter.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/symbols/pdb/Mono.Cecil.Pdb/NativePdbWriter.cs b/symbols/pdb/Mono.Cecil.Pdb/NativePdbWriter.cs index 7bb9c6f15..45e9981c9 100644 --- a/symbols/pdb/Mono.Cecil.Pdb/NativePdbWriter.cs +++ b/symbols/pdb/Mono.Cecil.Pdb/NativePdbWriter.cs @@ -75,7 +75,7 @@ public void Write (MethodDebugInformation info) void DefineCustomMetadata (MethodDebugInformation info, MetadataToken import_parent) { - var metadata = new CustomMetadataWriter (this.writer); + using var metadata = new CustomMetadataWriter (this.writer); if (import_parent.RID != 0) { metadata.WriteForwardInfo (import_parent); @@ -367,6 +367,7 @@ public void WriteCustomMetadata () public void Dispose () { stream.Dispose (); + writer.Dispose (); } } }