Unconditionally restore the pointer to the saved Ethernet header after
going to bridge.c:bdg_forward(). The header can be munged even if the mbuf does not /appear/ to change. PR: kern/42465 MFC after: 4 days
This commit is contained in:
parent
a5b65058d5
commit
232a880278
@ -613,8 +613,6 @@ ether_input(struct ifnet *ifp, struct ether_header *eh, struct mbuf *m)
|
||||
return;
|
||||
}
|
||||
if (bif != BDG_LOCAL) {
|
||||
struct mbuf *oldm = m ;
|
||||
|
||||
save_eh = *eh ; /* because it might change */
|
||||
m = bdg_forward_ptr(m, eh, bif); /* needs forwarding */
|
||||
/*
|
||||
@ -627,8 +625,7 @@ ether_input(struct ifnet *ifp, struct ether_header *eh, struct mbuf *m)
|
||||
printf("bdg_forward drop MULTICAST PKT\n");
|
||||
return;
|
||||
}
|
||||
if (m != oldm) /* m changed! */
|
||||
eh = &save_eh ;
|
||||
eh = &save_eh ;
|
||||
}
|
||||
if (bif == BDG_LOCAL
|
||||
|| bif == BDG_BCAST
|
||||
|
Loading…
Reference in New Issue
Block a user