diff --git a/modules/http2/h2_stream.c b/modules/http2/h2_stream.c index 44969cf0881..d667df3b760 100644 --- a/modules/http2/h2_stream.c +++ b/modules/http2/h2_stream.c @@ -1169,7 +1169,7 @@ static apr_status_t stream_do_trailers(h2_stream *stream) if (APR_BUCKET_IS_METADATA(b)) { #if AP_HAS_RESPONSE_BUCKETS if (AP_BUCKET_IS_HEADERS(b)) { - headers = b->data; + headers = apr_pmemdup(stream->pool, b->data, sizeof(*headers)); #else /* AP_HAS_RESPONSE_BUCKETS */ if (H2_BUCKET_IS_HEADERS(b)) { headers = h2_bucket_headers_get(b); @@ -1609,7 +1609,7 @@ static apr_status_t stream_do_response(h2_stream *stream) if (APR_BUCKET_IS_METADATA(b)) { #if AP_HAS_RESPONSE_BUCKETS if (AP_BUCKET_IS_RESPONSE(b)) { - resp = b->data; + resp = apr_pmemdup(stream->pool, b->data, sizeof(*resp)); #else /* AP_HAS_RESPONSE_BUCKETS */ if (H2_BUCKET_IS_HEADERS(b)) { resp = h2_bucket_headers_get(b);