Checking ifaddr pointer for NULL without checking in6_ifaddr works
authorbluhm <bluhm@openbsd.org>
Mon, 7 Feb 2022 15:23:43 +0000 (15:23 +0000)
committerbluhm <bluhm@openbsd.org>
Mon, 7 Feb 2022 15:23:43 +0000 (15:23 +0000)
commit7e3957d1347c1293d3bb32e6f74bf16444559004
treed88a5d536e2c80fb67625f2b5112dea89575ec33
parentcd2083ccf9294d380f428e66a6c0cd27d0cb5c99
Checking ifaddr pointer for NULL without checking in6_ifaddr works
as ifaddr ia_ifa is the first field of in6_ifaddr.  So the pointers
are the same, and one NULL check works for both.  But in ISO C NULL
has some kind of type and this is undefined behavior.  So add a
second NULL check that the compiler can optimize away.  The resulting
assembler is the same.
found by kubsan; OK tobhe@
sys/netinet6/nd6.c
sys/netinet6/nd6_nbr.c