This will happen when an address expires because the vltime drops to
zero. The kernel then deletes the address and slaacd tries to do so,
too. The correct fix is to track in slaacd that the kernel already
deleted the address for us, but that's too much work shortly before a
release so just hide the ugly warning for now, it's harmless.
Problem reported by semarie some time ago.
OK deraadt, benno
-/* $OpenBSD: slaacd.c,v 1.65 2022/07/12 16:54:59 florian Exp $ */
+/* $OpenBSD: slaacd.c,v 1.66 2022/09/15 07:59:59 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
log_debug("%s: %s", __func__, if_name);
- if (ioctl(ioctl_sock, SIOCDIFADDR_IN6, &in6_ridreq) == -1)
+ if (ioctl(ioctl_sock, SIOCDIFADDR_IN6, &in6_ridreq) == -1 &&
+ errno != EADDRNOTAVAIL)
log_warn("%s: cannot remove address", __func__);
}