summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2011-11-25 00:09:00 +0100
committerDavid S. Miller <davem@davemloft.net>2011-11-29 06:23:13 +0100
commit10cae1c8dfbbdee55bdfcb7034f4c2c1197dc0a4 (patch)
treeb46d5e41cbc3e8852d9239153f82d268865fe14c
parentNET: NETROM: When adding a route verify length of mnemonic string. (diff)
downloadlinux-10cae1c8dfbbdee55bdfcb7034f4c2c1197dc0a4.tar.xz
linux-10cae1c8dfbbdee55bdfcb7034f4c2c1197dc0a4.zip
NET: NETROM: Cleanup argument SIOCADDRT ioctl argument checking.
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>
-rw-r--r--net/netrom/nr_route.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c
index 8d7716ca5342..2cf330162d7e 100644
--- a/net/netrom/nr_route.c
+++ b/net/netrom/nr_route.c
@@ -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) {