Use strncpy instead of strcpy because again, buffer overflows

This commit is contained in:
Glenn Smith 2018-03-06 01:59:05 -05:00
parent 7769da9434
commit 79c34c68db
92 changed files with 298 additions and 279 deletions

View file

@ -548,7 +548,7 @@ const char * Component::getDescriptionText(const char *desc)
if (!Platform::isFile(desc))
{
newDesc = new char[dStrlen(desc) + 1];
dStrcpy(newDesc, desc);
dStrcpy(newDesc, desc, dStrlen(desc) + 1);
return newDesc;
}

View file

@ -1495,7 +1495,7 @@ bool DecalManager::_createDataFile()
// See if we know our current mission name
char missionName[1024];
dStrcpy( missionName, Con::getVariable( "$Client::MissionFile" ) );
dStrcpy( missionName, Con::getVariable( "$Client::MissionFile" ), 1024 );
char *dot = dStrstr((const char*)missionName, ".mis");
if(dot)
*dot = '\0';

View file

@ -595,7 +595,7 @@ bool ParticleData::preload(bool server, String &errorStr)
animTexFrames.clear();
char* tokCopy = new char[dStrlen(animTexFramesString) + 1];
dStrcpy(tokCopy, animTexFramesString);
dStrcpy(tokCopy, animTexFramesString, dStrlen(animTexFramesString) + 1);
char* currTok = dStrtok(tokCopy, " \t");
while (currTok != NULL)

View file

@ -609,7 +609,7 @@ bool ParticleEmitterData::onAdd()
// First we parse particleString into a list of particle name tokens
Vector<char*> dataBlocks(__FILE__, __LINE__);
char* tokCopy = new char[dStrlen(particleString) + 1];
dStrcpy(tokCopy, particleString);
dStrcpy(tokCopy, particleString, dStrlen(particleString) + 1);
char* currTok = dStrtok(tokCopy, " \t");
while (currTok != NULL)

View file

@ -1254,7 +1254,7 @@ DefineEngineMethod( Item, getLastStickyPos, const char*, (),,
object->mStickyCollisionPos.y,
object->mStickyCollisionPos.z);
else
dStrcpy(ret, "0 0 0");
dStrcpy(ret, "0 0 0", bufSize);
return ret;
}
@ -1277,7 +1277,7 @@ DefineEngineMethod( Item, getLastStickyNormal, const char *, (),,
object->mStickyCollisionNormal.y,
object->mStickyCollisionNormal.z);
else
dStrcpy(ret, "0 0 0");
dStrcpy(ret, "0 0 0", bufSize);
return ret;
}