From 3bc210a1f1cd4cdfe6e5b257944dbddaf8b452d8 Mon Sep 17 00:00:00 2001 From: Ben Steffensmeier Date: Mon, 10 Feb 2014 17:39:32 -0600 Subject: [PATCH] Issue #2672 Allow One extra null byte in RemoteRequestRouteWrapper. Former-commit-id: 40bc9df42043ea8dc303251cf7cd80a5455047bb [formerly 7463bf7c3efbdf8eb184f24bfc9c6a12c57d5006] Former-commit-id: 3d08979eeec11322a5f4f1adce425df037e2c659 --- .../uf/edex/auth/RemoteRequestRouteWrapper.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/edexOsgi/com.raytheon.uf.edex.auth/src/com/raytheon/uf/edex/auth/RemoteRequestRouteWrapper.java b/edexOsgi/com.raytheon.uf.edex.auth/src/com/raytheon/uf/edex/auth/RemoteRequestRouteWrapper.java index 69508e55b3..8b9ef16e7d 100644 --- a/edexOsgi/com.raytheon.uf.edex.auth/src/com/raytheon/uf/edex/auth/RemoteRequestRouteWrapper.java +++ b/edexOsgi/com.raytheon.uf.edex.auth/src/com/raytheon/uf/edex/auth/RemoteRequestRouteWrapper.java @@ -67,7 +67,18 @@ public class RemoteRequestRouteWrapper { Object obj = SerializationUtil.transformFromThrift(Object.class, data); int remaining = data.available(); - if (remaining > 0) { + if (remaining == 1) { + int tail = data.read(); + /* + * When http proxies are being used there is a single null + * character at the end of the message, no need to panic. + */ + if (tail != 0x00) { + throw new IllegalStateException( + "Unexpected byte remaining after deserialization: " + + tail); + } + } else if (remaining > 0) { throw new IllegalStateException(remaining + " unexpected bytes remaining after deserialization"); }