]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) mod_http2: v2.0.26 with the following fixes:
authorStefan Eissing <icing@apache.org>
Wed, 17 Jan 2024 08:38:02 +0000 (08:38 +0000)
committerStefan Eissing <icing@apache.org>
Wed, 17 Jan 2024 08:38:02 +0000 (08:38 +0000)
     - Fixed `Date` header on requests upgraded from HTTP/1.1 (h2c). Fixes
       <https://github.com/icing/mod_h2/issues/272>.
     - Fixed small memory leak in h2 header bucket free. Thanks to
       Michael Kaufmann for finding this and providing the fix.

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

changes-entries/h2_date_and_bucket_leak.txt [new file with mode: 0644]
modules/http2/h2.h
modules/http2/h2_headers.c
modules/http2/h2_request.c
modules/http2/h2_version.h

diff --git a/changes-entries/h2_date_and_bucket_leak.txt b/changes-entries/h2_date_and_bucket_leak.txt
new file mode 100644 (file)
index 0000000..3144d5a
--- /dev/null
@@ -0,0 +1,6 @@
+  *) mod_http2: v2.0.26 with the following fixes:
+     - Fixed `Date` header on requests upgraded from HTTP/1.1 (h2c). Fixes
+       <https://github.com/icing/mod_h2/issues/272>.
+     - Fixed small memory leak in h2 header bucket free. Thanks to
+       Michael Kaufmann for finding this and providing the fix.
+
index 30ad9904436ee56cf4425a7c1a3b985054b1a164..f496a6dcb2bd1bf21b21935978627606d2160328 100644 (file)
@@ -35,7 +35,7 @@ struct h2_stream;
 #define H2_USE_PIPES            (APR_FILES_AS_SOCKETS && APR_VERSION_AT_LEAST(1,6,0))
 #endif
 
-#if AP_MODULE_MAGIC_AT_LEAST(20211221, 15)
+#if AP_MODULE_MAGIC_AT_LEAST(20120211, 129)
 #define H2_USE_POLLFD_FROM_CONN 1
 #else
 #define H2_USE_POLLFD_FROM_CONN 0
index 0fc1d91d6a265279c63f3d779312a4d389627d45..d9b3fd09b064bdd659b1c7a2640fa2a4a3e52914 100644 (file)
@@ -90,9 +90,18 @@ h2_headers *h2_bucket_headers_get(apr_bucket *b)
     return NULL;
 }
 
+static void bucket_destroy(void *data)
+{
+    h2_bucket_headers *h = data;
+
+    if (apr_bucket_shared_destroy(h)) {
+        apr_bucket_free(h);
+    }
+}
+
 const apr_bucket_type_t h2_bucket_type_headers = {
     "H2HEADERS", 5, APR_BUCKET_METADATA,
-    apr_bucket_destroy_noop,
+    bucket_destroy,
     bucket_read,
     apr_bucket_setaside_noop,
     apr_bucket_split_notimpl,
index de312e5889522d067b14fa02d9abc7352d57d3eb..2713947c37769aa979a1d2cfa2b10eb3b88b13ca 100644 (file)
@@ -120,6 +120,7 @@ apr_status_t h2_request_rcreate(h2_request **preq, apr_pool_t *pool,
     req->path        = path;
     req->headers     = apr_table_make(pool, 10);
     req->http_status = H2_HTTP_STATUS_UNSET;
+    req->request_time = apr_time_now();
 
     x.pool = pool;
     x.headers = req->headers;
index cf89154e90e10b5954a7805ed3f90e3568fde96c..80cec134156be8c03fd556e012fc9bf6668e2d21 100644 (file)
@@ -27,7 +27,7 @@
  * @macro
  * Version number of the http2 module as c string
  */
-#define MOD_HTTP2_VERSION "2.0.21"
+#define MOD_HTTP2_VERSION "2.0.26"
 
 /**
  * @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 0x020015
+#define MOD_HTTP2_VERSION_NUM 0x02001a
 
 
 #endif /* mod_h2_h2_version_h */