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"