WebSocketServer now sanitize destination peers.

When relaying messages in multiplayer mode.
Could cause a crash in case a malicious client sends a bogus packet and
for those cases where a peer has just disconnected and a message arrive
from another peer with the disconnected one as destination.
This commit is contained in:
Fabio Alessandrelli 2019-08-19 17:21:24 +02:00
parent cce148b024
commit 17be67b8c7

View file

@ -265,7 +265,10 @@ Error WebSocketMultiplayerPeer::_server_relay(int32_t p_from, int32_t p_to, cons
ERR_FAIL_COND_V(p_to == p_from, FAILED);
return get_peer(p_to)->put_packet(p_buffer, p_buffer_size); // Sending to specific peer
Ref<WebSocketPeer> peer_to = get_peer(p_to);
ERR_FAIL_COND_V(peer_to.is_null(), FAILED);
return peer_to->put_packet(p_buffer, p_buffer_size); // Sending to specific peer
}
}