aboutsummaryrefslogtreecommitdiff
path: root/sbin/route/route.c
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/route.c
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/route.c')
-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: