[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <456CF049.7040407@trash.net>
Date: Wed, 29 Nov 2006 03:28:25 +0100
From: Patrick McHardy <kaber@...sh.net>
To: Krzysztof Halasa <khc@...waw.pl>
CC: David Miller <davem@...emloft.net>,
lkml <linux-kernel@...r.kernel.org>, netdev@...r.kernel.org,
Netfilter Development Mailinglist
<netfilter-devel@...ts.netfilter.org>
Subject: Re: Broken commit: [NETFILTER]: ipt_REJECT: remove largely duplicate
route_reverse function
Krzysztof Halasa wrote:
> Patrick McHardy <kaber@...sh.net> writes:
>
>
>>It might be the case that your network device has a
>>hard_header_len > LL_MAX_HEADER, which could trigger
>>a corruption.
>
>
> Hmm... GRE tunnels add 24 bytes... I just noticed the following code in
> include/linux/netdevice.h:
>
> /*
> * Compute the worst case header length according to the protocols
> * used.
> */
> #if !defined(CONFIG_NET_IPIP) && \
> !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE)
> #define MAX_HEADER LL_MAX_HEADER
> #else
> #define MAX_HEADER (LL_MAX_HEADER + 48)
> #endif
>
> I don't use AX25, Token Ring, the old IPIP tunnels nor IPv6 here, but
> I wonder if GRE tunnel (which is basically another, more compatible
> form of IPIP) need the same treatment as IPIP.
Both ipip and gre do this:
dev->hard_header_len = LL_MAX_HEADER + sizeof(struct iphdr);
which explains it. It is a bug in the REJECT target, but I was
wondering whether you were really seeing this. It looks like
it makes sense to add GRE to the MAX_HEADER case above though.
>>Please try this patch on top of the REJECT patch (ideally after
>>verifying that the REJECT patch is really introducing the
>>corruption).
>
>
> That was certain. The patch fixed the problem, confirmed with current
> git tree as well. Thanks for looking at it.
Thanks. Dave, please apply this patch.
[NETFILTER]: ipt_REJECT: fix memory corruption
On devices with hard_header_len > LL_MAX_HEADER ip_route_me_harder()
reallocates the skb, leading to memory corruption when using the stale
tcph pointer to update the checksum.
Signed-off-by: Patrick McHardy <kaber@...sh.net>
View attachment "x" of type "text/plain" (1061 bytes)
Powered by blists - more mailing lists