From bfc73d87f0174e53224e7183dc5cb7df631224bc Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Mon, 20 Jan 2014 13:44:07 +1100 Subject: [PATCH] Catch stalling on corrupted map data / NBT arrays. By: md_5 --- .../sources/net/minecraft/nbt/ByteArrayTag.java.patch | 8 ++++++++ .../sources/net/minecraft/nbt/IntArrayTag.java.patch | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/paper-server/patches/sources/net/minecraft/nbt/ByteArrayTag.java.patch b/paper-server/patches/sources/net/minecraft/nbt/ByteArrayTag.java.patch index 8425cde14a9..d7c707925b4 100644 --- a/paper-server/patches/sources/net/minecraft/nbt/ByteArrayTag.java.patch +++ b/paper-server/patches/sources/net/minecraft/nbt/ByteArrayTag.java.patch @@ -5,3 +5,11 @@ package net.minecraft.nbt; import java.io.DataInput; +@@ -24,6 +25,7 @@ + private static byte[] readAccounted(DataInput input, NbtAccounter tracker) throws IOException { + tracker.accountBytes(24L); + int i = input.readInt(); ++ com.google.common.base.Preconditions.checkArgument( i < 1 << 24); // Spigot + + tracker.accountBytes(1L, (long) i); + byte[] abyte = new byte[i]; diff --git a/paper-server/patches/sources/net/minecraft/nbt/IntArrayTag.java.patch b/paper-server/patches/sources/net/minecraft/nbt/IntArrayTag.java.patch index 84a9ce8372f..97872e33398 100644 --- a/paper-server/patches/sources/net/minecraft/nbt/IntArrayTag.java.patch +++ b/paper-server/patches/sources/net/minecraft/nbt/IntArrayTag.java.patch @@ -5,3 +5,11 @@ package net.minecraft.nbt; import java.io.DataInput; +@@ -24,6 +25,7 @@ + private static int[] readAccounted(DataInput input, NbtAccounter tracker) throws IOException { + tracker.accountBytes(24L); + int i = input.readInt(); ++ com.google.common.base.Preconditions.checkArgument( i < 1 << 24); // Spigot + + tracker.accountBytes(4L, (long) i); + int[] aint = new int[i];