Previously, a nonexistent interface would be converted to the invalid
interface index 0.  This is now rejected by the kernel, but route(8) can
give a better error message by failing fast.
---
 sbin/route/route.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git sbin/route/route.c sbin/route/route.c
index f1ec5bd38d8..13ab171cfd4 100644
--- sbin/route/route.c
+++ sbin/route/route.c
@@ -899,7 +899,8 @@ getaddr(int which, int af, char *s, struct hostent **hpp)
            }
 
        case AF_LINK:
-               su->sdl.sdl_index = if_nametoindex(s);
+               if ((su->sdl.sdl_index = if_nametoindex(s)) == 0)
+                       errx(1, "no such interface %s", s);
                memset(&su->sdl.sdl_data, 0, sizeof(su->sdl.sdl_data));
                return (1);
        case AF_MPLS:
-- 
2.26.2

Reply via email to