]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix configure parsing IP/domain directives
authorAmos Jeffries <squid3@treenet.co.nz>
Thu, 8 Aug 2013 06:08:02 +0000 (00:08 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Thu, 8 Aug 2013 06:08:02 +0000 (00:08 -0600)
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 3774f86d1224bd88181d22c713a4b4ad0c6225c5..7012f53fd0207b907436de26635766df9febd758 100644 (file)
@@ -1380,8 +1380,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