On Wed, Aug 15, 2018 at 08:23:09PM +0000, Matt Macy wrote:
M> @@ -3772,8 +3775,11 @@ if_delmulti_locked(struct ifnet *ifp, struct ifmultiad
M>                      ll_ifma->ifma_ifp = NULL;       /* XXX */
M>              if (--ll_ifma->ifma_refcount == 0) {
M>                      if (ifp != NULL) {
M> -                            CK_STAILQ_REMOVE(&ifp->if_multiaddrs, ll_ifma, 
ifmultiaddr,
M> -                                ifma_link);
M> +                            if (ll_ifma->ifma_flags & IFMA_F_ENQUEUED) {
M> +                                    CK_STAILQ_REMOVE(&ifp->if_multiaddrs, 
ll_ifma, ifmultiaddr,
M> +                                            ifma_link);
M> +                                    ifma->ifma_flags &= ~IFMA_F_ENQUEUED;
M> +                            }
M>                      }
M>                      if_freemulti(ll_ifma);
M>              }

Coverity suggested there is a cut and paste mistake here, and it is compilable.
After quick glance I tend to agree. Looks like flag is cleared on wrong ifma.

-- 
Gleb Smirnoff
_______________________________________________
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