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);
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to