Add check to validate client IDs in ENet.

Server now checks that the ID received from the client is not already
used by someone else and is a valid ID (>=2)
This commit is contained in:
Fabio Alessandrelli 2019-02-20 16:28:53 +01:00
parent d39c0577c0
commit dc583a6225

View file

@ -231,6 +231,13 @@ void NetworkedMultiplayerENet::poll() {
break;
}
// A client joined with an invalid ID (neagtive values, 0, and 1 are reserved).
// Probably trying to exploit us.
if (server && ((int)event.data < 2 || peer_map.has((int)event.data))) {
enet_peer_reset(event.peer);
ERR_CONTINUE(true);
}
int *new_id = memnew(int);
*new_id = event.data;