diff --git a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Stream.java b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Stream.java index f8360ab0d096..3262d94e9a5b 100644 --- a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Stream.java +++ b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Stream.java @@ -320,7 +320,7 @@ private void onData(DataFrame frame, Callback callback) if (dataLength != Long.MIN_VALUE) { dataLength -= frame.remaining(); - if (frame.isEndStream() && dataLength != 0) + if (dataLength < 0 || (frame.isEndStream() && dataLength != 0)) { reset(new ResetFrame(streamId, ErrorCode.PROTOCOL_ERROR.code), Callback.NOOP); callback.failed(new IOException("invalid_data_length"));