From 80858976f26db3c8af5a905601720f2e8f0b8eca Mon Sep 17 00:00:00 2001 From: Greg Ames Date: Mon, 24 Mar 2003 16:39:25 +0000 Subject: [PATCH] ap_get_mime_headers_core: allocate space for the trailing null when there are folded headers. PR 18170 [Peter Mayne ] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99057 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ server/protocol.c | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index ad75a880e5..1031649a72 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.1.0-dev [Remove entries to the current 2.0 section below, when backported] + *) ap_get_mime_headers_core: allocate space for the trailing null + when folding is in effect. + PR 18170 [Peter Mayne ] + *) Do not bypass output filters when redirecting subrequests internally. PR 17629. [André Malo] diff --git a/server/protocol.c b/server/protocol.c index 84c17338e0..e23ad88ac1 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -798,11 +798,12 @@ AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb * doing O(n) allocs and using O(n^2) space for * continuations that span many many lines. */ - if (last_len + len > alloc_len) { + apr_size_t fold_len = last_len + len + 1; /* trailing null */ + if (fold_len > alloc_len) { char *fold_buf; alloc_len += alloc_len; - if (last_len + len > alloc_len) { - alloc_len = last_len + len; + if (fold_len > alloc_len) { + alloc_len = fold_len; } fold_buf = (char *)apr_palloc(r->pool, alloc_len); memcpy(fold_buf, last_field, last_len); -- 2.40.0