]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug 3183: Invalid URL accepted with url host part of only '@'.
authorAmos Jeffries <squid3@treenet.co.nz>
Sun, 10 Apr 2011 02:00:38 +0000 (14:00 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 10 Apr 2011 02:00:38 +0000 (14:00 +1200)
3.0 results in an ICAP segfault handling these URLs.

Newer releases do not segfault as easily, but still accept the invalid
URL and there may be other unknown side-effects.

Makes the URL parser present ERR_INVALID_URL for this edge case.

src/url.cc

index 2e63319b0ed5802e74cd9c0b8ce17ac0cb98f89b..8fdb920eedb8b023288292c4d2d5eb8a69791a55 100644 (file)
@@ -326,6 +326,12 @@ urlParse(const HttpRequestMethod& method, char *url, HttpRequest *request)
             }
         }
 
+        // Bug 3183 sanity check: If scheme is present, host must be too.
+        if (protocol != AnyP::PROTO_NONE && (host == NULL || *host == '\0')) {
+            debugs(23, DBG_IMPORTANT, "SECURITY WARNING: Missing hostname in URL '" << url << "'. see access.log for details.");
+            return NULL;
+        }
+
         if (t && *t == ':') {
             *t = '\0';
             t++;