[PATCH] net: get ops lock under dev valid

Edward Adam Davis posted 1 patch 10 months ago
net/ipv6/addrconf.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
[PATCH] net: get ops lock under dev valid
Posted by Edward Adam Davis 10 months ago
Make sure that dev is not NULL before locking ops. 

Fixes: 8965c160b8f7 ("net: use netif_disable_lro in ipv6_add_dev")
Reported-by: syzbot+10d145ea96fc91185445@syzkaller.appspotmail.com
Signed-off-by: Edward Adam Davis <eadavis@qq.com>
---
 net/ipv6/addrconf.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 2cffb8f4a2bc..5d9fd01e6265 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3154,12 +3154,13 @@ int addrconf_add_ifaddr(struct net *net, void __user *arg)
 
 	rtnl_net_lock(net);
 	dev = __dev_get_by_index(net, ireq.ifr6_ifindex);
-	netdev_lock_ops(dev);
-	if (dev)
+	if (dev) {
+		netdev_lock_ops(dev);
 		err = inet6_addr_add(net, dev, &cfg, 0, 0, NULL);
+		netdev_unlock_ops(dev);
+	}
 	else
 		err = -ENODEV;
-	netdev_unlock_ops(dev);
 	rtnl_net_unlock(net);
 	return err;
 }
-- 
2.43.0
Re: [PATCH] net: get ops lock under dev valid
Posted by Stanislav Fomichev 10 months ago
On 04/07, Edward Adam Davis wrote:
> Make sure that dev is not NULL before locking ops. 
> 
> Fixes: 8965c160b8f7 ("net: use netif_disable_lro in ipv6_add_dev")
> Reported-by: syzbot+10d145ea96fc91185445@syzkaller.appspotmail.com
> Signed-off-by: Edward Adam Davis <eadavis@qq.com>

I think this happened first?
https://lore.kernel.org/netdev/Z_Pb9dku3R1wdTEp@mini-arch/T/#m733abfc2e974bf96cfdebc8a47aa58f39bf76b82