From 592436ae34c81b690eb165da3fde6f5e5ed946c6 Mon Sep 17 00:00:00 2001 From: Everton Fernando Patitucci da Silva Date: Sun, 15 Sep 2019 11:01:39 -0400 Subject: [PATCH] PDB: Fix IDiaSectionContrib leak --- Ghidra/Features/PDB/src/pdb/cpp/iterate.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Ghidra/Features/PDB/src/pdb/cpp/iterate.cpp b/Ghidra/Features/PDB/src/pdb/cpp/iterate.cpp index 248996e62d..4d6399f96b 100644 --- a/Ghidra/Features/PDB/src/pdb/cpp/iterate.cpp +++ b/Ghidra/Features/PDB/src/pdb/cpp/iterate.cpp @@ -434,16 +434,17 @@ void iterateSegments(IDiaEnumSegments * pSegments) { */ void iterateSections(PDBApiContext& ctx, IDiaEnumSectionContribs& secContribs) { DWORD celt = 0; - CComPtr pSym ; - CComPtr pSecContrib; while ( 1 ) { + CComPtr pSecContrib; if (secContribs.Next( 1, &pSecContrib, &celt ) != S_OK ) { break; } if (celt != 1) { break; } + + CComPtr pSym; DWORD rva = 0; if (pSecContrib->get_relativeVirtualAddress( &rva ) == S_OK) { if (ctx.Session().findSymbolByRVA( rva, SymTagNull, &pSym ) != S_OK ) {