1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-21 11:13:30 +00:00

Fix fallout from r240071. If destination interface lookup fails,

we should broadcast a packet, not try to deliver it to NULL.

Reported by:	rpaulo
This commit is contained in:
Gleb Smirnoff 2012-10-24 18:33:44 +00:00
parent ef45823eba
commit da1fc67f8a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=242013

View File

@ -1988,20 +1988,19 @@ static int
bridge_transmit(struct ifnet *ifp, struct mbuf *m)
{
struct bridge_softc *sc;
struct ether_header *eh;
struct ifnet *dst_if;
int error = 0;
sc = ifp->if_softc;
ETHER_BPF_MTAP(ifp, m);
eh = mtod(m, struct ether_header *);
BRIDGE_LOCK(sc);
if ((m->m_flags & (M_BCAST|M_MCAST)) == 0) {
struct ether_header *eh;
struct ifnet *dst_if;
eh = mtod(m, struct ether_header *);
dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1);
if (((m->m_flags & (M_BCAST|M_MCAST)) == 0) &&
(dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1)) != NULL) {
BRIDGE_UNLOCK(sc);
error = bridge_enqueue(sc, dst_if, m);
} else