diff options
author | rubidium <rubidium@openttd.org> | 2007-10-18 17:44:59 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-10-18 17:44:59 +0000 |
commit | 6f75794b0f138f22ae468866914b20e748c54a8b (patch) | |
tree | b65a1bb099d0cd6f74762d4c2704a96edf1f3dda /src/network/core/packet.cpp | |
parent | 5a27f5448b61f00cab4861cfb21dd7a354ff4761 (diff) | |
download | openttd-6f75794b0f138f22ae468866914b20e748c54a8b.tar.xz |
(svn r11290) -Fix: obiwan in the assertion that checked for overflows when writing a packet, causing still correctly sized packets to cause assertions.
Diffstat (limited to 'src/network/core/packet.cpp')
-rw-r--r-- | src/network/core/packet.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/network/core/packet.cpp b/src/network/core/packet.cpp index 8d85e9ad5..0da9b1a07 100644 --- a/src/network/core/packet.cpp +++ b/src/network/core/packet.cpp @@ -133,7 +133,8 @@ void Packet::Send_uint64(uint64 data) void Packet::Send_string(const char* data) { assert(data != NULL); - assert(this->size < sizeof(this->buffer) - strlen(data) - 1); + /* The <= *is* valid due to the fact that we are comparing sizes and not the index. */ + assert(this->size + strlen(data) + 1 <= sizeof(this->buffer)); while ((this->buffer[this->size++] = *data++) != '\0') {} } |