This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/11.0.x by this push:
     new 322a493cd7 Fix HALF_CLOSED_REMOTE unexpected frames handling
322a493cd7 is described below

commit 322a493cd7e452e7d8f3882fa4180f50502854de
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 b12fac47f6..695a6c4936 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -186,6 +186,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]

Reply via email to