Remember to fill in new char's.

...we seriously need to use a standard <string>.

*glares at Yaniel*
This commit is contained in:
Jason Felds
2015-09-26 21:03:46 -04:00
parent d878a44a9b
commit 537af8d866
5 changed files with 30 additions and 16 deletions
+1
View File
@@ -455,6 +455,7 @@ RString ReadString( RageFileBasic &f, int iSize, RString &sError )
return RString(); return RString();
char *buf = new char[iSize]; char *buf = new char[iSize];
std::fill(buf, buf + iSize, '\0');
FileReading::ReadBytes( f, buf, iSize, sError ); FileReading::ReadBytes( f, buf, iSize, sError );
RString ret(buf); RString ret(buf);
delete [] buf; delete [] buf;
+12 -6
View File
@@ -469,6 +469,7 @@ RString vssprintf( const char *szFormat, va_list argList )
va_end(tmp); va_end(tmp);
char *buf = new char[iNeeded + 1]; char *buf = new char[iNeeded + 1];
std::fill(buf, buf + iNeeded + 1, '\0');
vsnprintf( buf, iNeeded+1, szFormat, argList ); vsnprintf( buf, iNeeded+1, szFormat, argList );
RString ret(buf); RString ret(buf);
delete [] buf; delete [] buf;
@@ -477,22 +478,27 @@ RString vssprintf( const char *szFormat, va_list argList )
int iChars = FMT_BLOCK_SIZE; int iChars = FMT_BLOCK_SIZE;
int iTry = 1; int iTry = 1;
char *buf = new char[iChars];
for (;;) for (;;)
{ {
// Grow more than linearly (e.g. 512, 1536, 3072, etc) // Grow more than linearly (e.g. 512, 1536, 3072, etc)
char *buf = new char[iChars];
std::fill(buf, buf + iChars, '\0');
int used = vsnprintf( buf, iChars - 1, szFormat, argList ); int used = vsnprintf( buf, iChars - 1, szFormat, argList );
if ( used == -1 ) if ( used == -1 )
{ {
iChars += ( ++iTry * FMT_BLOCK_SIZE ); iChars += ( ++iTry * FMT_BLOCK_SIZE );
delete [] buf; }
continue; else
{
/* OK */
sStr.assign(buf, used);
} }
/* OK */
sStr.assign( buf, used );
delete [] buf; delete [] buf;
break; if (used != -1)
{
break;
}
} }
#endif #endif
return sStr; return sStr;
+14 -9
View File
@@ -137,9 +137,8 @@ namespace VDDebugInfo
if( dwFileSize == INVALID_FILE_SIZE ) if( dwFileSize == INVALID_FILE_SIZE )
break; break;
char *buffer = new char[dwFileSize]; char *buffer = new char[dwFileSize + 1];
if( buffer == NULL ) std::fill(buffer, buffer + dwFileSize + 1, '\0' );
break;
DWORD dwActual; DWORD dwActual;
int iRet = ReadFile(h, buffer, dwFileSize, &dwActual, NULL); int iRet = ReadFile(h, buffer, dwFileSize, &dwActual, NULL);
@@ -332,7 +331,8 @@ namespace SymbolLookup
return "???"; return "???";
} }
RString sName; RString sName;
char *buffer = new char[iSize]; char *buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
if (!ReadFromParent(iFD, buffer, iSize)) if (!ReadFromParent(iFD, buffer, iSize))
{ {
sName = "???"; sName = "???";
@@ -518,7 +518,8 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) ) if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
return false; return false;
char *buffer = new char[iSize]; char *buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
bool wasReadSuccessful = ReadFromParent(iFD, buffer, iSize); bool wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
RString tmp = buffer; RString tmp = buffer;
delete[] buffer; delete[] buffer;
@@ -532,7 +533,8 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) ) if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
return false; return false;
buffer = new char[iSize]; buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize); wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
tmp = buffer; tmp = buffer;
delete[] buffer; delete[] buffer;
@@ -550,7 +552,8 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
{ {
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) ) if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
return false; return false;
buffer = new char[iSize]; buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize); wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
tmp = buffer; tmp = buffer;
delete[] buffer; delete[] buffer;
@@ -565,7 +568,8 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) ) if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) )
return false; return false;
buffer = new char[iSize]; buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize); wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
tmp = buffer; tmp = buffer;
delete[] buffer; delete[] buffer;
@@ -578,7 +582,8 @@ bool ReadCrashDataFromParent( int iFD, CompleteCrashData &Data )
// 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;
buffer = new char[iSize]; buffer = new char[iSize + 1];
std::fill(buffer, buffer + iSize + 1, '\0');
wasReadSuccessful = ReadFromParent(iFD, buffer, iSize); wasReadSuccessful = ReadFromParent(iFD, buffer, iSize);
tmp = buffer; tmp = buffer;
delete[] buffer; delete[] buffer;
@@ -651,6 +651,7 @@ void NetworkPostData::HttpThread()
{ {
sBuf.clear(); sBuf.clear();
char * buffer = new char[1024]; char * buffer = new char[1024];
std::fill(buffer, buffer + 1024, '\0');
int iGot = m_pStream->Read( static_cast<void *>(buffer), 1024 ); int iGot = m_pStream->Read( static_cast<void *>(buffer), 1024 );
RString tmp = buffer; RString tmp = buffer;
delete[] buffer; delete[] buffer;
+2 -1
View File
@@ -34,7 +34,8 @@ 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() );
char * buf = new char[iBytes]; char * buf = new char[iBytes + 1];
std::fill(buf, buf + iBytes + 1, '\0');
WideCharToMultiByte( CP_ACP, 0, s.data(), s.size(), WideCharToMultiByte( CP_ACP, 0, s.data(), s.size(),
buf, iBytes, NULL, FALSE ); buf, iBytes, NULL, FALSE );
RString ret( buf ); RString ret( buf );