mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-27 05:23:51 +00:00
memory, threading, network hardening
Signed-off-by: Pavel Okhlopkov <pavel.okhlopkov@flant.com>
This commit is contained in:
parent
312994be83
commit
2e8856bacd
9 changed files with 135 additions and 24 deletions
|
|
@ -571,7 +571,21 @@ void WorldSocket::pumpNetworkIO() {
|
|||
}
|
||||
receiveBuffer.insert(receiveBuffer.end(), buffer, buffer + receivedSize);
|
||||
} else {
|
||||
receiveBuffer.insert(receiveBuffer.end(), buffer, buffer + received);
|
||||
// Non-fast path: same overflow pre-check as fast path to prevent
|
||||
// unbounded buffer growth before the post-check below.
|
||||
size_t liveBytes = bufferedBytes();
|
||||
if (liveBytes > kMaxReceiveBufferBytes || receivedSize > (kMaxReceiveBufferBytes - liveBytes)) {
|
||||
compactReceiveBuffer();
|
||||
liveBytes = bufferedBytes();
|
||||
}
|
||||
if (liveBytes > kMaxReceiveBufferBytes || receivedSize > (kMaxReceiveBufferBytes - liveBytes)) {
|
||||
LOG_ERROR("World socket receive buffer would overflow (buffered=", liveBytes,
|
||||
" incoming=", receivedSize, " max=", kMaxReceiveBufferBytes,
|
||||
"). Disconnecting to recover framing.");
|
||||
closeSocketNoJoin();
|
||||
return;
|
||||
}
|
||||
receiveBuffer.insert(receiveBuffer.end(), buffer, buffer + receivedSize);
|
||||
}
|
||||
if (bufferedBytes() > kMaxReceiveBufferBytes) {
|
||||
LOG_ERROR("World socket receive buffer overflow (", bufferedBytes(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue