]> git.hungrycats.org Git - linux/commit
[BR_NETFILTER]: Fix vlan-encapsulated fragmented IP traffic.
authorBart De Schuymer <bdschuym@pandora.be>
Sun, 29 Feb 2004 13:53:00 +0000 (05:53 -0800)
committerDavid S. Miller <davem@nuts.davemloft.net>
Sun, 29 Feb 2004 13:53:00 +0000 (05:53 -0800)
commit4c940322378f555e92c29acface32045bfafc55b
tree92a673536e0dc07be65005b3a357ad6374f47f3a
parentec91be9a2f24716484f31d74ddec1af1fb19d00d
[BR_NETFILTER]: Fix vlan-encapsulated fragmented IP traffic.

When vlan-tagged fragmented IP traffic passes the bridging firewall and
ip_conntrack is loaded and iptables sees this IP traffic, an oops can
occur when trying to fragment the defragmented packets. This only
happens in the slow_path of ip_fragment().
The problem was reported, diagnosed and fixed by Adam Osuchowski and
Tomasz Dubinski.
When ip_fragment() is fragmenting an IP packet that's encapsulated, it has
to make sure there is enough head room for the encapsulating header.

The patch below fixes it. I saw no other way than to add some code to
ip_fragment(), but this extra code is located in the slow_path so it's
hardly ever executed.
include/linux/netfilter_bridge.h
net/ipv4/ip_output.c