From 0925c06f9b1eaeba7e0028e3cbacb15991a2e075 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 13 Nov 2023 20:09:48 +1300 Subject: [PATCH] #3563: Correct max string length for reading SystemChat packets --- .../main/java/net/md_5/bungee/protocol/DefinedPacket.java | 7 ++++++- .../java/net/md_5/bungee/protocol/packet/SystemChat.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java index ad7f9c25..d7d5d849 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java @@ -79,6 +79,11 @@ public abstract class DefinedPacket } public static BaseComponent readBaseComponent(ByteBuf buf, int protocolVersion) + { + return readBaseComponent( buf, Short.MAX_VALUE, protocolVersion ); + } + + public static BaseComponent readBaseComponent(ByteBuf buf, int maxStringLength, int protocolVersion) { if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_3 ) { @@ -88,7 +93,7 @@ public abstract class DefinedPacket return ComponentSerializer.deserialize( json ); } else { - String string = readString( buf ); + String string = readString( buf, maxStringLength ); return ComponentSerializer.deserialize( string ); } diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/SystemChat.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/SystemChat.java index 36dea975..7bad3d2b 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/SystemChat.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/SystemChat.java @@ -24,7 +24,7 @@ public class SystemChat extends DefinedPacket @Override public void read(ByteBuf buf, ProtocolConstants.Direction direction, int protocolVersion) { - message = readBaseComponent( buf, protocolVersion ); + message = readBaseComponent( buf, 262144, protocolVersion ); position = ( protocolVersion >= ProtocolConstants.MINECRAFT_1_19_1 ) ? ( ( buf.readBoolean() ) ? ChatMessageType.ACTION_BAR.ordinal() : 0 ) : readVarInt( buf ); }