Skip to content

Commit 4161d09

Browse files
Merge pull request #43 from remittor-pr/fix_alloc_psym
Added check malloc result (IMAGEHLP_SYMBOL64)
2 parents 7858682 + ae74352 commit 4161d09

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

Main/StackWalker/StackWalker.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ class StackWalkerInternal
649649
//ModuleEntry e;
650650
DWORD cbNeeded;
651651
MODULEINFO mi;
652-
HMODULE* hMods = 0;
652+
HMODULE* hMods = NULL;
653653
char* tt = NULL;
654654
char* tt2 = NULL;
655655
const SIZE_T TTBUFLEN = 8096;
@@ -1304,9 +1304,11 @@ BOOL StackWalker::ShowObject(LPVOID pObject)
13041304
// Show object info (SymGetSymFromAddr64())
13051305
DWORD64 dwAddress = DWORD64(pObject);
13061306
DWORD64 dwDisplacement = 0;
1307-
IMAGEHLP_SYMBOL64* pSym =
1308-
(IMAGEHLP_SYMBOL64*)malloc(sizeof(IMAGEHLP_SYMBOL64) + STACKWALK_MAX_NAMELEN);
1309-
memset(pSym, 0, sizeof(IMAGEHLP_SYMBOL64) + STACKWALK_MAX_NAMELEN);
1307+
const SIZE_T symSize = sizeof(IMAGEHLP_SYMBOL64) + STACKWALK_MAX_NAMELEN;
1308+
IMAGEHLP_SYMBOL64* pSym = (IMAGEHLP_SYMBOL64*) malloc(symSize);
1309+
if (!pSym)
1310+
return FALSE;
1311+
memset(pSym, 0, symSize);
13101312
pSym->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64);
13111313
pSym->MaxNameLength = STACKWALK_MAX_NAMELEN;
13121314
if (this->m_sw->pSGSFA(this->m_hProcess, dwAddress, &dwDisplacement, pSym) == FALSE)

0 commit comments

Comments
 (0)