From: Jeff Trawick Date: Thu, 8 Nov 2007 14:52:20 +0000 (+0000) Subject: rev 592694 from trunk: X-Git-Tag: 2.2.7~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf758f696929d3114e9051db2624341abe237b20;p=thirdparty%2Fapache%2Fhttpd.git rev 592694 from trunk: mod_charset_lite: Don't crash when the request has no associated filename. Reviewed by: niq, rpluem git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@593175 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 12e6522ebf3..f5e63c2886f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.7 + *) mod_charset_lite: Don't crash when the request has no associated + filename. [Jeff Trawick] + *) Core: fix possible crash at startup in case of nonexistent DocumentRoot. PR 39722 [Adrian Buckley ] diff --git a/STATUS b/STATUS index 4e1daa8cae2..edb5ed3e4ef 100644 --- a/STATUS +++ b/STATUS @@ -79,14 +79,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_charset_lite: Don't crash when the request has no associated - filename. - trunk: - http://svn.apache.org/viewvc?rev=592694&view=rev - 2.2.x patch: - trunk patch works - +1: trawick, niq, rpluem - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/filters/mod_charset_lite.c b/modules/filters/mod_charset_lite.c index e7df32b148a..5b7d7c89250 100644 --- a/modules/filters/mod_charset_lite.c +++ b/modules/filters/mod_charset_lite.c @@ -205,7 +205,9 @@ static int find_code_page(request_rec *r) ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "uri: %s file: %s method: %d " "imt: %s flags: %s%s%s %s->%s", - r->uri, r->filename, r->method_number, + r->uri, + r->filename ? r->filename : "(none)", + r->method_number, r->content_type ? r->content_type : "(unknown)", r->main ? "S" : "", /* S if subrequest */ r->prev ? "R" : "", /* R if redirect */ @@ -228,10 +230,13 @@ static int find_code_page(request_rec *r) /* catch proxy requests */ if (r->proxyreq) return DECLINED; /* mod_rewrite indicators */ - if (!strncmp(r->filename, "redirect:", 9)) return DECLINED; - if (!strncmp(r->filename, "gone:", 5)) return DECLINED; - if (!strncmp(r->filename, "passthrough:", 12)) return DECLINED; - if (!strncmp(r->filename, "forbidden:", 10)) return DECLINED; + if (r->filename + && (!strncmp(r->filename, "redirect:", 9) + || !strncmp(r->filename, "gone:", 5) + || !strncmp(r->filename, "passthrough:", 12) + || !strncmp(r->filename, "forbidden:", 10))) { + return DECLINED; + } /* no translation when server and network charsets are set to the same value */ if (!strcasecmp(dc->charset_source, dc->charset_default)) return DECLINED;