]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix configure parsing IP/domain directives
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 3 Aug 2013 07:57:44 +0000 (19:57 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 3 Aug 2013 07:57:44 +0000 (19:57 +1200)
Squid would semi-silently accept invalid IP address or hostname in some
directives which required them (eg wccp_router) and use the magic
IP_ANYADDR value. This change makes configure halt with a FATAL error
instead.

 Detected by Coverity Scan. Issue 1057286.

src/cache_cf.cc

index 885008db17fea993ca09d4f358b42a5b5b25a430..ff6c358da7a4ecc4876412d53d43901cfbd405b4 100644 (file)
@@ -1381,8 +1381,12 @@ parse_address(Ip::Address *addr)
         addr->setNoAddr();
     else if ( (*addr = token) ) // try parse numeric/IPA
         (void) 0;
-    else
-        addr->GetHostByName(token); // dont use ipcache
+    else if (addr->GetHostByName(token)) // dont use ipcache
+        (void) 0;
+    else { // not an IP and not a hostname
+        debugs(3, DBG_CRITICAL, "FATAL: invalid IP address or domain name '" << token << "'");
+        self_destruct();
+    }
 }
 
 static void