mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Fix a possible refcount leak in regen_tmpaddr().
public_ifa6 may be set to NULL after taking a reference to a previous address list element. Instead, only take the reference after leaving the loop but before releasing the address list lock. Differential Revision: https://reviews.freebsd.org/D2253 Reviewed by: ae MFC after: 2 weeks
This commit is contained in:
parent
0a68701fd2
commit
dff78447a4
1 changed files with 3 additions and 4 deletions
|
|
@ -765,11 +765,10 @@ regen_tmpaddr(struct in6_ifaddr *ia6)
|
|||
* address with the prefix.
|
||||
*/
|
||||
if (!IFA6_IS_DEPRECATED(it6))
|
||||
public_ifa6 = it6;
|
||||
|
||||
if (public_ifa6 != NULL)
|
||||
ifa_ref(&public_ifa6->ia_ifa);
|
||||
public_ifa6 = it6;
|
||||
}
|
||||
if (public_ifa6 != NULL)
|
||||
ifa_ref(&public_ifa6->ia_ifa);
|
||||
IF_ADDR_RUNLOCK(ifp);
|
||||
|
||||
if (public_ifa6 != NULL) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue