From 115f32171d58b2789beb1876a746faab6fa4c91c Mon Sep 17 00:00:00 2001 From: nkzawa Date: Tue, 11 Jul 2017 18:16:49 +0900 Subject: [PATCH] parser: check empty arg --- src/main/java/io/socket/engineio/parser/Parser.java | 4 ++++ src/test/java/io/socket/engineio/parser/ParserTest.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/io/socket/engineio/parser/Parser.java b/src/main/java/io/socket/engineio/parser/Parser.java index 010ba9c..c34dce5 100644 --- a/src/main/java/io/socket/engineio/parser/Parser.java +++ b/src/main/java/io/socket/engineio/parser/Parser.java @@ -76,6 +76,10 @@ public class Parser { } public static Packet decodePacket(String data, boolean utf8decode) { + if (data == null) { + return err; + } + int type; try { type = Character.getNumericValue(data.charAt(0)); diff --git a/src/test/java/io/socket/engineio/parser/ParserTest.java b/src/test/java/io/socket/engineio/parser/ParserTest.java index a904312..86b7c7f 100644 --- a/src/test/java/io/socket/engineio/parser/ParserTest.java +++ b/src/test/java/io/socket/engineio/parser/ParserTest.java @@ -156,6 +156,13 @@ public class ParserTest { }); } + @Test + public void decodeEmptyPayload() { + Packet p = decodePacket((String)null); + assertThat(p.type, is(Packet.ERROR)); + assertThat(p.data, is(ERROR_DATA)); + } + @Test public void decodeBadFormat() { Packet p = decodePacket(":::");