From a294666b73306af83ef4b4416721a0d67754272b Mon Sep 17 00:00:00 2001 From: Tux Date: Tue, 25 Oct 2016 12:34:41 -0400 Subject: [PATCH] Validate that chat messages are non-blank diff --git a/proxy/src/main/java/io/github/waterfallmc/waterfall/StringUtil.java b/proxy/src/main/java/io/github/waterfallmc/waterfall/StringUtil.java new file mode 100644 index 00000000..940ad806 --- /dev/null +++ b/proxy/src/main/java/io/github/waterfallmc/waterfall/StringUtil.java @@ -0,0 +1,22 @@ +package io.github.waterfallmc.waterfall; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class StringUtil { + public static boolean isBlank(String str) { + if (str.isEmpty()) { + return true; + } + + int l = str.length(); + for (int i = 0; i < l; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + return false; + } + } + + return true; + } +} diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java index 2526ef16..6b79875d 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -1,6 +1,7 @@ package net.md_5.bungee.connection; import com.google.common.base.Preconditions; +import io.github.waterfallmc.waterfall.StringUtil; import io.netty.channel.Channel; import java.util.ArrayList; import java.util.List; @@ -131,6 +132,7 @@ public class UpstreamBridge extends PacketHandler { int maxLength = ( con.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_11 ) ? 256 : 100; Preconditions.checkArgument( chat.getMessage().length() <= maxLength, "Chat message too long" ); // Mojang limit, check on updates + Preconditions.checkArgument(!StringUtil.isBlank(chat.getMessage()), "Chat message is empty"); ChatEvent chatEvent = new ChatEvent( con, con.getServer(), chat.getMessage() ); if ( !bungee.getPluginManager().callEvent( chatEvent ).isCancelled() ) -- 2.14.1