From 60d978a75bb877f5846cf077afe4198adc3f5a3c Mon Sep 17 00:00:00 2001 From: Ryan Stone Date: Thu, 17 Sep 2015 16:56:49 +0000 Subject: [PATCH] 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 --- sbin/route/route.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbin/route/route.c b/sbin/route/route.c index 1bce41ef429..a357a4d0385 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: