components/apr-util/patches/CVE-2010-1623.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 29 Aug 2012 11:05:56 -0700
changeset 957 255465c5756f
parent 203 887f23af6934
permissions -rw-r--r--
Close of build 04.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
203
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     1
--- buckets/apr_brigade.c	2010/10/01 11:42:57	1003493
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     2
+++ buckets/apr_brigade.c	2010/10/01 11:43:26	1003494
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     3
@@ -331,7 +331,18 @@
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     4
             return APR_SUCCESS;
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     5
         }
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     6
         APR_BUCKET_REMOVE(e);
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     7
-        APR_BRIGADE_INSERT_TAIL(bbOut, e);
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     8
+        if (APR_BUCKET_IS_METADATA(e) || len > APR_BUCKET_BUFF_SIZE/4) {
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     9
+            APR_BRIGADE_INSERT_TAIL(bbOut, e);
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    10
+        }
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    11
+        else {
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    12
+            if (len > 0) {
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    13
+                rv = apr_brigade_write(bbOut, NULL, NULL, str, len);
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    14
+                if (rv != APR_SUCCESS) {
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    15
+                    return rv;
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    16
+                }
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    17
+            }
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    18
+            apr_bucket_destroy(e);
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    19
+        }
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    20
         readbytes += len;
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    21
         /* We didn't find an APR_ASCII_LF within the maximum line length. */
887f23af6934 7035055 move apr and apr-util to userland
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    22
         if (readbytes >= maxbytes) {