NOW all of the buffer calls should be dead.
This commit is contained in:
@@ -166,7 +166,7 @@ static BOOL CALLBACK ErrorWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lP
|
|||||||
RString sCommand = "notepad \"" + sAppDataDir + PRODUCT_ID + "/Logs/log.txt\"";
|
RString sCommand = "notepad \"" + sAppDataDir + PRODUCT_ID + "/Logs/log.txt\"";
|
||||||
CreateProcess(
|
CreateProcess(
|
||||||
NULL, // pointer to name of executable module
|
NULL, // pointer to name of executable module
|
||||||
sCommand.GetBuffer(), // pointer to command line string
|
const_cast<char *>(sCommand.c_str()), // pointer to command line string
|
||||||
NULL, // process security attributes
|
NULL, // process security attributes
|
||||||
NULL, // thread security attributes
|
NULL, // thread security attributes
|
||||||
false, // handle inheritance flag
|
false, // handle inheritance flag
|
||||||
|
|||||||
@@ -137,14 +137,15 @@ namespace VDDebugInfo
|
|||||||
if( dwFileSize == INVALID_FILE_SIZE )
|
if( dwFileSize == INVALID_FILE_SIZE )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
char *pBuf = pctx->sRawBlock.GetBuffer( dwFileSize );
|
char *buffer = new char[dwFileSize];
|
||||||
if( pBuf == NULL )
|
if( buffer == NULL )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
DWORD dwActual;
|
DWORD dwActual;
|
||||||
int iRet = ReadFile(h, pBuf, dwFileSize, &dwActual, NULL);
|
int iRet = ReadFile(h, buffer, dwFileSize, &dwActual, NULL);
|
||||||
CloseHandle(h);
|
CloseHandle(h);
|
||||||
pctx->sRawBlock.ReleaseBuffer( dwActual );
|
pctx->sRawBlock = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
|
||||||
if( !iRet || dwActual != dwFileSize )
|
if( !iRet || dwActual != dwFileSize )
|
||||||
break;
|
break;
|
||||||
@@ -327,12 +328,20 @@ namespace SymbolLookup
|
|||||||
int iFD = fileno(stdin);
|
int iFD = fileno(stdin);
|
||||||
int iSize;
|
int iSize;
|
||||||
if (!ReadFromParent(iFD, &iSize, sizeof(iSize)))
|
if (!ReadFromParent(iFD, &iSize, sizeof(iSize)))
|
||||||
|
{
|
||||||
return "???";
|
return "???";
|
||||||
|
}
|
||||||
RString sName;
|
RString sName;
|
||||||
char *pBuf = sName.GetBuffer( iSize );
|
char *buffer = new char[iSize];
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
if (!ReadFromParent(iFD, buffer, iSize))
|
||||||
return "???";
|
{
|
||||||
sName.ReleaseBuffer( iSize );
|
sName = "???";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sName = buffer;
|
||||||
|
}
|
||||||
|
delete[] buffer;
|
||||||
return sName;
|
return sName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -509,19 +518,29 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
|
|||||||
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
char *pBuf = Data.m_sInfo.GetBuffer( iSize );
|
char *buffer = new char[iSize];
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
bool wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
|
||||||
|
RString tmp = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
if (!wasReadSuccessful)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
Data.m_sInfo.ReleaseBuffer( iSize );
|
}
|
||||||
|
Data.m_sInfo = tmp;
|
||||||
|
|
||||||
// 3. Read AdditionalLog.
|
// 3. Read AdditionalLog.
|
||||||
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pBuf = Data.m_sAdditionalLog.GetBuffer( iSize );
|
buffer = new char[iSize];
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
|
||||||
|
tmp = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
if (!wasReadSuccessful)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
Data.m_sAdditionalLog.ReleaseBuffer( iSize );
|
}
|
||||||
|
Data.m_sAdditionalLog = tmp;
|
||||||
|
|
||||||
// 4. Read RecentLogs.
|
// 4. Read RecentLogs.
|
||||||
int iCnt = 0;
|
int iCnt = 0;
|
||||||
@@ -531,33 +550,43 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
|
|||||||
{
|
{
|
||||||
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
||||||
return false;
|
return false;
|
||||||
RString sBuf;
|
buffer = new char[iSize];
|
||||||
pBuf = sBuf.GetBuffer( iSize );
|
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
tmp = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
if (!wasReadSuccessful)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
Data.m_asRecent.push_back( sBuf );
|
}
|
||||||
sBuf.ReleaseBuffer( iSize );
|
Data.m_asRecent.push_back(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Read CHECKPOINTs.
|
// 5. Read CHECKPOINTs.
|
||||||
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
RString sBuf;
|
buffer = new char[iSize];
|
||||||
pBuf = sBuf.GetBuffer( iSize );
|
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
tmp = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
if (!wasReadSuccessful)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
split( sBuf, "$$", Data.m_asCheckpoints );
|
split(tmp, "$$", Data.m_asCheckpoints);
|
||||||
sBuf.ReleaseBuffer( iSize );
|
|
||||||
|
|
||||||
// 6. Read the crashed thread's name.
|
// 6. Read the crashed thread's name.
|
||||||
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
|
||||||
return false;
|
return false;
|
||||||
pBuf = Data.m_sCrashedThread.GetBuffer( iSize );
|
buffer = new char[iSize];
|
||||||
if( !ReadFromParent(iFD, pBuf, iSize) )
|
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
|
||||||
|
tmp = buffer;
|
||||||
|
delete[] buffer;
|
||||||
|
if (!wasReadSuccessful)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
Data.m_sCrashedThread.ReleaseBuffer();
|
}
|
||||||
|
Data.m_sCrashedThread = tmp;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -650,13 +650,16 @@ void NetworkPostData::HttpThread()
|
|||||||
while( m_pStream->GetState() == NetworkStream::STATE_CONNECTED )
|
while( m_pStream->GetState() == NetworkStream::STATE_CONNECTED )
|
||||||
{
|
{
|
||||||
sBuf.clear();
|
sBuf.clear();
|
||||||
void *p = sBuf.GetBuffer( 1024 );
|
char * buffer = new char[1024];
|
||||||
int iGot = m_pStream->Read( p, 1024 );
|
int iGot = m_pStream->Read( static_cast<void *>(buffer), 1024 );
|
||||||
if( iGot >= 0 )
|
RString tmp = buffer;
|
||||||
sBuf.ReleaseBuffer( iGot );
|
delete[] buffer;
|
||||||
if( iGot <= 0 )
|
if (iGot < 0)
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
sResult += sBuf;
|
}
|
||||||
|
|
||||||
|
sResult += tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetProgress( 1.0f );
|
SetProgress( 1.0f );
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ RString ConvertWstringToCodepage( wstring s, int iCodePage )
|
|||||||
NULL, 0, NULL, FALSE );
|
NULL, 0, NULL, FALSE );
|
||||||
ASSERT_M( iBytes > 0, werr_ssprintf( GetLastError(), "WideCharToMultiByte" ).c_str() );
|
ASSERT_M( iBytes > 0, werr_ssprintf( GetLastError(), "WideCharToMultiByte" ).c_str() );
|
||||||
|
|
||||||
RString ret;
|
char * buf = new char[iBytes];
|
||||||
WideCharToMultiByte( CP_ACP, 0, s.data(), s.size(),
|
WideCharToMultiByte( CP_ACP, 0, s.data(), s.size(),
|
||||||
ret.GetBuffer( iBytes ), iBytes, NULL, FALSE );
|
buf, iBytes, NULL, FALSE );
|
||||||
ret.ReleaseBuffer( iBytes );
|
RString ret( buf );
|
||||||
|
delete[] buf;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ bool GetFileVersion( RString sFile, RString &sOut )
|
|||||||
|
|
||||||
RString VersionBuffer( iSize, ' ' );
|
RString VersionBuffer( iSize, ' ' );
|
||||||
// Also VC6:
|
// Also VC6:
|
||||||
if( !GetFileVersionInfo( const_cast<char *>(sFile.c_str()), NULL, iSize, VersionBuffer.GetBuffer() ) )
|
if( !GetFileVersionInfo( const_cast<char *>(sFile.c_str()), NULL, iSize, const_cast<char *>(VersionBuffer.c_str()) ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
WORD *iTrans;
|
WORD *iTrans;
|
||||||
|
|||||||
Reference in New Issue
Block a user