From baaa6c65056ba71fe5e3d85e60ebb6ddbfc5370c Mon Sep 17 00:00:00 2001 From: Ben Staddon Date: Sun, 12 Nov 2017 18:38:10 +0000 Subject: [PATCH] Fix buffer leak in vanilla custom payload packet handling (#4512) --- .../client/network/NetHandlerPlayClient.java.patch | 8 ++++++++ .../network/play/server/SPacketCustomPayload.java.patch | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch index 1ba0ffbdb9..a15519d23b 100644 --- a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch @@ -82,3 +82,11 @@ if (potion != null) { +@@ -1856,6 +1867,7 @@ + } + finally + { ++ if (false) // Forge: let packet handle releasing buffer + packetbuffer.release(); + } + } diff --git a/patches/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java.patch b/patches/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java.patch index 01ef581c1f..bd9426ff2d 100644 --- a/patches/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java.patch +++ b/patches/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java.patch @@ -1,6 +1,6 @@ --- ../src-base/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java +++ ../src-work/minecraft/net/minecraft/network/play/server/SPacketCustomPayload.java -@@ -46,7 +46,11 @@ +@@ -46,12 +46,18 @@ public void func_148840_b(PacketBuffer p_148840_1_) throws IOException { p_148840_1_.func_180714_a(this.field_149172_a); @@ -12,3 +12,10 @@ } public void func_148833_a(INetHandlerPlayClient p_148833_1_) + { + p_148833_1_.func_147240_a(this); ++ // Forge: fix network buffer leaks (MC-121884) ++ if (this.field_149171_b != null) this.field_149171_b.release(); + } + + @SideOnly(Side.CLIENT)