To make ND6 mp-safe, the life time of struct llinfo_nd6 *ln =
authorbluhm <bluhm@openbsd.org>
Mon, 8 May 2023 13:14:21 +0000 (13:14 +0000)
committerbluhm <bluhm@openbsd.org>
Mon, 8 May 2023 13:14:21 +0000 (13:14 +0000)
commitf583c2e86c604d206f249525cf5e9b334fd7c8ff
tree7433e0954add9e16e2b515848f91a139257d82a7
parent5fdb35cb7848f4dcf7098dbb9405a18a69f39805
To make ND6 mp-safe, the life time of struct llinfo_nd6 *ln =
rt->rt_llinfo has to be guaranteed.  Replace the complicated logic
in nd6_rtrequest() case RTM_ADD with what we have in ARP.  This
avoids accessing ln here.
Digging through histroy shows a lot of refactoring that makes
rt_expire handling in RTM_ADD obsolete.  Just initialize it to 0.
Cloning and local routes should never expire.  If RTF_LLINFO is
set, ln should not be NULL.  So nd6_llinfo_settimer() was not reached
in this case.
While there, remove obsolete comments and #if 0 code that never
worked.
OK kn@ claudio@
sys/netinet6/nd6.c