1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
subject: Fix http2 segfault
from: Thorsten Glaser <tg@debian.org>
origin: from https://github.com/icing/mod_h2/issues/313#issuecomment-3834622658
Index: apache2/modules/http2/h2_session.c
===================================================================
--- apache2.orig/modules/http2/h2_session.c 2026-03-01 14:23:09.430686940 +0100
+++ apache2/modules/http2/h2_session.c 2026-03-01 14:23:09.427877302 +0100
@@ -111,29 +111,13 @@
h2_mplx_c1_streams_do(session->mplx, rst_unprocessed_stream, session);
}
-/* APR callback invoked if allocation fails. */
-static int abort_on_oom(int retcode)
-{
- ap_abort_on_oom();
- return retcode; /* unreachable, hopefully. */
-}
-
static h2_stream *h2_session_open_stream(h2_session *session, int stream_id,
int initiated_on)
{
h2_stream * stream;
- apr_allocator_t *allocator;
apr_pool_t *stream_pool;
- apr_status_t rv;
-
- rv = apr_allocator_create(&allocator);
- if (rv != APR_SUCCESS)
- return NULL;
- apr_allocator_max_free_set(allocator, ap_max_mem_free);
- apr_pool_create_ex(&stream_pool, session->pool, NULL, allocator);
- apr_allocator_owner_set(allocator, stream_pool);
- apr_pool_abort_set(abort_on_oom, stream_pool);
+ apr_pool_create(&stream_pool, session->pool);
apr_pool_tag(stream_pool, "h2_stream");
stream = h2_stream_create(stream_id, stream_pool, session,
|