summaryrefslogtreecommitdiff
path: root/srclib/apr-util/buckets/apr_brigade.c
diff options
context:
space:
mode:
authorStefan Fritsch <sf@sfritsch.de>2011-12-27 19:43:04 +0100
committerStefan Fritsch <sf@sfritsch.de>2011-12-27 19:43:04 +0100
commit498ea95018b369e62646a98c7d7d5413b56e170c (patch)
treeb7c4798010bbb18d4d2c07f722d7fb0d38efd24c /srclib/apr-util/buckets/apr_brigade.c
parente8bb7adda7f73e53cdab823e9cab2a49ccbdf188 (diff)
downloadapache2-498ea95018b369e62646a98c7d7d5413b56e170c.tar.gz
Upstream tarball 2.2.17upstream/2.2.17
Diffstat (limited to 'srclib/apr-util/buckets/apr_brigade.c')
-rw-r--r--srclib/apr-util/buckets/apr_brigade.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/srclib/apr-util/buckets/apr_brigade.c b/srclib/apr-util/buckets/apr_brigade.c
index 77adefff..3fd7e46f 100644
--- a/srclib/apr-util/buckets/apr_brigade.c
+++ b/srclib/apr-util/buckets/apr_brigade.c
@@ -331,7 +331,18 @@ APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
return APR_SUCCESS;
}
APR_BUCKET_REMOVE(e);
- APR_BRIGADE_INSERT_TAIL(bbOut, e);
+ if (APR_BUCKET_IS_METADATA(e) || len > APR_BUCKET_BUFF_SIZE/4) {
+ APR_BRIGADE_INSERT_TAIL(bbOut, e);
+ }
+ else {
+ if (len > 0) {
+ rv = apr_brigade_write(bbOut, NULL, NULL, str, len);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
+ }
+ apr_bucket_destroy(e);
+ }
readbytes += len;
/* We didn't find an APR_ASCII_LF within the maximum line length. */
if (readbytes >= maxbytes) {