diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2008-05-20 14:32:14 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-05-20 14:32:14 -0700 |
commit | 1ac06e0306d0192a7a4d9ea1c9e06d355ce7e7d3 (patch) | |
tree | 610968ecaa89b3b9144db508dc2bd650afadce74 /lib | |
parent | 6f704992d3658aadff9e506c7fd80957fce33c5f (diff) | |
download | op-kernel-dev-1ac06e0306d0192a7a4d9ea1c9e06d355ce7e7d3.zip op-kernel-dev-1ac06e0306d0192a7a4d9ea1c9e06d355ce7e7d3.tar.gz |
ipsec: Use the correct ip_local_out function
Because the IPsec output function xfrm_output_resume does its
own dst_output call it should always call __ip_local_output
instead of ip_local_output as the latter may invoke dst_output
directly. Otherwise the return values from nf_hook and dst_output
may clash as they both use the value 1 but for different purposes.
When that clash occurs this can cause a packet to be used after
it has been freed which usually leads to a crash. Because the
offending value is only returned from dst_output with qdiscs
such as HTB, this bug is normally not visible.
Thanks to Marco Berizzi for his perseverance in tracking this
down.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions