NET: NETROM: Cleanup argument SIOCADDRT ioctl argument checking.
authorRalf Baechle <ralf@linux-mips.org>
Thu, 24 Nov 2011 23:09:00 +0000 (23:09 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Nov 2011 05:23:13 +0000 (00:23 -0500)
nr_route.ndigis is unsigned int so the nr_route.ndigis < 0 expression is
never true and can be dropped.  Doing the nr_ax25_dev_get call later
allows the nr_route.ndigis test to bail out without having to dev_put.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Cc: Thomas Osterried <thomas@osterried.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netrom/nr_route.c

index 8d7716ca53429a99a08381f0459803731a535efe..2cf330162d7e8e21ddcbc21eb741336e332ec422 100644 (file)
@@ -670,12 +670,10 @@ int nr_rt_ioctl(unsigned int cmd, void __user *arg)
        case SIOCADDRT:
                if (copy_from_user(&nr_route, arg, sizeof(struct nr_route_struct)))
                        return -EFAULT;
-               if ((dev = nr_ax25_dev_get(nr_route.device)) == NULL)
+               if (nr_route.ndigis > AX25_MAX_DIGIS)
                        return -EINVAL;
-               if (nr_route.ndigis < 0 || nr_route.ndigis > AX25_MAX_DIGIS) {
-                       dev_put(dev);
+               if ((dev = nr_ax25_dev_get(nr_route.device)) == NULL)
                        return -EINVAL;
-               }
                switch (nr_route.type) {
                case NETROM_NODE:
                        if (strnlen(nr_route.mnemonic, 7) == 7) {