From 49038909ac940a1e6ccda7dd8d71fedf71f3bdb9 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Fri, 12 Oct 2018 14:28:52 +0100 Subject: [PATCH] Ignore empty packets This patch puts the proxy more inline with the client in that empty packets will be ignored. While empty packets are a sign of bad plugins, they are effectivly harmless vs the cost of the exception in general diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java index 2207c3ff..655bcd46 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftDecoder.java @@ -45,6 +45,12 @@ public class MinecraftDecoder extends MessageToMessageDecoder Object packetTypeInfo = null; try { + // Waterfall start + if (in.readableBytes() == 0 && !server) { + return; + } + // Waterfall end + int packetId = DefinedPacket.readVarInt( in ); packetTypeInfo = packetId; diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java b/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java index 277e70e8..cf7dea17 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Varint21FrameDecoder.java @@ -40,7 +40,7 @@ public class Varint21FrameDecoder extends ByteToMessageDecoder if ( buf[i] >= 0 ) { int length = DefinedPacket.readVarInt( Unpooled.wrappedBuffer( buf ) ); - if ( length == 0 ) + if ( false && length == 0) // Waterfall - ignore { throw new CorruptedFrameException( "Empty Packet!" ); } -- 2.44.0