File tree Expand file tree Collapse file tree 1 file changed +6
-16
lines changed
Core/GameEngine/Source/GameNetwork Expand file tree Collapse file tree 1 file changed +6
-16
lines changed Original file line number Diff line number Diff line change @@ -5807,15 +5807,10 @@ NetCommandMsg * NetPacket::readWrapperMessage(UnsignedByte *data, Int &i) {
58075807NetCommandMsg * NetPacket::readFileMessage (UnsignedByte *data, Int &i) {
58085808 NetFileCommandMsg *msg = newInstance (NetFileCommandMsg);
58095809 char filename[_MAX_PATH];
5810- char *c = filename;
58115810
5812- while (data[i] != 0 ) {
5813- *c = data[i];
5814- ++c;
5815- ++i;
5816- }
5817- *c = 0 ;
5818- ++i;
5811+ // TheSuperHackers @security Mauller/Jbremer/SkyAero 11/12/2025 Prevent buffer overflow when copying filepath string
5812+ i += strlcpy (filename, reinterpret_cast <const char *>(data), ARRAY_SIZE (filename));
5813+ ++i; // Increment for null terminator
58195814 msg->setPortableFilename (AsciiString (filename)); // it's transferred as a portable filename
58205815
58215816 UnsignedInt dataLength = 0 ;
@@ -5834,15 +5829,10 @@ NetCommandMsg * NetPacket::readFileMessage(UnsignedByte *data, Int &i) {
58345829NetCommandMsg * NetPacket::readFileAnnounceMessage (UnsignedByte *data, Int &i) {
58355830 NetFileAnnounceCommandMsg *msg = newInstance (NetFileAnnounceCommandMsg);
58365831 char filename[_MAX_PATH];
5837- char *c = filename;
58385832
5839- while (data[i] != 0 ) {
5840- *c = data[i];
5841- ++c;
5842- ++i;
5843- }
5844- *c = 0 ;
5845- ++i;
5833+ // TheSuperHackers @security Mauller/Jbremer/SkyAero 11/12/2025 Prevent buffer overflow when copying filepath string
5834+ i += strlcpy (filename, reinterpret_cast <const char *>(data), ARRAY_SIZE (filename));
5835+ ++i; // Increment for null terminator
58465836 msg->setPortableFilename (AsciiString (filename)); // it's transferred as a portable filename
58475837
58485838 UnsignedShort fileID = 0 ;
You can’t perform that action at this time.
0 commit comments