aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2015-01-21 03:45:42 -0800
committerDavid S. Miller <davem@davemloft.net>2015-01-26 00:44:08 -0800
commit1dc7b90f7cd050ef6d5e511e652347e52874469c (patch)
tree5362ed5e14526d303ba83fc1f596f69fb63933ba /lib
parentrhashtable: fix rht_for_each_entry_safe() endless loop (diff)
downloadlinux-dev-1dc7b90f7cd050ef6d5e511e652347e52874469c.tar.xz
linux-dev-1dc7b90f7cd050ef6d5e511e652347e52874469c.zip
ipv6: tcp: fix race in IPV6_2292PKTOPTIONS
IPv6 TCP sockets store in np->pktoptions skbs, and use skb_set_owner_r() to charge the skb to socket. It means that destructor must be called while socket is locked. Therefore, we cannot use skb_get() or atomic_inc(&skb->users) to protect ourselves : kfree_skb() might race with other users manipulating sk->sk_forward_alloc Fix this race by holding socket lock for the duration of ip6_datagram_recv_ctl() Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions