diff options
author | thompsa <thompsa@FreeBSD.org> | 2005-09-22 01:46:11 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2005-09-22 01:46:11 +0000 |
commit | 7aea9537066f41dd6017c34a43ef26bd178eecb8 (patch) | |
tree | 5429533b17c8e08ffdbfde454299c4d885a46522 /sys | |
parent | 85af1344fbf17fc649ed57a21515b81924a17194 (diff) | |
download | FreeBSD-src-7aea9537066f41dd6017c34a43ef26bd178eecb8.zip FreeBSD-src-7aea9537066f41dd6017c34a43ef26bd178eecb8.tar.gz |
Fix an alignment panic my preserving the 2byte padding (ETHER_ALIGN) on our
copied mbuf, which keeps the IP header 32-bit aligned. This copied mbuf is
reinjected back into ether_input and off to the IP routines.
Reported and tested by: Peter van Dijk
Approved by: mlaier (mentor)
MFC after: 3 days
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/if_bridge.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index e4812cb..d112474 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1751,7 +1751,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) */ KASSERT(bifp->if_bridge == NULL, ("loop created in bridge_input")); - mc2 = m_dup(m, M_DONTWAIT); + mc2 = m_copypacket(m, M_DONTWAIT); if (mc2 != NULL) { mc2->m_pkthdr.rcvif = bifp; (*bifp->if_input)(bifp, mc2); |