From 814e55597d3c3c1711825366d4345cee48d8fb87 Mon Sep 17 00:00:00 2001
From: Loic Blot <loic.blot@unix-experience.fr>
Date: Tue, 17 Mar 2015 14:04:46 +0100
Subject: [PATCH] Use the NetworkPacket api to read full version string instead
 of u8 pointers. Also store the reserved byte to use API properly

Fixes #2509
---
 src/network/serverpackethandler.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index bb3a53463..fd3b0ac0e 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -732,7 +732,7 @@ void Server::handleCommand_ClientReady(NetworkPacket* pkt)
 	if (peer_proto_ver <= 22) {
 		infostream << "Client sent message not expected by a "
 			<< "client using protocol version <= 22,"
-			<< "disconnecing peer_id: " << peer_id << std::endl;
+			<< "disconnecting peer_id: " << peer_id << std::endl;
 		m_con.DisconnectPeer(peer_id);
 		return;
 	}
@@ -756,12 +756,13 @@ void Server::handleCommand_ClientReady(NetworkPacket* pkt)
 		return;
 	}
 
-	u8 major_ver, minor_ver, patch_ver;
-	*pkt >> major_ver >> minor_ver >> patch_ver;
+	u8 major_ver, minor_ver, patch_ver, reserved;
+	std::string full_ver;
+	*pkt >> major_ver >> minor_ver >> patch_ver >> reserved >> full_ver;
 
 	m_clients.setClientVersion(
 			peer_id, major_ver, minor_ver, patch_ver,
-			std::string(pkt->getString(6),(u16) pkt->getU8(4)));
+			full_ver);
 
 	m_clients.event(peer_id, CSE_SetClientReady);
 	m_script->on_joinplayer(playersao);
-- 
GitLab