diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2006-10-16 11:28:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-16 11:27:54 -0400 |
commit | 9d90dafdb1f0e3c2b69fa8d3fbe99649127c8fa4 (patch) | |
tree | 1bfc2de4c1bdbccaa4922b15664a9c33919d4570 /drivers/char/rio/rioctrl.c | |
parent | 51018b0a3160d253283173c2f54f16746cee5852 (diff) |
[PATCH] rio: fix array checking
Found by an analysis tool and reported to the list. Fix is simple enough
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/rio/rioctrl.c')
-rw-r--r-- | drivers/char/rio/rioctrl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/rio/rioctrl.c b/drivers/char/rio/rioctrl.c index 052e8120a471..7ce77619707c 100644 --- a/drivers/char/rio/rioctrl.c +++ b/drivers/char/rio/rioctrl.c | |||
@@ -662,7 +662,7 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int su | |||
662 | p->RIOError.Error = COPYIN_FAILED; | 662 | p->RIOError.Error = COPYIN_FAILED; |
663 | return -EFAULT; | 663 | return -EFAULT; |
664 | } | 664 | } |
665 | if (portStats.port >= RIO_PORTS) { | 665 | if (portStats.port < 0 || portStats.port >= RIO_PORTS) { |
666 | p->RIOError.Error = PORT_NUMBER_OUT_OF_RANGE; | 666 | p->RIOError.Error = PORT_NUMBER_OUT_OF_RANGE; |
667 | return -ENXIO; | 667 | return -ENXIO; |
668 | } | 668 | } |
@@ -702,7 +702,7 @@ int riocontrol(struct rio_info *p, dev_t dev, int cmd, unsigned long arg, int su | |||
702 | p->RIOError.Error = COPYIN_FAILED; | 702 | p->RIOError.Error = COPYIN_FAILED; |
703 | return -EFAULT; | 703 | return -EFAULT; |
704 | } | 704 | } |
705 | if (portStats.port >= RIO_PORTS) { | 705 | if (portStats.port < 0 || portStats.port >= RIO_PORTS) { |
706 | p->RIOError.Error = PORT_NUMBER_OUT_OF_RANGE; | 706 | p->RIOError.Error = PORT_NUMBER_OUT_OF_RANGE; |
707 | return -ENXIO; | 707 | return -ENXIO; |
708 | } | 708 | } |