From 6a5d3d420eaac495ad12d4d64bda2d78d468846f Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Tue, 5 Mar 2013 00:32:42 +0100 Subject: [PATCH] Fixed potential memory leak if "realloc" fails. --- MemoryModule.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MemoryModule.c b/MemoryModule.c index 8541060..a19aa7a 100644 --- a/MemoryModule.c +++ b/MemoryModule.c @@ -239,6 +239,7 @@ BuildImportTable(PMEMORYMODULE module) { int result=1; unsigned char *codeBase = module->codeBase; + HMODULE * tmp; PIMAGE_DATA_DIRECTORY directory = GET_HEADER_DICTIONARY(module, IMAGE_DIRECTORY_ENTRY_IMPORT); if (directory->Size > 0) { @@ -255,12 +256,13 @@ BuildImportTable(PMEMORYMODULE module) break; } - module->modules = (HMODULE *)realloc(module->modules, (module->numModules+1)*(sizeof(HMODULE))); - if (module->modules == NULL) { + tmp = (HMODULE *)realloc(module->modules, (module->numModules+1)*(sizeof(HMODULE))); + if (tmp == NULL) { FreeLibrary(handle); result = 0; break; } + module->modules = tmp; module->modules[module->numModules++] = handle; if (importDesc->OriginalFirstThunk) {