cvs commit: src/sys/amd64/include _types.h src/sys/i386/include _types.h src/sys/net if_bridge.c src/sys/netinet ip_var.h src/sys/netinet6 ip6_var.h

[ Available lists | Index of cvs-src | Month of Jul 2005 | Week of 2 Jul 2005 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Andrew Thompson <thompsa@FreeBSD.org>
Date
2 Jul 2005 23:13:32
Subject
cvs commit: src/sys/amd64/include _types.h src/sys/i386/include _types.h src/sys/net if_bridge.c src/sys/netinet ip_var.h src/sys/netinet6 ip6_var.h
Message-ID
200507022313.j62NDWYC028248@repoman.freebsd.org


[ Hide this part ]
thompsa     2005-07-02 23:13:31 UTC

FreeBSD src repository

Modified files:
sys/amd64/include _types.h
sys/i386/include _types.h
sys/net if_bridge.c
sys/netinet ip_var.h
sys/netinet6 ip6_var.h
Log:
Check the alignment of the IP header before passing the packet up to the
packet filter. This would cause a panic on architectures that require strict
alignment such as sparc64 (tier1) and ia64/ppc (tier2).

This adds two new macros that check the alignment, these are compile time
dependent on __NO_STRICT_ALIGNMENT which is set for i386 and amd64 where
alignment isn't need so the cost is avoided.

IP_HDR_ALIGNED_P()
IP6_HDR_ALIGNED_P()

Move bridge_ip_checkbasic()/bridge_ip6_checkbasic() up so that the alignment
is checked for ipfw and dummynet too.

PR: ia64/81284
Obtained from: NetBSD
Approved by: re (dwhite), mlaier (mentor)

Revision Changes Path
1.9 +2 -0 src/sys/amd64/include/_types.h
1.12 +2 -0 src/sys/i386/include/_types.h
1.10 +48 -27 src/sys/net/if_bridge.c
1.95 +6 -0 src/sys/netinet/ip_var.h
1.30 +6 -0 src/sys/netinet6/ip6_var.h


Elapsed time: 0.139 seconds