diff options
author | Mattes D <github@xoft.cz> | 2014-09-01 20:57:55 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-09-01 20:57:55 +0200 |
commit | 3093f3d180064738cdbfea56ea39f922648fc18c (patch) | |
tree | 5c1be5bb3055d4edf9c48a29a74d55c3a337e71d | |
parent | Fixed Bindings regeneration under MSVC. (diff) | |
parent | Make sure packets are valid (diff) | |
download | cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar.gz cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar.bz2 cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar.lz cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar.xz cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.tar.zst cuberite-3093f3d180064738cdbfea56ea39f922648fc18c.zip |
-rw-r--r-- | src/Protocol/ProtocolRecognizer.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/Protocol/ProtocolRecognizer.cpp b/src/Protocol/ProtocolRecognizer.cpp index c831da251..8b395230a 100644 --- a/src/Protocol/ProtocolRecognizer.cpp +++ b/src/Protocol/ProtocolRecognizer.cpp @@ -979,9 +979,18 @@ bool cProtocolRecognizer::TryRecognizeLengthedProtocol(UInt32 a_PacketLengthRema AString ServerAddress; short ServerPort; UInt32 NextState; - m_Buffer.ReadVarUTF8String(ServerAddress); - m_Buffer.ReadBEShort(ServerPort); - m_Buffer.ReadVarInt(NextState); + if (!m_Buffer.ReadVarUTF8String(ServerAddress)) + { + break; + } + if (!m_Buffer.ReadBEShort(ServerPort)) + { + break; + } + if (!m_Buffer.ReadVarInt(NextState)) + { + break; + } m_Buffer.CommitRead(); m_Protocol = new cProtocol172(m_Client, ServerAddress, (UInt16)ServerPort, NextState); return true; @@ -991,9 +1000,18 @@ bool cProtocolRecognizer::TryRecognizeLengthedProtocol(UInt32 a_PacketLengthRema AString ServerAddress; short ServerPort; UInt32 NextState; - m_Buffer.ReadVarUTF8String(ServerAddress); - m_Buffer.ReadBEShort(ServerPort); - m_Buffer.ReadVarInt(NextState); + if (!m_Buffer.ReadVarUTF8String(ServerAddress)) + { + break; + } + if (!m_Buffer.ReadBEShort(ServerPort)) + { + break; + } + if (!m_Buffer.ReadVarInt(NextState)) + { + break; + } m_Buffer.CommitRead(); m_Protocol = new cProtocol176(m_Client, ServerAddress, (UInt16)ServerPort, NextState); return true; |