From 677653a89b7cde85033a137d9e012a02c9ef6df4 Mon Sep 17 00:00:00 2001 From: dgaudet Date: Sun, 20 Jul 1997 18:36:03 +0000 Subject: [PATCH] First problem: if a client sends a Host: header with a different case than "Host:", the proxy won't see it and it will end up with two Host: headers with different capitalization. Second problem: if the proxy connects to a HTTP/0.9 server, the first line returned will be corrupt because len was tampered with. Reviewed by: Marc Slemko, Dean Gaudet, Randy Terbush Submitted by: Kenichi Hori PR: 813, 814 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3@78698 13f79535-47bb-0310-9956-ffa450edef68 --- APACHE_1_2_X/src/modules/proxy/proxy_http.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/APACHE_1_2_X/src/modules/proxy/proxy_http.c b/APACHE_1_2_X/src/modules/proxy/proxy_http.c index 4ca9cabfbdd..71d6a9de73a 100644 --- a/APACHE_1_2_X/src/modules/proxy/proxy_http.c +++ b/APACHE_1_2_X/src/modules/proxy/proxy_http.c @@ -260,7 +260,7 @@ proxy_http_handler(request_rec *r, struct cache_req *c, char *url, for (i=0; i < reqhdrs_arr->nelts; i++) { if (reqhdrs[i].key == NULL || reqhdrs[i].val == NULL - || !strcmp(reqhdrs[i].key, "Host")) /* already sent if there */ + || !strcasecmp(reqhdrs[i].key, "Host")) /* already sent if there */ continue; bvputs(f, reqhdrs[i].key, ": ", reqhdrs[i].val, "\015\012", NULL); } @@ -331,9 +331,8 @@ proxy_http_handler(request_rec *r, struct cache_req *c, char *url, * one type */ - len = resp_hdrs->nelts; hdr = (struct hdr_entry *)resp_hdrs->elts; - for (i=0; i < len; i++) + for (i=0; i < resp_hdrs->nelts; i++) { if (hdr[i].value[0] == '\0') continue; p = hdr[i].field; @@ -371,8 +370,7 @@ proxy_http_handler(request_rec *r, struct cache_req *c, char *url, cache = proxy_cache_error(c); /* send headers */ - len = resp_hdrs->nelts; - for (i=0; i < len; i++) + for (i=0; i < resp_hdrs->nelts; i++) { if (hdr[i].field == NULL || hdr[i].value == NULL || hdr[i].value[0] == '\0') continue; -- 2.47.2