Browse Source

[PATCH] Wrong out of range check in drivers/char/applicom.c

This fixes coverity bug id #469.  The out of range check didnt work as
intended, as seen by the printk(), which states that boardno has to be 1 <=
boardno <= MAX_BOARD.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Eric Sesterhenn 19 years ago
parent
commit
e60b6e2f74
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/char/applicom.c

+ 1 - 1
drivers/char/applicom.c

@@ -142,7 +142,7 @@ static int ac_register_board(unsigned long physloc, void __iomem *loc,
 	if (!boardno)
 	if (!boardno)
 		boardno = readb(loc + NUMCARD_OWNER_TO_PC);
 		boardno = readb(loc + NUMCARD_OWNER_TO_PC);
 
 
-	if (!boardno && boardno > MAX_BOARD) {
+	if (!boardno || boardno > MAX_BOARD) {
 		printk(KERN_WARNING "Board #%d (at 0x%lx) is out of range (1 <= x <= %d).\n",
 		printk(KERN_WARNING "Board #%d (at 0x%lx) is out of range (1 <= x <= %d).\n",
 		       boardno, physloc, MAX_BOARD);
 		       boardno, physloc, MAX_BOARD);
 		return 0;
 		return 0;