This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new aa82c7940d Fix HALF_CLOSED_REMOTE unexpected frames handling
aa82c7940d is described below
commit aa82c7940d03a47ed9f5afacf4ae963c46921637
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 2ff7f8e3ed..9ceaf06f8b 100644
--- a/java/org/apache/coyote/http2/StreamStateMachine.java
+++ b/java/org/apache/coyote/http2/StreamStateMachine.java
@@ -188,7 +188,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 87ea221fe7..69944bce7f 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -170,6 +170,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="Cluster">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]