Return-Path: Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: (qmail 44782 invoked from network); 26 Apr 2004 15:58:33 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 26 Apr 2004 15:58:33 -0000 Received: (qmail 40491 invoked by uid 500); 26 Apr 2004 15:58:26 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 40459 invoked by uid 500); 26 Apr 2004 15:58:26 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 40437 invoked by uid 500); 26 Apr 2004 15:58:26 -0000 Delivered-To: apmail-httpd-2.0-cvs@apache.org Received: (qmail 40428 invoked from network); 26 Apr 2004 15:58:26 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 26 Apr 2004 15:58:26 -0000 Received: (qmail 44768 invoked by uid 1121); 26 Apr 2004 15:58:32 -0000 Date: 26 Apr 2004 15:58:32 -0000 Message-ID: <20040426155832.44767.qmail@minotaur.apache.org> From: trawick@apache.org To: httpd-2.0-cvs@apache.org Subject: cvs commit: httpd-2.0/modules/arch/win32 mod_isapi.c X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N trawick 2004/04/26 08:58:32 Modified: . Tag: APACHE_2_0_BRANCH CHANGES STATUS modules/arch/win32 Tag: APACHE_2_0_BRANCH mod_isapi.c Log: grab this fix from 2.1-dev: mod_isapi: GetServerVariable returned improperly terminated header fields given "ALL_HTTP" or "ALL_RAW". PR: 20656 Submitted by: Jesse Pelton Reviewed by: trawick, stoddard, nd Revision Changes Path No revision No revision 1.988.2.273 +4 -0 httpd-2.0/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/httpd-2.0/CHANGES,v retrieving revision 1.988.2.272 retrieving revision 1.988.2.273 diff -u -r1.988.2.272 -r1.988.2.273 --- CHANGES 26 Apr 2004 15:54:22 -0000 1.988.2.272 +++ CHANGES 26 Apr 2004 15:58:30 -0000 1.988.2.273 @@ -1,5 +1,9 @@ Changes with Apache 2.0.50 + *) mod_isapi: GetServerVariable returned improperly terminated header + fields given "ALL_HTTP" or "ALL_RAW". PR 20656. + [Jesse Pelton ] + *) mod_isapi: GetServerVariable("ALL_RAW") returned the wrong buffer size. PR 20617. [Jesse Pelton ] 1.751.2.840 +1 -7 httpd-2.0/STATUS Index: STATUS =================================================================== RCS file: /home/cvs/httpd-2.0/STATUS,v retrieving revision 1.751.2.839 retrieving revision 1.751.2.840 diff -u -r1.751.2.839 -r1.751.2.840 --- STATUS 26 Apr 2004 15:54:22 -0000 1.751.2.839 +++ STATUS 26 Apr 2004 15:58:31 -0000 1.751.2.840 @@ -358,12 +358,6 @@ http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/arch/win32/mod_isapi.c?r1=1.97&r2=1.98 +1: trawick, stoddard - * mod_isapi: GetServerVariable returned improperly terminated header - fields given "ALL_HTTP" or "ALL_RAW". PR 20656. - [Jesse Pelton ] - http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/arch/win32/mod_isapi.c?r1=1.98&r2=1.99 - +1: trawick, stoddard, nd - * Unix MPMs: Stop dropping connections when the file descriptor is at least FD_SETSIZE os/unix/unixd.c: r1.63 No revision No revision 1.88.2.7 +6 -4 httpd-2.0/modules/arch/win32/mod_isapi.c Index: mod_isapi.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/arch/win32/mod_isapi.c,v retrieving revision 1.88.2.6 retrieving revision 1.88.2.7 diff -u -r1.88.2.6 -r1.88.2.7 --- mod_isapi.c 26 Apr 2004 15:54:23 -0000 1.88.2.6 +++ mod_isapi.c 26 Apr 2004 15:58:31 -0000 1.88.2.7 @@ -495,7 +495,7 @@ if (!strcmp(variable_name, "ALL_HTTP")) { - /* lf delimited, colon split, comma seperated and + /* crlf delimited, colon split, comma separated and * null terminated list of HTTP_ vars */ const apr_array_header_t *arr = apr_table_elts(r->subprocess_env); @@ -504,7 +504,7 @@ for (len = 0, i = 0; i < arr->nelts; i++) { if (!strncmp(elts[i].key, "HTTP_", 5)) { - len += strlen(elts[i].key) + strlen(elts[i].val) + 2; + len += strlen(elts[i].key) + strlen(elts[i].val) + 3; } } @@ -521,6 +521,7 @@ *(((char*)buf_data)++) = ':'; strcpy(buf_data, elts[i].val); ((char*)buf_data) += strlen(elts[i].val); + *(((char*)buf_data)++) = '\r'; *(((char*)buf_data)++) = '\n'; } } @@ -532,7 +533,7 @@ if (!strcmp(variable_name, "ALL_RAW")) { - /* lf delimited, colon split, comma seperated and + /* crlf delimited, colon split, comma separated and * null terminated list of the raw request header */ const apr_array_header_t *arr = apr_table_elts(r->headers_in); @@ -540,7 +541,7 @@ int i; for (len = 0, i = 0; i < arr->nelts; i++) { - len += strlen(elts[i].key) + strlen(elts[i].val) + 3; + len += strlen(elts[i].key) + strlen(elts[i].val) + 4; } if (*buf_size < len + 1) { @@ -556,6 +557,7 @@ *(((char*)buf_data)++) = ' '; strcpy(buf_data, elts[i].val); ((char*)buf_data) += strlen(elts[i].val); + *(((char*)buf_data)++) = '\r'; *(((char*)buf_data)++) = '\n'; } *(((char*)buf_data)++) = '\0';