Browse Source

Sanity check of private store messages.

_DS_ 15 years ago
parent
commit
608cf3f701

+ 5 - 3
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestRecipeItemMakeInfo.java

@@ -25,19 +25,21 @@ public final class RequestRecipeItemMakeInfo extends L2GameClientPacket
 	//private static Logger _log = Logger.getLogger(RequestSellItem.class.getName());
 	//private static Logger _log = Logger.getLogger(RequestSellItem.class.getName());
 
 
 	private int _id;
 	private int _id;
-	private L2PcInstance _activeChar;
 
 
 	@Override
 	@Override
 	protected void readImpl()
 	protected void readImpl()
 	{
 	{
 		_id = readD();
 		_id = readD();
-		_activeChar = getClient().getActiveChar();
 	}
 	}
 
 
 	@Override
 	@Override
 	protected void runImpl()
 	protected void runImpl()
 	{
 	{
-		RecipeItemMakeInfo response = new RecipeItemMakeInfo(_id, _activeChar);
+		final L2PcInstance player = getClient().getActiveChar();
+		if (player == null)
+			return;
+
+		RecipeItemMakeInfo response = new RecipeItemMakeInfo(_id, player);
 		sendPacket(response);
 		sendPacket(response);
 	}
 	}
 
 

+ 28 - 24
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestRecipeShopMessageSet.java

@@ -14,7 +14,9 @@
  */
  */
 package com.l2jserver.gameserver.network.clientpackets;
 package com.l2jserver.gameserver.network.clientpackets;
 
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.util.Util;
 
 
 /**
 /**
  * This class ...
  * This class ...
@@ -23,37 +25,39 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  */
  */
 public class RequestRecipeShopMessageSet extends L2GameClientPacket
 public class RequestRecipeShopMessageSet extends L2GameClientPacket
 {
 {
-    private static final String _C__B1_RequestRecipeShopMessageSet = "[C] b1 RequestRecipeShopMessageSet";
-    //private static Logger _log = Logger.getLogger(RequestRecipeShopMessageSet.class.getName());
+	private static final String _C__B1_RequestRecipeShopMessageSet = "[C] b1 RequestRecipeShopMessageSet";
+	//private static Logger _log = Logger.getLogger(RequestRecipeShopMessageSet.class.getName());
 
 
-    private String _name;
+	private static final int MAX_MSG_LENGTH = 29;
 
 
-    @Override
+	private String _name;
+
+	@Override
 	protected void readImpl()
 	protected void readImpl()
-    {
-        _name = readS();
+	{
+		_name = readS();
 	}
 	}
 
 
 	@Override
 	@Override
 	protected void runImpl()
 	protected void runImpl()
 	{
 	{
-        L2PcInstance player = getClient().getActiveChar();
-	if (player == null)
-	    return;
-        /*if (player.getCreateList() == null)
-        {
-            player.setCreateList(new L2ManufactureList());
-        }*/
-        if (player.getCreateList() != null)
-        {
-            player.getCreateList().setStoreName(_name);
-        }
-
-    }
-
-    @Override
+		final L2PcInstance player = getClient().getActiveChar();
+		if (player == null)
+			return;
+
+		if (_name != null && _name.length() > MAX_MSG_LENGTH)
+		{
+			Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to overflow recipe shop message", Config.DEFAULT_PUNISH);
+			return;
+		}
+
+		if (player.getCreateList() != null)
+			player.getCreateList().setStoreName(_name);
+	}
+
+	@Override
 	public String getType()
 	public String getType()
-    {
-        return _C__B1_RequestRecipeShopMessageSet;
-    }
+	{
+		return _C__B1_RequestRecipeShopMessageSet;
+	}
 }
 }

+ 13 - 3
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreMsgBuy.java

@@ -14,8 +14,10 @@
  */
  */
 package com.l2jserver.gameserver.network.clientpackets;
 package com.l2jserver.gameserver.network.clientpackets;
 
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.serverpackets.PrivateStoreMsgBuy;
 import com.l2jserver.gameserver.network.serverpackets.PrivateStoreMsgBuy;
