diff options
author | Florian Obser <florian@cvs.openbsd.org> | 2018-08-15 16:48:21 +0000 |
---|---|---|
committer | Florian Obser <florian@cvs.openbsd.org> | 2018-08-15 16:48:21 +0000 |
commit | 1dcf94a14563174a0ac06fcdb6445ba20555cd06 (patch) | |
tree | db578df1c99e2f380b84a618f934ac3ed68a2691 | |
parent | a16c7ea098fed0b4d92658c4f10d93d76bc2ec22 (diff) |
SIOCGIFNETMASK_IN6 failing just means that someone delete the address
we are currently looking at. No need to fatal.
Found the hard way by naddy
-rw-r--r-- | usr.sbin/rad/frontend.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/rad/frontend.c b/usr.sbin/rad/frontend.c index 0a5a982ba9e..c452a845fd3 100644 --- a/usr.sbin/rad/frontend.c +++ b/usr.sbin/rad/frontend.c @@ -1,4 +1,4 @@ -/* $OpenBSD: frontend.c,v 1.15 2018/08/03 13:14:46 florian Exp $ */ +/* $OpenBSD: frontend.c,v 1.16 2018/08/15 16:48:20 florian Exp $ */ /* * Copyright (c) 2018 Florian Obser <florian@openbsd.org> @@ -828,7 +828,7 @@ get_interface_prefixes(struct ra_iface *ra_iface, struct ra_prefix_conf memcpy(&ifr6.ifr_addr, sin6, sizeof(ifr6.ifr_addr)); if (ioctl(ioctlsock, SIOCGIFNETMASK_IN6, (caddr_t)&ifr6) < 0) - fatal("SIOCGIFNETMASK_IN6"); + continue; /* addr got deleted while we were looking */ prefixlen = in6_mask2prefixlen(&((struct sockaddr_in6 *) &ifr6.ifr_addr)->sin6_addr); |