]> git.baikalelectronics.ru Git - kernel.git/commit
net/ipv6: add rcu locking to ip6_negative_advice
authorDavid Ahern <dsahern@gmail.com>
Mon, 23 Apr 2018 18:32:06 +0000 (11:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Apr 2018 20:12:54 +0000 (16:12 -0400)
commit8d710a4fe6822a1b28ec9d48bb93647753c077ba
tree95fbbd5c0e179f628f9bd3b511acf56e658d3d46
parentb2e5ccd55ebf30b1f0c493a794b10f6765d1918b
net/ipv6: add rcu locking to ip6_negative_advice

syzbot reported a suspicious rcu_dereference_check:
  __dump_stack lib/dump_stack.c:77 [inline]
  dump_stack+0x1b9/0x294 lib/dump_stack.c:113
  lockdep_rcu_suspicious+0x14a/0x153 kernel/locking/lockdep.c:4592
  rt6_check_expired+0x38b/0x3e0 net/ipv6/route.c:410
  ip6_negative_advice+0x67/0xc0 net/ipv6/route.c:2204
  dst_negative_advice include/net/sock.h:1786 [inline]
  sock_setsockopt+0x138f/0x1fe0 net/core/sock.c:1051
  __sys_setsockopt+0x2df/0x390 net/socket.c:1899
  SYSC_setsockopt net/socket.c:1914 [inline]
  SyS_setsockopt+0x34/0x50 net/socket.c:1911

Add rcu locking around call to rt6_check_expired in
ip6_negative_advice.

Fixes: ec7b3e64852f ("net/ipv6: Make from in rt6_info rcu protected")
Reported-by: syzbot+2422c9e35796659d2273@syzkaller.appspotmail.com
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c