]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_http2: update to version 2.0.40
authorStefan Eissing <icing@apache.org>
Tue, 26 May 2026 07:42:30 +0000 (07:42 +0000)
committerStefan Eissing <icing@apache.org>
Tue, 26 May 2026 07:42:30 +0000 (07:42 +0000)
     Fix error handling on upload requests when server runs out of file
     handles that left beam bucket callbacks in place, potentially using
     no longer valid references. Only applies on platforms with pipes
     and file descriptor limits not healthy for a network server.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1934628 13f79535-47bb-0310-9956-ffa450edef68

changes-entries/h2_v2.0.40.txt [new file with mode: 0644]
modules/http2/h2_mplx.c
modules/http2/h2_version.h

diff --git a/changes-entries/h2_v2.0.40.txt b/changes-entries/h2_v2.0.40.txt
new file mode 100644 (file)
index 0000000..d8c7718
--- /dev/null
@@ -0,0 +1,6 @@
+  *) mod_http2: update to version 2.0.40
+     Fix error handling on upload requests when server runs out of file
+     handles that left beam bucket callbacks in place, potentially using
+     no longer valid references. Only applies on platforms with pipes
+     and file descriptor limits not healthy for a network server.
+     [Stefan Eissing]
index 8053f60c9a28e29d4e071aa1724e16dd5b972b40..c50e15ccd5d8f317bbace70af4d8ac985768471e 100644 (file)
@@ -880,9 +880,6 @@ static apr_status_t c2_setup_io(h2_mplx *m, conn_rec *c2, h2_stream *stream, h2_
     memset(&conn_ctx->pipe_in, 0, sizeof(conn_ctx->pipe_in));
     if (stream->input) {
         conn_ctx->beam_in = stream->input;
-        h2_beam_on_send(stream->input, c2_beam_input_write_notify, c2);
-        h2_beam_on_received(stream->input, c2_beam_input_read_notify, c2);
-        h2_beam_on_consumed(stream->input, c1_input_consumed, stream);
 #if H2_USE_PIPES
         action = "create input write pipe";
         rv = apr_file_pipe_create_pools(&conn_ctx->pipe_in[H2_PIPE_OUT],
@@ -891,6 +888,9 @@ static apr_status_t c2_setup_io(h2_mplx *m, conn_rec *c2, h2_stream *stream, h2_
                                         c2->pool, c2->pool);
         if (APR_SUCCESS != rv) goto cleanup;
 #endif
+        h2_beam_on_send(stream->input, c2_beam_input_write_notify, c2);
+        h2_beam_on_received(stream->input, c2_beam_input_read_notify, c2);
+        h2_beam_on_consumed(stream->input, c1_input_consumed, stream);
         h2_beam_on_eagain(stream->input, c2_beam_input_read_eagain, c2);
         if (!h2_beam_empty(stream->input))
             c2_beam_input_write_notify(c2, stream->input);
index 077e778e1269013f1bf3f34547999162e998fb58..1d7113f58bdcd7e836e66dd528b2ab94a085ebda 100644 (file)
@@ -27,7 +27,7 @@
  * @macro
  * Version number of the http2 module as c string
  */
-#define MOD_HTTP2_VERSION "2.0.39"
+#define MOD_HTTP2_VERSION "2.0.40"
 
 /**
  * @macro
@@ -35,7 +35,7 @@
  * release. This is a 24 bit number with 8 bits for major number, 8 bits
  * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
  */
-#define MOD_HTTP2_VERSION_NUM 0x020027
+#define MOD_HTTP2_VERSION_NUM 0x020028
 
 
 #endif /* mod_h2_h2_version_h */