浏览代码

Merge pull request #26096 from Faless/net/enet_id_check

Add check to validate client IDs in ENet.
Rémi Verschelde 6 年之前
父节点
当前提交
643af210b1
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      modules/enet/networked_multiplayer_enet.cpp

+ 7 - 0
modules/enet/networked_multiplayer_enet.cpp

@@ -231,6 +231,13 @@ void NetworkedMultiplayerENet::poll() {
 					break;
 					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);
 				int *new_id = memnew(int);
 				*new_id = event.data;
 				*new_id = event.data;