mirror of
https://github.com/vxcontrol/MemoryModule.git
synced 2026-07-21 06:05:55 -04:00
Fixed potential memory leak if "realloc" fails.
This commit is contained in:
+4
-2
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user