diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/cookie/ClientCookieDecoder.java b/codec-http/src/main/java/io/netty/handler/codec/http/cookie/ClientCookieDecoder.java index e391c2144f..74cace7385 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/cookie/ClientCookieDecoder.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/cookie/ClientCookieDecoder.java @@ -140,7 +140,7 @@ public final class ClientCookieDecoder extends CookieDecoder { cookieBuilder.appendAttribute(nameBegin, nameEnd, valueBegin, valueEnd); } } - return cookieBuilder.cookie(); + return cookieBuilder != null ? cookieBuilder.cookie() : null; } private static class CookieBuilder { diff --git a/codec-http/src/test/java/io/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java b/codec-http/src/test/java/io/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java index 60b85899c6..2cd69f98dc 100644 --- a/codec-http/src/test/java/io/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java +++ b/codec-http/src/test/java/io/netty/handler/codec/http/cookie/ClientCookieDecoderTest.java @@ -203,6 +203,13 @@ public class ClientCookieDecoderTest { assertNull(cookie); } + @Test + public void testDecodingInvalidValuesWithCommaAtStart() { + assertNull(ClientCookieDecoder.STRICT.decode(",")); + assertNull(ClientCookieDecoder.STRICT.decode(",a")); + assertNull(ClientCookieDecoder.STRICT.decode(",a=a")); + } + @Test public void testDecodingLongValue() { String longValue =