From 81a8b0133b46c4cf7dfc4b5476ad46eb34aa0a5c Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Thu, 23 Sep 2021 12:31:53 +0000 Subject: [PATCH] backport of 1893519,1893532 from trunk: *) mod_proxy: Handle UDS URIs with empty hostname ("unix:///...") as if they had no hostname ("unix:/..."), also in mod_rewrite's is_absolulte_uri(). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1893559 13f79535-47bb-0310-9956-ffa450edef68 --- modules/mappers/mod_rewrite.c | 2 +- modules/proxy/proxy_util.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changes-entries/uds_empty_hostname.txt --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -622,7 +622,7 @@ static unsigned is_absolute_uri(char *ur case 'U': if (!ap_cstr_casecmpn(uri, "nix:", 4)) { /* unix: */ *sqs = 1; - return 5; + return (uri[4] == '/' && uri[5] == '/') ? 7 : 5; } } --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -2217,7 +2217,8 @@ static int fix_uds_filename(request_rec rv = apr_uri_parse(r->pool, uds_url, &urisock); *origin_url++ = '|'; - if (rv == APR_SUCCESS && urisock.path && !urisock.hostname) { + if (rv == APR_SUCCESS && urisock.path && (!urisock.hostname + || !urisock.hostname[0])) { uds_path = ap_runtime_dir_relative(r->pool, urisock.path); } if (!uds_path) {