From 1e63c93e45c50143d3427c309347c732f132e727 Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Wed, 7 Nov 2007 10:53:18 +0000 Subject: [PATCH] mod_charset_lite: Don't crash when the request has no associated filename. (r->filename unset) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@592694 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ modules/filters/mod_charset_lite.c | 15 ++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 4927df2ea8..7caa227e58 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [ When backported to 2.2.x, remove entry from this file ] + *) mod_charset_lite: Don't crash when the request has no associated + filename. [Jeff Trawick] + *) mod_ssl: Fix TLS upgrade (RFC 2817) support. PR 41231. [Joe Orton] *) scoreboard: Correctly declare ap_time_process_request. diff --git a/modules/filters/mod_charset_lite.c b/modules/filters/mod_charset_lite.c index bac785b0ed..903b392375 100644 --- a/modules/filters/mod_charset_lite.c +++ b/modules/filters/mod_charset_lite.c @@ -206,7 +206,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 */ @@ -229,10 +231,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; -- 2.40.0