aboutsummaryrefslogtreecommitdiff
path: root/sbin/route
diff options
context:
space:
mode:
authorRyan Stone <rstone@FreeBSD.org>2015-09-17 16:56:49 +0000
committerRyan Stone <rstone@FreeBSD.org>2015-09-17 16:56:49 +0000
commit60d978a75bb877f5846cf077afe4198adc3f5a3c (patch)
tree7d70074e4ce3bc3aec9d53f7ae6a48ea28908636 /sbin/route
parent66e5857b4212578d42c7240e8c265d5b5e6b92e7 (diff)
downloadsrc-60d978a75bb877f5846cf077afe4198adc3f5a3c.tar.gz
src-60d978a75bb877f5846cf077afe4198adc3f5a3c.zip
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
Notes
Notes: svn path=/head/; revision=287920
Diffstat (limited to 'sbin/route')
-rw-r--r--sbin/route/route.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sbin/route/route.c b/sbin/route/route.c
index 1bce41ef4298..a357a4d03851 100644
--- a/sbin/route/route.c
+++ b/sbin/route/route.c
@@ -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: