This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 6775db6430 Fix HALF_CLOSED_REMOTE unexpected frames handling
6775db6430 is described below
commit 6775db64307e605e736ceabea6093696c6981c13
Author: remm <[email protected]>
AuthorDate: Mon Aug 31 13:32:49 2026 +0200
Fix HALF_CLOSED_REMOTE unexpected frames handling
RFC 9113 5.1
half-closed (remote):
A stream that is "half-closed (remote)" is no longer being used by the
peer to send frames. In this state, an endpoint is no longer obligated
to maintain a receiver flow-control window.
If an endpoint receives additional frames, other than WINDOW_UPDATE,
PRIORITY, or RST_STREAM, for a stream that is in this state, it MUST
respond with a stream error (Section 5.4.2) of type STREAM_CLOSED.
---
java/org/apache/coyote/http2/StreamStateMachine.java | 2 +-
webapps/docs/changelog.xml | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/java/org/apache/coyote/http2/StreamStateMachine.java
b/java/org/apache/coyote/http2/StreamStateMachine.java
index be02a4de5a..b8c4e2fe63 100644
--- a/java/org/apache/coyote/http2/StreamStateMachine.java
+++ b/java/org/apache/coyote/http2/StreamStateMachine.java
@@ -183,7 +183,7 @@ class StreamStateMachine {
FrameType.RST,
FrameType.PUSH_PROMISE,
FrameType.WINDOW_UPDATE),
- HALF_CLOSED_REMOTE (false, true, true, true,
+ HALF_CLOSED_REMOTE (false, true, true, false,
Http2Error.STREAM_CLOSED, FrameType.PRIORITY,
FrameType.RST,
FrameType.WINDOW_UPDATE),
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index a6ae7ba765..44dffdd6ef 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -341,6 +341,10 @@
<fix>
Align xreflection better with IntrospectionUtils. (remm)
</fix>
+ <fix>
+ In HTTP/2 after half closed (remote), any unexpected frame should be
+ a stream error. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]