--- src/sys/net/bridge/if_bridge.c 2007/01/04 21:14:40 1.17 +++ src/sys/net/bridge/if_bridge.c 2007/06/02 05:09:18 1.18 @@ -1720,7 +1720,7 @@ bridge_input(struct ifnet *ifp, struct m bifp = sc->sc_ifp; lwkt_serialize_enter(bifp->if_serializer); - if ((sc->sc_ifp->if_flags & IFF_RUNNING) == 0) + if ((bifp->if_flags & IFF_RUNNING) == 0) goto out; /* @@ -1735,6 +1735,7 @@ bridge_input(struct ifnet *ifp, struct m bifp->if_ipackets++; bifp->if_ibytes += m->m_pkthdr.len; m_freem(m); + m = NULL; goto out; } @@ -1754,8 +1755,7 @@ bridge_input(struct ifnet *ifp, struct m #define IFP2AC(ifp) ((struct arpcom *)(ifp)) #define IFP2ENADDR(ifp) (IFP2AC(ifp)->ac_enaddr) - if (memcmp(eh->ether_dhost, IFP2ENADDR(bifp), - ETHER_ADDR_LEN) == 0) { + if (memcmp(eh->ether_dhost, IFP2ENADDR(bifp), ETHER_ADDR_LEN) == 0) { /* * If the packet is for us, set the packets source as the * bridge, and return the packet back to ether_input for