diff options
author | Florian Westphal <fw@strlen.de> | 2019-06-03 22:41:44 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-04 14:24:10 -0700 |
commit | d3e6e285fff3494a5c12154c8e7d79f5181d3ddc (patch) | |
tree | cde6818d92d666c803a42841832563f5324ca19c /net/ipv4/devinet.c | |
parent | ae95f9c1a5601b3dd40d72436ef835b5bbb429a7 (diff) | |
download | lwn-d3e6e285fff3494a5c12154c8e7d79f5181d3ddc.tar.gz lwn-d3e6e285fff3494a5c12154c8e7d79f5181d3ddc.zip |
net: ipv4: fix rcu lockdep splat due to wrong annotation
syzbot triggered following splat when strict netlink
validation is enabled:
net/ipv4/devinet.c:1766 suspicious rcu_dereference_check() usage!
This occurs because we hold RTNL mutex, but no rcu read lock.
The second call site holds both, so just switch to the _rtnl variant.
Reported-by: syzbot+bad6e32808a3a97b1515@syzkaller.appspotmail.com
Fixes: 2638eb8b50cf ("net: ipv4: provide __rcu annotation for ifa_list")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/devinet.c')
-rw-r--r-- | net/ipv4/devinet.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index ebaea05b4033..ed2e2dc745cd 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -1763,7 +1763,7 @@ static int in_dev_dump_addr(struct in_device *in_dev, struct sk_buff *skb, int ip_idx = 0; int err; - in_dev_for_each_ifa_rcu(ifa, in_dev) { + in_dev_for_each_ifa_rtnl(ifa, in_dev) { if (ip_idx < s_ip_idx) { ip_idx++; continue; |