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