From b43e4c981e41f26726fe214cacde7d7ec5738907 Mon Sep 17 00:00:00 2001 From: Michael Stamper Date: Mon, 14 Sep 2020 20:48:06 +0100 Subject: [PATCH] [KDBG] Fixed handle leak in KdbpSymLoadModuleSymbols() when RosSymCreateFromFile() fails (#3184) --- ntoskrnl/kdbg/kdb_symbols.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ntoskrnl/kdbg/kdb_symbols.c b/ntoskrnl/kdbg/kdb_symbols.c index 1b2d8f695c8..3baafaf7b78 100644 --- a/ntoskrnl/kdbg/kdb_symbols.c +++ b/ntoskrnl/kdbg/kdb_symbols.c @@ -363,6 +363,7 @@ KdbpSymLoadModuleSymbols( HANDLE FileHandle; NTSTATUS Status; IO_STATUS_BLOCK IoStatusBlock; + BOOLEAN Result; /* Allow KDB to break on module load */ KdbModuleLoaded(FileName); @@ -404,14 +405,15 @@ KdbpSymLoadModuleSymbols( DPRINT("Loading symbols from %wZ...\n", FileName); - if (!RosSymCreateFromFile(&FileHandle, RosSymInfo)) + Result = RosSymCreateFromFile(&FileHandle, RosSymInfo); + ZwClose(FileHandle); + + if (!Result) { DPRINT("Failed to load symbols from %wZ\n", FileName); return; } - ZwClose(FileHandle); - DPRINT("Symbols loaded.\n"); /* add file to cache */