On Fri, Jul 11, 2014 at 6:36 AM,  <jkal...@apache.org> wrote:
> static int ap_proxy_strcmp_ematch(const char *str, const char *expected)
> +{
> +    apr_size_t x, y;
> +
> +    for (x = 0, y = 0; expected[y]; ++y, ++x) {
> +        if ((!str[x]) && (expected[y] != '
> || !apr_isdigit(expected[y + 1])))
> +            return -1;
> +        if (expected[y] == ' && apr_isdigit(expected[y + 1])) {
> +            while (expected[y] == ' && apr_isdigit(expected[y + 1]))
> +                y += 2;
> +            if (!expected[y])
> +                return 0;
> +            while (str[x]) {
> +                int ret;
> +                if ((ret = ap_proxy_strcmp_ematch(&str[x++], &expected[y])) 
> != 1)
> +                    return ret;
> +            }
> +            return -1;
> +        }
> +        else if (expected[y] == '\\') {
> +            /* NUL is an invalid char! */
> +            if (!expected[++y])
> +                return -2;
> +        }
> +        if (str[x] != expected[y])
> +            return 1;
> +    }
> +    return (str[x] != '\0');
> +}


This is breaking the common PHP-FPM recipes using unix domain sockets
in trunk e.g.

ProxyPassMatch ^/info.php$
"unix:/var/run/php5-fpm.sock|fcgi://localhost/home/covener/SRC/httpd-trunk/built/htdocs/"

The old test accepted the worker URL being a prefix of the worker:
 (, but now that doesn't happen for ProxyPassMatch.  This seems to be
due to the last return.






-- 
Eric Covener
cove...@gmail.com

Reply via email to