OSDN Git Service

ipv6: stub out even more of addrconf_set_dstaddr if SIT is disabled
authorChristoph Hellwig <hch@lst.de>
Tue, 19 May 2020 13:03:17 +0000 (15:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 May 2020 22:45:12 +0000 (15:45 -0700)
There is no point in copying the structure from userspace or looking up
a device if SIT support is not disabled and we'll eventually return
-ENODEV anyway.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c

index ab7e839..8300176 100644 (file)
@@ -2794,6 +2794,9 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
        struct net_device *dev;
        int err = -EINVAL;
 
+       if (!IS_ENABLED(CONFIG_IPV6_SIT))
+               return -ENODEV;
+
        rtnl_lock();
 
        err = -EFAULT;
@@ -2806,7 +2809,6 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
        if (!dev)
                goto err_exit;
 
-#if IS_ENABLED(CONFIG_IPV6_SIT)
        if (dev->type == ARPHRD_SIT) {
                const struct net_device_ops *ops = dev->netdev_ops;
                struct ifreq ifr;
@@ -2842,7 +2844,6 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
                        err = dev_open(dev, NULL);
                }
        }
-#endif
 
 err_exit:
        rtnl_unlock();