Skip to content

Commit

Permalink
Fix incorrect string length check after cast
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenwardy committed Mar 6, 2019
1 parent c735497 commit 82c6363
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/network/networkpacket.cpp
Expand Up @@ -110,11 +110,12 @@ NetworkPacket& NetworkPacket::operator>>(std::string& dst)

NetworkPacket& NetworkPacket::operator<<(const std::string &src)
{
u16 msgsize = src.size();
if (msgsize > STRING_MAX_LEN) {
if (src.size() > STRING_MAX_LEN) {
throw PacketError("String too long");
}

u16 msgsize = src.size();

*this << msgsize;

putRawString(src.c_str(), (u32)msgsize);
Expand All @@ -124,11 +125,12 @@ NetworkPacket& NetworkPacket::operator<<(const std::string &src)

void NetworkPacket::putLongString(const std::string &src)
{
u32 msgsize = src.size();
if (msgsize > LONG_STRING_MAX_LEN) {
if (src.size() > LONG_STRING_MAX_LEN) {
throw PacketError("String too long");
}

u32 msgsize = src.size();

*this << msgsize;

putRawString(src.c_str(), msgsize);
Expand Down Expand Up @@ -160,11 +162,12 @@ NetworkPacket& NetworkPacket::operator>>(std::wstring& dst)

NetworkPacket& NetworkPacket::operator<<(const std::wstring &src)
{
u16 msgsize = src.size();
if (msgsize > WIDE_STRING_MAX_LEN) {
if (src.size() > WIDE_STRING_MAX_LEN) {
throw PacketError("String too long");
}

u16 msgsize = src.size();

*this << msgsize;

// Write string
Expand Down

0 comments on commit 82c6363

Please sign in to comment.