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
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;
}