From 918b9e030d098124d1240d5d9dd6f63057b2aa93 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 6 May 2020 12:15:58 +0000 Subject: [PATCH] Check for proper item count at RequestAlchemyTryMixCube. --- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- .../alchemy/RequestAlchemyTryMixCube.java | 17 ++++++++++++++++- 8 files changed, 128 insertions(+), 8 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java index a942cab715..331afdbb3c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/alchemy/RequestAlchemyTryMixCube.java @@ -32,6 +32,7 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.CommonSkill; +import org.l2jmobius.gameserver.network.Disconnection; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; @@ -59,9 +60,23 @@ public class RequestAlchemyTryMixCube implements IClientIncomingPacket return false; } + int id; + long count; for (int i = 0; i < itemsCount; i++) { - _items.add(new ItemHolder(packet.readD(), packet.readQ())); + id = packet.readD(); + count = packet.readQ(); + if ((count > 0) && (count < Long.MAX_VALUE)) + { + _items.add(new ItemHolder(id, count)); + } + else // Player used packet injection tool. + { + final PlayerInstance player = client.getPlayer(); + LOGGER.warning("Kicked " + player + " for using packet injection tool with " + getClass().getSimpleName()); + Disconnection.of(player).defaultSequence(true); + return false; + } } return true; }