diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-04-17 02:34:38 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-17 02:34:38 -0700 |
commit | a0a69a0106dab8d20596f97f6674bed3b394d1ee (patch) | |
tree | 2477a32cab5f8afdb1c158f0b151048ee7afc594 /kernel/kfifo.c | |
parent | 9dd014eb9804f19d6230c3cbc10fa25f5416bda7 (diff) | |
download | blackbird-op-linux-a0a69a0106dab8d20596f97f6674bed3b394d1ee.tar.gz blackbird-op-linux-a0a69a0106dab8d20596f97f6674bed3b394d1ee.zip |
gro: Fix use after free in tcp_gro_receive
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>
Diffstat (limited to 'kernel/kfifo.c')
0 files changed, 0 insertions, 0 deletions