forked from aniani/vim
patch 8.1.0587: GvimExt: realloc() failing is not handled properly
Problem: GvimExt: realloc() failing is not handled properly. Solution: Check for NULL return. (Jan-Jaap Korpershoek, closes #3689)
This commit is contained in:
@@ -1024,6 +1024,8 @@ STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
||||
|
||||
cmdlen = BUFSIZE;
|
||||
cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t));
|
||||
if (cmdStrW == NULL)
|
||||
return;
|
||||
getGvimInvocationW(cmdStrW);
|
||||
|
||||
if (useDiff)
|
||||
@@ -1039,7 +1041,10 @@ STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
||||
if (len > cmdlen)
|
||||
{
|
||||
cmdlen = len + BUFSIZE;
|
||||
cmdStrW = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
|
||||
wchar_t *cmdStrW_new = (wchar_t *)realloc(cmdStrW, cmdlen * sizeof(wchar_t));
|
||||
if (cmdStrW_new == NULL)
|
||||
goto theend;
|
||||
cmdStrW = cmdStrW_new;
|
||||
}
|
||||
wcscat(cmdStrW, L" \"");
|
||||
wcscat(cmdStrW, m_szFileUserClickedOn);
|
||||
@@ -1076,7 +1081,7 @@ STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
}
|
||||
|
||||
theend:
|
||||
free(cmdStrW);
|
||||
|
||||
return NOERROR;
|
||||
|
Reference in New Issue
Block a user