Skip to content

Commit 6a5d3d4

Browse files
committed
Fixed potential memory leak if "realloc" fails.
1 parent 0f6bdc7 commit 6a5d3d4

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

MemoryModule.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ BuildImportTable(PMEMORYMODULE module)
239239
{
240240
int result=1;
241241
unsigned char *codeBase = module->codeBase;
242+
HMODULE * tmp;
242243

243244
PIMAGE_DATA_DIRECTORY directory = GET_HEADER_DICTIONARY(module, IMAGE_DIRECTORY_ENTRY_IMPORT);
244245
if (directory->Size > 0) {
@@ -255,12 +256,13 @@ BuildImportTable(PMEMORYMODULE module)
255256
break;
256257
}
257258

258-
module->modules = (HMODULE *)realloc(module->modules, (module->numModules+1)*(sizeof(HMODULE)));
259-
if (module->modules == NULL) {
259+
tmp = (HMODULE *)realloc(module->modules, (module->numModules+1)*(sizeof(HMODULE)));
260+
if (tmp == NULL) {
260261
FreeLibrary(handle);
261262
result = 0;
262263
break;
263264
}
265+
module->modules = tmp;
264266

265267
module->modules[module->numModules++] = handle;
266268
if (importDesc->OriginalFirstThunk) {

0 commit comments

Comments
 (0)