summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2005-09-22 01:46:11 +0000
committerthompsa <thompsa@FreeBSD.org>2005-09-22 01:46:11 +0000
commit7aea9537066f41dd6017c34a43ef26bd178eecb8 (patch)
tree5429533b17c8e08ffdbfde454299c4d885a46522 /sys
parent85af1344fbf17fc649ed57a21515b81924a17194 (diff)
downloadFreeBSD-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.c2
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);
OpenPOWER on IntegriCloud