summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/lib/Makefile
diff options
context:
space:
mode:
authorEric Dumazet2011-05-04 12:02:26 +0200
committerDavid S. Miller2011-05-04 23:04:07 +0200
commit64f3b9e203bd06855072e295557dca1485a2ecba (patch)
treef5aed4dc313db9ce9c98533d56ed9fd6db4bf596 /arch/xtensa/lib/Makefile
parentsysctl: net: call unregister_net_sysctl_table where needed (diff)
downloadkernel-qcow2-linux-64f3b9e203bd06855072e295557dca1485a2ecba.tar.gz
kernel-qcow2-linux-64f3b9e203bd06855072e295557dca1485a2ecba.tar.xz
kernel-qcow2-linux-64f3b9e203bd06855072e295557dca1485a2ecba.zip
net: ip_expire() must revalidate route
Commit 4a94445c9a5c (net: Use ip_route_input_noref() in input path) added a bug in IP defragmentation handling, in case timeout is fired. When a frame is defragmented, we use last skb dst field when building final skb. Its dst is valid, since we are in rcu read section. But if a timeout occurs, we take first queued fragment to build one ICMP TIME EXCEEDED message. Problem is all queued skb have weak dst pointers, since we escaped RCU critical section after their queueing. icmp_send() might dereference a now freed (and possibly reused) part of memory. Calling skb_dst_drop() and ip_route_input_noref() to revalidate route is the only possible choice. Reported-by: Denys Fedoryshchenko <denys@visp.net.lb> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/xtensa/lib/Makefile')
0 files changed, 0 insertions, 0 deletions