aboutsummaryrefslogtreecommitdiff
path: root/networkmanager.cpp
diff options
context:
space:
mode:
authoroldmud0 <oldmud0@users.noreply.github.com>2018-07-04 10:53:31 -0400
committerGitHub <noreply@github.com>2018-07-04 10:53:31 -0400
commite761805cd188337a5d5997dcf3389be9ee4316bd (patch)
tree8acad75b402fc68fa50b526b2712c748e67b2d7e /networkmanager.cpp
parentf5e0177b9e13c68fa960dc873cd62452943dac3f (diff)
parent0e15be73af266d5fbff3d83d731a7af2773ff532 (diff)
Merge pull request #19 from LeifaBot/master
Fix buffer overflow exploit
Diffstat (limited to 'networkmanager.cpp')
-rw-r--r--networkmanager.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/networkmanager.cpp b/networkmanager.cpp
index 8c0eaa7a..8afe087c 100644
--- a/networkmanager.cpp
+++ b/networkmanager.cpp
@@ -4,6 +4,7 @@
#include "debug_functions.h"
#include "lobby.h"
+#include <cstring>
NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent)
{
@@ -75,8 +76,9 @@ void NetworkManager::ship_server_packet(QString p_packet)
void NetworkManager::handle_ms_packet()
{
- char buffer[16384] = {0};
- ms_socket->read(buffer, ms_socket->bytesAvailable());
+ char buffer[buffer_max_size];
+ std::memset(buffer, 0, buffer_max_size);
+ ms_socket->read(buffer, buffer_max_size);
QString in_data = buffer;
@@ -100,7 +102,7 @@ void NetworkManager::handle_ms_packet()
QStringList packet_list = in_data.split("%", QString::SplitBehavior(QString::SkipEmptyParts));
for (QString packet : packet_list)
- {
+ {
AOPacket *f_packet = new AOPacket(packet);
ao_app->ms_packet_received(f_packet);
@@ -213,8 +215,9 @@ void NetworkManager::retry_ms_connect()
void NetworkManager::handle_server_packet()
{
- char buffer[16384] = {0};
- server_socket->read(buffer, server_socket->bytesAvailable());
+ char buffer[buffer_max_size];
+ std::memset(buffer, 0, buffer_max_size);
+ server_socket->read(buffer, buffer_max_size);
QString in_data = buffer;