git: 77939d64f23d - main - net: on interface detach purge multicast addresses after protocols
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 22 Dec 2025 02:23:46 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=77939d64f23da4b0b599fad6edd967ffd1d17217
commit 77939d64f23da4b0b599fad6edd967ffd1d17217
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-12-21 18:56:00 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2025-12-22 02:23:14 +0000
net: on interface detach purge multicast addresses after protocols
We first want to give a chance to all owners of multicast addresses to
free them and only then run through the list of remaining ones. It might
be that no addresses remain there normally, but this needs to be analyzed
deeper. For now restore the sequence that was before 0d469d23715d to fix
a possible use after free.
Fixes: 0d469d23715d690b863787ebfa51529e1f6a9092
---
sys/net/if.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sys/net/if.c b/sys/net/if.c
index 3c16246e8b62..3394aa90127f 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1117,9 +1117,8 @@ if_detach_internal(struct ifnet *ifp, bool vmove)
#endif
if_purgeaddrs(ifp);
- if_purgemaddrs(ifp);
-
EVENTHANDLER_INVOKE(ifnet_departure_event, ifp);
+ if_purgemaddrs(ifp);
if (IS_DEFAULT_VNET(curvnet))
devctl_notify("IFNET", ifp->if_xname, "DETACH", NULL);