svn commit: r333967 - head/sys/netinet

Matt Macy mmacy at FreeBSD.org
Mon May 21 07:12:07 UTC 2018


Author: mmacy
Date: Mon May 21 07:12:06 2018
New Revision: 333967
URL: https://svnweb.freebsd.org/changeset/base/333967

Log:
  ensure that vnet is set when doing in_leavegroup

Modified:
  head/sys/netinet/in_mcast.c

Modified: head/sys/netinet/in_mcast.c
==============================================================================
--- head/sys/netinet/in_mcast.c	Mon May 21 05:20:23 2018	(r333966)
+++ head/sys/netinet/in_mcast.c	Mon May 21 07:12:06 2018	(r333967)
@@ -1664,6 +1664,8 @@ inp_gcmoptions(epoch_context_t ctx)
 {
 	struct ip_moptions *imo;
 	struct in_mfilter	*imf;
+	struct in_multi *inm;
+	struct ifnet *ifp;
 	size_t			 idx, nmships;
 
 	imo =  __containerof(ctx, struct ip_moptions, imo_epoch_ctx);
@@ -1673,7 +1675,13 @@ inp_gcmoptions(epoch_context_t ctx)
 		imf = imo->imo_mfilters ? &imo->imo_mfilters[idx] : NULL;
 		if (imf)
 			imf_leave(imf);
-		(void)in_leavegroup(imo->imo_membership[idx], imf);
+		inm = imo->imo_membership[idx];
+		ifp = inm->inm_ifp;
+		if (ifp)
+			CURVNET_SET(ifp->if_vnet);
+		(void)in_leavegroup(inm, imf);
+		if (ifp)
+			CURVNET_RESTORE();
 		if (imf)
 			imf_purge(imf);
 	}


More information about the svn-src-head mailing list