From 705db6cf2aa8ae92540bca23091f8cf23f516538 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Mon, 4 Jan 2016 14:29:21 +0100 Subject: [PATCH] Correctly reset MessageDigest before reusing it. Motivation: I missed to reset the MessageDigest before reusing it. This bug was introduced by 79634e661b000b5f229fdde20e44fdeab15c5ae2. Modifications: Call reset() on the MessageDigest. Result: Correctly reset MessageDigest before re-using --- .../handler/codec/http/websocketx/WebSocketUtil.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketUtil.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketUtil.java index 1066cd850e..defdd41f3c 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketUtil.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketUtil.java @@ -63,7 +63,7 @@ final class WebSocketUtil { */ static byte[] md5(byte[] data) { // TODO(normanmaurer): Create md5 method that not need MessageDigest. - return MD5.get().digest(data); + return digest(MD5, data); } /** @@ -74,7 +74,13 @@ final class WebSocketUtil { */ static byte[] sha1(byte[] data) { // TODO(normanmaurer): Create sha1 method that not need MessageDigest. - return SHA1.get().digest(data); + return digest(SHA1, data); + } + + private static byte[] digest(FastThreadLocal digestFastThreadLocal, byte[] data) { + MessageDigest digest = digestFastThreadLocal.get(); + digest.reset(); + return digest.digest(data); } /**