Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-0.8.git;a=commitdiff;h=c30924d76bb417ce75394fe0dfa449f8cbc7e866

commit c30924d76bb417ce75394fe0dfa449f8cbc7e866
Author: Miklos Vajna <[EMAIL PROTECTED]>
Date:   Sat Jun 28 00:34:11 2008 +0200

apache-2.2.8-2kalgan1-i686
- added CVE-2008-2364.patch
- closes #3177

diff --git a/source/network/apache/CVE-2008-2364.patch 
b/source/network/apache/CVE-2008-2364.patch
new file mode 100644
index 0000000..d85a927
--- /dev/null
+++ b/source/network/apache/CVE-2008-2364.patch
@@ -0,0 +1,72 @@
+--- 2.2.x/modules/proxy/mod_proxy_http.c       2008/06/10 17:36:08     666228
++++ 2.2.x/modules/proxy/mod_proxy_http.c       2008/06/10 17:39:38     666229
+@@ -1307,6 +1307,16 @@
+     return rv;
+ }
+
++/*
++ * Limit the number of interim respones we sent back to the client. Otherwise
++ * we suffer from a memory build up. Besides there is NO sense in sending back
++ * an unlimited number of interim responses to the client. Thus if we cross
++ * this limit send back a 502 (Bad Gateway).
++ */
++#ifndef AP_MAX_INTERIM_RESPONSES
++#define AP_MAX_INTERIM_RESPONSES 10
++#endif
++
+ static
+ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
+                                             proxy_conn_rec *backend,
+@@ -1321,8 +1331,8 @@
+     apr_bucket *e;
+     apr_bucket_brigade *bb, *tmp_bb;
+     int len, backasswards;
+-    int interim_response; /* non-zero whilst interim 1xx responses
+-                           * are being read. */
++    int interim_response = 0; /* non-zero whilst interim 1xx responses
++                               * are being read. */
+     int pread_len = 0;
+     apr_table_t *save_table;
+     int backend_broke = 0;
+@@ -1523,7 +1533,9 @@
+             if ((buf = apr_table_get(r->headers_out, "Content-Type"))) {
+                 ap_set_content_type(r, apr_pstrdup(p, buf));
+             }
+-            ap_proxy_pre_http_request(origin,rp);
++            if (!ap_is_HTTP_INFO(r->status)) {
++                ap_proxy_pre_http_request(origin, rp);
++            }
+
+             /* Clear hop-by-hop headers */
+             for (i=0; hop_by_hop_hdrs[i]; ++i) {
+@@ -1572,7 +1584,12 @@
+             backend->close += 1;
+         }
+
+-        interim_response = ap_is_HTTP_INFO(r->status);
++        if (ap_is_HTTP_INFO(r->status)) {
++            interim_response++;
++        }
++        else {
++            interim_response = 0;
++        }
+         if (interim_response) {
+             /* RFC2616 tells us to forward this.
+              *
+@@ -1773,7 +1790,15 @@
+
+             apr_brigade_cleanup(bb);
+         }
+-    } while (interim_response);
++    } while (interim_response && (interim_response < 
AP_MAX_INTERIM_RESPONSES));
++
++    /* See define of AP_MAX_INTERIM_RESPONSES for why */
++    if (interim_response >= AP_MAX_INTERIM_RESPONSES) {
++        return ap_proxyerror(r, HTTP_BAD_GATEWAY,
++                             apr_psprintf(p,
++                             "Too many (%d) interim responses from origin 
server",
++                             interim_response));
++    }
+
+     /* If our connection with the client is to be aborted, return DONE. */
+     if (c->aborted || backend_broke) {
diff --git a/source/network/apache/FrugalBuild 
b/source/network/apache/FrugalBuild
index e2abc7f..3247385 100644
--- a/source/network/apache/FrugalBuild
+++ b/source/network/apache/FrugalBuild
@@ -4,20 +4,23 @@

pkgname=apache
pkgver=2.2.8
-pkgrel=1
+pkgrel=2kalgan1
pkgdesc="A high performance Unix-based HTTP server (with SSL)"
url="http://httpd.apache.org/";
backup=(etc/httpd/conf/{httpd.conf,ssl.conf,ssl.crt/server.crt,ssl.csr/server.csr,ssl.key/server.key}
 \
var/www/html/index.html)
depends=('gdbm' 'db>=4.6.18' 'openssl' 'expat' 'apr-util>=1.2.12')
+# hack
+makedepends=('patch')
groups=('network')
archs=('i686' 'x86_64')
up2date="lynx -dump http://httpd.apache.org/download.cgi |grep 'best 
available'|sed 's/.*r \(.*\) i.*/\1/;q'"
-source=(http://www.apache.org/dist/httpd/httpd-$pkgver.tar.gz \
+source=(http://archive.apache.org/dist/httpd/httpd-$pkgver.tar.bz2 \
http://ftp.frugalware.org/pub/other/sources/apache/mkcert.tar.gz \
rc.httpd rc.httpd-hu.po httpd.conf ssl.conf \
-       README.Frugalware index.html 
http://frugalware.org/images/frugalware.png)
-signatures=($source.asc '' '' '' '' '' '' '' '')
+       README.Frugalware index.html 
http://frugalware.org/images/frugalware.png \
+       CVE-2008-2364.patch)
+signatures=($source.asc '' '' '' '' '' '' '' '' '')

# svn web interface:
# http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to