From 229d2bf9907651df879a6f666c4ea0401750da48 Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Tue, 22 Oct 2013 02:37:19 -0400 Subject: [PATCH] Wrap usages of TShock.Players[] with checks for out of bounds. --- TShockAPI/GetDataHandlers.cs | 13 +++++++++++-- TShockAPI/Utils.cs | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index a05a30ac..d853a9cf 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -2492,6 +2492,9 @@ namespace TShockAPI return false; } + if (id >= Main.maxPlayers) + return true; + if (OnKillMe(id, direction, dmg, pvp)) return true; @@ -2871,6 +2874,12 @@ namespace TShockAPI args.Player.SendData(PacketTypes.PlayerBuff, "", id); return true; } + + if (id >= Main.maxPlayers) + { + return true; + } + if (!TShock.Players[id].TPlayer.hostile) { args.Player.SendData(PacketTypes.PlayerBuff, "", id); @@ -2977,7 +2986,7 @@ namespace TShockAPI }*/ } - if (TShock.Players[id] == null) + if (id >= Main.maxPlayers || TShock.Players[id] == null) return true; if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap) && id != args.Player.Index) @@ -3330,7 +3339,7 @@ namespace TShockAPI return true; } - if (Main.player[id] == null || TShock.Players[id] == null) + if (id >= Main.maxPlayers || Main.player[id] == null || TShock.Players[id] == null) { return true; } diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs index a281db53..e19ecbf4 100644 --- a/TShockAPI/Utils.cs +++ b/TShockAPI/Utils.cs @@ -258,7 +258,7 @@ namespace TShockAPI return found; byte plrID; - if (byte.TryParse(plr, out plrID)) + if (byte.TryParse(plr, out plrID) && plrID < Main.maxPlayers) { TSPlayer player = TShock.Players[plrID]; if (player != null && player.Active)