File apr-utils_memleak-CVE-2010-1623-bnc653510-693778.patch of Package libapr-util1
diff -ruN ../apr-util-1.3.4.orig/buckets/apr_brigade.c ./buckets/apr_brigade.c
--- ../apr-util-1.3.4.orig/buckets/apr_brigade.c 2008-05-28 23:15:35.000000000 +0200
+++ ./buckets/apr_brigade.c 2011-06-24 23:02:19.000000000 +0200
@@ -331,7 +331,18 @@
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) {