From 6275b13b5cda1cb07970ebf1d915b7f3d42618f1 Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Mon, 6 Mar 2023 11:48:14 -0500 Subject: [PATCH] GP-3167: Properly closing library providers --- .../main/java/ghidra/app/util/opinion/MachoLoader.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoLoader.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoLoader.java index e1ef6c6803..f8abbd751e 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoLoader.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoLoader.java @@ -165,7 +165,13 @@ public class MachoLoader extends AbstractLibrarySupportLoader { for (FatArch architecture : architectures) { ByteProvider bp = new ByteProviderWrapper(provider, architecture.getOffset(), - architecture.getSize()); + architecture.getSize()) { + + @Override // Ensure the parent provider gets closed when the wrapper does + public void close() throws IOException { + super.provider.close(); + } + }; LoadSpec libLoadSpec = matchSupportedLoadSpec(loadSpec, bp); if (libLoadSpec != null) { return bp;