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 1728fe39ad
commit a94587af43
92 changed files with 298 additions and 279 deletions

View file

@ -495,7 +495,7 @@ DefineEngineFunction(getDirectoryList, String, ( const char* path, S32 depth ),
// Copy the directory names to the buffer.
for (S32 i = 0; i < directories.size(); i++)
{
dStrcpy(p, directories[i]);
dStrcpy(p, directories[i], length - (p - buffer));
p += dStrlen(directories[i]);
// Tab separated.
p[0] = '\t';
@ -537,7 +537,7 @@ DefineEngineFunction( fileModifiedTime, String, ( const char* fileName ),,
String fileStr = Platform::localTimeToString( lt );
char *buffer = Con::getReturnBuffer( fileStr.size() );
dStrcpy( buffer, fileStr );
dStrcpy( buffer, fileStr, fileStr.size() );
return buffer;
}
@ -560,7 +560,7 @@ DefineEngineFunction( fileCreatedTime, String, ( const char* fileName ),,
String fileStr = Platform::localTimeToString( lt );
char *buffer = Con::getReturnBuffer( fileStr.size() );
dStrcpy( buffer, fileStr );
dStrcpy( buffer, fileStr, fileStr.size() );
return buffer;
}
@ -609,7 +609,7 @@ DefineEngineFunction(fileBase, String, ( const char* fileName ),,
S32 pathLen = dStrlen( fileName );
FrameTemp<char> szPathCopy( pathLen + 1);
dStrcpy( szPathCopy, fileName );
dStrcpy( szPathCopy, fileName, pathLen + 1 );
forwardslash( szPathCopy );
const char *path = dStrrchr(szPathCopy, '/');
@ -618,7 +618,7 @@ DefineEngineFunction(fileBase, String, ( const char* fileName ),,
else
path++;
char *ret = Con::getReturnBuffer(dStrlen(path) + 1);
dStrcpy(ret, path);
dStrcpy(ret, path, dStrlen(path) + 1);
char *ext = dStrrchr(ret, '.');
if(ext)
*ext = 0;
@ -635,7 +635,7 @@ DefineEngineFunction(fileName, String, ( const char* fileName ),,
S32 pathLen = dStrlen( fileName );
FrameTemp<char> szPathCopy( pathLen + 1);
dStrcpy( szPathCopy, fileName );
dStrcpy( szPathCopy, fileName, pathLen + 1 );
forwardslash( szPathCopy );
const char *name = dStrrchr(szPathCopy, '/');
@ -644,7 +644,7 @@ DefineEngineFunction(fileName, String, ( const char* fileName ),,
else
name++;
char *ret = Con::getReturnBuffer(dStrlen(name));
dStrcpy(ret, name);
dStrcpy(ret, name, dStrlen(name));
return ret;
}
@ -658,7 +658,7 @@ DefineEngineFunction(filePath, String, ( const char* fileName ),,
S32 pathLen = dStrlen( fileName );
FrameTemp<char> szPathCopy( pathLen + 1);
dStrcpy( szPathCopy, fileName );
dStrcpy( szPathCopy, fileName, pathLen + 1 );
forwardslash( szPathCopy );
const char *path = dStrrchr(szPathCopy, '/');