]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1915281 from trunk:
authorJoe Orton <jorton@apache.org>
Tue, 19 Mar 2024 08:38:00 +0000 (08:38 +0000)
committerJoe Orton <jorton@apache.org>
Tue, 19 Mar 2024 08:38:00 +0000 (08:38 +0000)
  *) 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.

Submitted by: icing
Reviewed by: icing, gbechis, jorton

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1916413 13f79535-47bb-0310-9956-ffa450edef68

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

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 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;