From a13f7eb1d424f3c923727ead39d9b59639ddbf66 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sun, 6 Nov 2016 00:32:17 +0100 Subject: [PATCH] [FS9] Add missing null termination when serializing QStrings The produced QByteArray was missing the null terminating character, since QByteArray::append() only added up to and not including '\0'. This was also the reason why sometimes planes did not change their aircraft models properly. --- src/plugins/simulator/fs9/fs9client.cpp | 3 --- src/plugins/simulator/fs9/multiplayerpacketparser.cpp | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/plugins/simulator/fs9/fs9client.cpp b/src/plugins/simulator/fs9/fs9client.cpp index 97425eea3..19b383de2 100644 --- a/src/plugins/simulator/fs9/fs9client.cpp +++ b/src/plugins/simulator/fs9/fs9client.cpp @@ -316,9 +316,6 @@ namespace BlackSimPlugin MultiPlayerPacketParser::writeSize(message, mpChangePlayerPlane.size()); message = MultiPlayerPacketParser::writeMessage(message, mpChangePlayerPlane); CLogMessage(this).debug() << m_callsign << " connected to session."; - // Send it several times, since one got missed several times. - sendMessage(message); - sendMessage(message); sendMessage(message); m_timerId = startTimer(m_updateInterval.value(CTimeUnit::ms())); diff --git a/src/plugins/simulator/fs9/multiplayerpacketparser.cpp b/src/plugins/simulator/fs9/multiplayerpacketparser.cpp index 7ad40f3da..a3fc66799 100644 --- a/src/plugins/simulator/fs9/multiplayerpacketparser.cpp +++ b/src/plugins/simulator/fs9/multiplayerpacketparser.cpp @@ -29,7 +29,7 @@ namespace BlackSimPlugin QByteArray writeValue(QByteArray data, const QString &value) { - data.append(qPrintable(value)); + data.append(qPrintable(value), value.size() + 1); return data; }