Page MenuHomeFreeBSD

D15393.id42421.diff
No OneTemporary

D15393.id42421.diff

Index: sys/netinet/in_mcast.c
===================================================================
--- sys/netinet/in_mcast.c
+++ sys/netinet/in_mcast.c
@@ -2501,6 +2501,8 @@
/*
* Begin state merge transaction at IGMP layer.
*/
+ in_pcbref(inp);
+ INP_WUNLOCK(inp);
IN_MULTI_LOCK();
if (is_final) {
@@ -2531,6 +2533,9 @@
out_in_multi_locked:
IN_MULTI_UNLOCK();
+ INP_WLOCK(inp);
+ if (in_pcbrele_wlocked(inp))
+ return (ENXIO);
if (error)
imf_rollback(imf);
Index: sys/netinet6/in6_mcast.c
===================================================================
--- sys/netinet6/in6_mcast.c
+++ sys/netinet6/in6_mcast.c
@@ -2381,6 +2381,8 @@
/*
* Begin state merge transaction at MLD layer.
*/
+ in_pcbref(inp);
+ INP_WUNLOCK(inp);
IN6_MULTI_LOCK();
if (is_final) {
@@ -2407,6 +2409,9 @@
}
IN6_MULTI_UNLOCK();
+ INP_WLOCK(inp);
+ if (in_pcbrele_wlocked(inp))
+ return (ENXIO);
if (error)
im6f_rollback(imf);

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 13, 11:57 PM (12 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29642482
Default Alt Text
D15393.id42421.diff (958 B)

Event Timeline