Fix /sbin/route to never look up (invalid) interface names through DNS

/sbin/route has a bug where if it is passed an interface name that does
not exist, it falls through and winds up interpreting it as a hostname.
It fails out eventually, but on a system where DNS lookup is broken you
can end up waiting for up to 60 seconds waiting for the DNS lookup to
timeout.  I'm not quite sure what happens if the DNS lookup somehow
succeeds but I doubt that can end well.

Reviewed by:	markj, cem
MFC after:	2 weeks
Sponsored by:	EMC/Isilon Storage Division
This commit is contained in:
rstone 2015-09-17 16:56:49 +00:00
parent f09841e04b
commit 24d3763284

View File

@ -1222,6 +1222,9 @@ getaddr(int idx, char *str, struct hostent **hpp, int nrflags)
freeifaddrs(ifap);
if (sdl != NULL)
return(1);
else
errx(EX_DATAERR,
"interface '%s' does not exist", str);
}
break;
case RTAX_IFP: