Remember to fill in new char's.
...we seriously need to use a standard <string>. *glares at Yaniel*
This commit is contained in:
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
Reference in New Issue
Block a user