mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-01 00:18:15 +01:00
When installing a new ARP entry via 'arp -S', lla_lookup() will
either find an existing entry, or allocate a new one. In the latter case an entry would have flags, that were supplied as argument to lla_lookup(). In case of an existing entry, flags aren't modified. This lead to losing LLE_PUB and/or LLE_PROXY flags. We should apply these flags either in lla_rt_output() or in the in.c:in_lltable_lookup(). It seems to me that lla_rt_output() is a more correct choice. PR: kern/148784, kern/146539 Silence from: qingli, 5 days
This commit is contained in:
parent
135fcc6da0
commit
85011246ac
@ -337,6 +337,7 @@ lla_rt_output(struct rt_msghdr *rtm, struct rt_addrinfo *info)
|
||||
* LLE_DELETED flag, and reset the expiration timer
|
||||
*/
|
||||
bcopy(LLADDR(dl), &lle->ll_addr, ifp->if_addrlen);
|
||||
lle->la_flags |= (flags & (LLE_PUB | LLE_PROXY));
|
||||
lle->la_flags |= LLE_VALID;
|
||||
lle->la_flags &= ~LLE_DELETED;
|
||||
#ifdef INET6
|
||||
|
Loading…
Reference in New Issue
Block a user