From: Nick Kew Date: Thu, 26 Jul 2007 21:41:43 +0000 (+0000) Subject: Rationalisation suggested by rpluem X-Git-Tag: 2.3.0~1682 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7081c4268ac82daa60d4c27f7376e5adaa6c53fc;p=thirdparty%2Fapache%2Fhttpd.git Rationalisation suggested by rpluem git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@559999 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/filters/mod_filter.c b/modules/filters/mod_filter.c index 7b634106da7..778895b4689 100644 --- a/modules/filters/mod_filter.c +++ b/modules/filters/mod_filter.c @@ -201,23 +201,16 @@ static int filter_lookup(ap_filter_t *f, ap_filter_rec_t *filter) } } /* we can't check for NULL in provider as that kills integer 0 - * so we have to test each string/regexp case in the switch - */ + * so we have to test each string/regexp case in the switch + */ else { switch (provider->match_type) { case STRING_MATCH: - if (!provider->match.string) { - match = 0; - } - else if (strcasecmp(str, provider->match.string)) { + if (strcasecmp(str, provider->match.string)) { match = 0; } break; case STRING_CONTAINS: - if (!provider->match.string) { - match = 0; - break; - } str1 = apr_pstrdup(r->pool, str); ap_str_tolower(str1); if (!strstr(str1, provider->match.string)) { @@ -225,11 +218,8 @@ static int filter_lookup(ap_filter_t *f, ap_filter_rec_t *filter) } break; case REGEX_MATCH: - if (!provider->match.string) { - match = 0; - } - else if (ap_regexec(provider->match.regex, str, 0, NULL, 0) - == AP_REG_NOMATCH) { + if (ap_regexec(provider->match.regex, str, 0, NULL, 0) + == AP_REG_NOMATCH) { match = 0; } break; @@ -601,6 +591,9 @@ static const char *filter_provider(cmd_parms *cmd, void *CFG, const char *args) match, rxend-match), flags); + if (provider->match.regex == NULL) { + return "Bad regexp"; + } break; case '*': provider->match_type = DEFINED;