gro: Fix use after free in tcp_gro_receive
authorHerbert Xu <herbert@gondor.apana.org.au>
Fri, 17 Apr 2009 09:34:38 +0000 (02:34 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Apr 2009 09:34:38 +0000 (02:34 -0700)
After calling skb_gro_receive skb->len can no longer be relied
on since if the skb was merged using frags, then its pages will
have been removed and the length reduced.

This caused tcp_gro_receive to prematurely end merging which
resulted in suboptimal performance with ixgbe.

The fix is to store skb->len on the stack.

Reported-by: Mark Wagner <mwagner@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c

diff --cc net/ipv4/tcp.c
Simple merge