aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/ComplexItemDataPacket.cpp
diff options
context:
space:
mode:
authorLoki Rautio <lokirautio@gmail.com>2026-03-09 04:45:14 -0500
committerLoki Rautio <lokirautio@gmail.com>2026-03-09 04:45:14 -0500
commitd557ca2dfba5ffcca99ceb41b07d149f871964b5 (patch)
tree89ef5bd5fdb2a86fe10a5dead65b65bce8aa0a1d /Minecraft.World/ComplexItemDataPacket.cpp
parent0c4f4599045edad935403e4d79d28f6b9aa95833 (diff)
LCEMP RCE fixes
Based on commit d017bfc30a68888bf5c79b23cf5c4f607cf828bf
Diffstat (limited to 'Minecraft.World/ComplexItemDataPacket.cpp')
-rw-r--r--Minecraft.World/ComplexItemDataPacket.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Minecraft.World/ComplexItemDataPacket.cpp b/Minecraft.World/ComplexItemDataPacket.cpp
index 38c39cb6..98eeb9de 100644
--- a/Minecraft.World/ComplexItemDataPacket.cpp
+++ b/Minecraft.World/ComplexItemDataPacket.cpp
@@ -32,7 +32,12 @@ void ComplexItemDataPacket::read(DataInputStream *dis) //throws IOException
itemType = dis->readShort();
itemId = dis->readShort();
- data = charArray(dis->readUnsignedShort() & 0xffff);
+ int dataLength = dis->readShort() & 0xffff;
+ if (dataLength > 32767)
+ {
+ dataLength = 0;
+ }
+ data = charArray(dataLength);
dis->readFully(data);
}