From 8ea338a5f8eee1547961d628b3417fa7736eb909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albin=20Cor=C3=A9n?= <2108U9@gmail.com> Date: Thu, 8 Mar 2018 18:11:41 +0100 Subject: [PATCH] Added error checks on Sync messages --- MLAPI/MonoBehaviours/Core/NetworkingManager.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs index d54061d..df98db8 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs @@ -697,6 +697,21 @@ namespace MLAPI uint netId = messageReader.ReadUInt32(); //NetId the syncvar is from ushort orderIndex = messageReader.ReadUInt16(); byte fieldIndex = messageReader.ReadByte(); + if(!SpawnManager.spawnedObjects.ContainsKey(netId)) + { + Debug.LogWarning("MLAPI: Sync message recieved for a non existant object with id: " + netId); + return; + } + else if(SpawnManager.spawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex) == null) + { + Debug.LogWarning("MLAPI: Sync message recieved for a non existant behaviour"); + return; + } + else if(fieldIndex > (SpawnManager.spawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex).syncedFieldTypes.Count - 1)) + { + Debug.LogWarning("MLAPI: Sync message recieved for field out of bounds"); + return; + } FieldType type = SpawnManager.spawnedObjects[netId].GetBehaviourAtOrderIndex(orderIndex).syncedFieldTypes[fieldIndex]; switch (type) {