From 5b6b58bbf228de54e6222d6bd5eef46f0a16f2f9 Mon Sep 17 00:00:00 2001 From: Christophe Jaillet Date: Mon, 14 Jul 2014 10:52:39 +0000 Subject: [PATCH] Simplify code. Cases where 'loc' doesn't have any ':' or is starting with ':' are already handled by 'ap_ir_url()' Calling 'apr_isascii()' seems useless. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1610383 13f79535-47bb-0310-9956-ffa450edef68 --- modules/http/http_filters.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/modules/http/http_filters.c b/modules/http/http_filters.c index 11d5cf8f77..d2c618dd62 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -560,22 +560,14 @@ static APR_INLINE int check_headers(request_rec *r) if ((loc = apr_table_get(r->headers_out, "Location")) != NULL) { const char *scheme_end = ap_strchr_c(loc, ':'); - const char *s = loc; /* * Check that the URI has a valid scheme and is absolute * XXX Should we do a full uri parse here? */ - if (scheme_end == NULL || scheme_end == loc) + if (!ap_is_url(loc)) goto bad; - do { - if ((!apr_isalnum(*s) && *s != '.' && *s != '+' && *s != '-') - || !apr_isascii(*s) ) { - goto bad; - } - } while (++s < scheme_end); - if (scheme_end[1] != '/' || scheme_end[2] != '/') goto bad; } -- 2.40.0