| From stable-bounces@linux.kernel.org Tue Feb 13 18:14:08 2007 |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| Date: Tue, 13 Feb 2007 18:12:38 -0800 (PST) |
| Subject: Clear TCP segmentation offload state in ipt_REJECT |
| To: stable@kernel.org |
| Cc: bunk@stusta.de |
| Message-ID: <20070213.181238.74561510.davem@davemloft.net> |
| |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| |
| [NETFILTER]: Clear GSO bits for TCP reset packet |
| |
| The TCP reset packet is copied from the original. This |
| includes all the GSO bits which do not apply to the new |
| packet. So we should clear those bits. |
| |
| Spotted by Patrick McHardy. |
| |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/ipv4/netfilter/ipt_REJECT.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- linux-2.6.20.1.orig/net/ipv4/netfilter/ipt_REJECT.c |
| +++ linux-2.6.20.1/net/ipv4/netfilter/ipt_REJECT.c |
| @@ -79,6 +79,10 @@ static void send_reset(struct sk_buff *o |
| nskb->mark = 0; |
| skb_init_secmark(nskb); |
| |
| + skb_shinfo(nskb)->gso_size = 0; |
| + skb_shinfo(nskb)->gso_segs = 0; |
| + skb_shinfo(nskb)->gso_type = 0; |
| + |
| tcph = (struct tcphdr *)((u_int32_t*)nskb->nh.iph + nskb->nh.iph->ihl); |
| |
| /* Swap source and dest */ |