+import com.l2jserver.gameserver.util.Util;
 
 
 /**
 /**
  * This class ...
  * This class ...
@@ -26,7 +28,9 @@ public final class SetPrivateStoreMsgBuy extends L2GameClientPacket
 {
 {
 	private static final String _C__94_SETPRIVATESTOREMSGBUY = "[C] 94 SetPrivateStoreMsgBuy";
 	private static final String _C__94_SETPRIVATESTOREMSGBUY = "[C] 94 SetPrivateStoreMsgBuy";
 	//private static Logger _log = Logger.getLogger(SetPrivateStoreMsgBuy.class.getName());
 	//private static Logger _log = Logger.getLogger(SetPrivateStoreMsgBuy.class.getName());
-	
+
+	private static final int MAX_MSG_LENGTH = 29;
+
 	private String _storeMsg;
 	private String _storeMsg;
 	
 	
 	@Override
 	@Override
@@ -38,10 +42,16 @@ public final class SetPrivateStoreMsgBuy extends L2GameClientPacket
 	@Override
 	@Override
 	protected void runImpl()
 	protected void runImpl()
 	{
 	{
-		L2PcInstance player = getClient().getActiveChar();
+		final L2PcInstance player = getClient().getActiveChar();
 		if (player == null || player.getBuyList() == null)
 		if (player == null || player.getBuyList() == null)
 			return;
 			return;
-		
+	
+		if (_storeMsg != null && _storeMsg.length() > MAX_MSG_LENGTH)
+		{
+			Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to overflow private store buy message", Config.DEFAULT_PUNISH);
+			return;
+		}
+
 		player.getBuyList().setTitle(_storeMsg);
 		player.getBuyList().setTitle(_storeMsg);
 		player.sendPacket(new PrivateStoreMsgBuy(player));
 		player.sendPacket(new PrivateStoreMsgBuy(player));
 	}
 	}

+ 13 - 3
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreMsgSell.java

@@ -14,8 +14,10 @@
  */
  */
 package com.l2jserver.gameserver.network.clientpackets;
 package com.l2jserver.gameserver.network.clientpackets;
 
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.serverpackets.PrivateStoreMsgSell;
 import com.l2jserver.gameserver.network.serverpackets.PrivateStoreMsgSell;
+import com.l2jserver.gameserver.util.Util;
 
 
 /**
 /**
  * This class ...
  * This class ...
@@ -26,7 +28,9 @@ public class SetPrivateStoreMsgSell extends L2GameClientPacket
 {
 {
 	private static final String _C__77_SETPRIVATESTOREMSGSELL = "[C] 77 SetPrivateStoreMsgSell";
 	private static final String _C__77_SETPRIVATESTOREMSGSELL = "[C] 77 SetPrivateStoreMsgSell";
 	//private static Logger _log = Logger.getLogger(SetPrivateStoreMsgSell.class.getName());
 	//private static Logger _log = Logger.getLogger(SetPrivateStoreMsgSell.class.getName());
-	
+
+	private static final int MAX_MSG_LENGTH = 29;
+
 	private String _storeMsg;
 	private String _storeMsg;
 	
 	
 	@Override
 	@Override
@@ -38,10 +42,16 @@ public class SetPrivateStoreMsgSell extends L2GameClientPacket
 	@Override
 	@Override
 	protected void runImpl()
 	protected void runImpl()
 	{
 	{
-		L2PcInstance player = getClient().getActiveChar();
+		final L2PcInstance player = getClient().getActiveChar();
 		if (player == null || player.getSellList() == null)
 		if (player == null || player.getSellList() == null)
 			return;
 			return;
-		
+
+		if (_storeMsg != null && _storeMsg.length() > MAX_MSG_LENGTH)
+		{
+			Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to overflow private store sell message", Config.DEFAULT_PUNISH);
+			return;
+		}
+
 		player.getSellList().setTitle(_storeMsg);
 		player.getSellList().setTitle(_storeMsg);
 		sendPacket(new PrivateStoreMsgSell(player));
 		sendPacket(new PrivateStoreMsgSell(player));
 	}
 	}

+ 12 - 2
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/SetPrivateStoreWholeMsg.java

@@ -14,8 +14,10 @@
  */
  */
 package com.l2jserver.gameserver.network.clientpackets;
 package com.l2jserver.gameserver.network.clientpackets;
 
 
+import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.serverpackets.ExPrivateStoreSetWholeMsg;
 import com.l2jserver.gameserver.network.serverpackets.ExPrivateStoreSetWholeMsg;
+import com.l2jserver.gameserver.util.Util;
 
 
 /**
 /**
  *
  *
@@ -23,6 +25,8 @@ import com.l2jserver.gameserver.network.serverpackets.ExPrivateStoreSetWholeMsg;
  */
  */
 public class SetPrivateStoreWholeMsg extends L2GameClientPacket
 public class SetPrivateStoreWholeMsg extends L2GameClientPacket
 {
 {
+	private static final int MAX_MSG_LENGTH = 29;
+
 	private String _msg;
 	private String _msg;
 	
 	
 	/**
 	/**
@@ -49,10 +53,16 @@ public class SetPrivateStoreWholeMsg extends L2GameClientPacket
 	@Override
 	@Override
 	protected void runImpl()
 	protected void runImpl()
 	{
 	{
-		L2PcInstance player = getClient().getActiveChar();
+		final L2PcInstance player = getClient().getActiveChar();
 		if (player == null || player.getSellList() == null)
 		if (player == null || player.getSellList() == null)
 			return;
 			return;
-		
+
+		if (_msg != null && _msg.length() > MAX_MSG_LENGTH)
+		{
+			Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to overflow private store whole message", Config.DEFAULT_PUNISH);
+			return;
+		}
+
 		player.getSellList().setTitle(_msg);
 		player.getSellList().setTitle(_msg);
 		sendPacket(new ExPrivateStoreSetWholeMsg(player));
 		sendPacket(new ExPrivateStoreSetWholeMsg(player));
 	}
 	}