2005-11-12 21:00:18

by Gabriel A. Devenyi

[permalink] [raw]
Subject: [RESEND] [PATCH] drivers/char/keyboard.c unsigned comparison

keycode is a checked for a value less than zero, but is defined as an unsigned int, and is only called in one place in the kernel, and passed a unsigned int, so this comparison is bogus.

Thanks to LinuxICC (http://linuxicc.sf.net)

This patch applies to Linus' git tree as of 12.11.2005

Signed-off-by: Gabriel A. Devenyi <[email protected]>

diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 449d029..6e991ea 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -198,7 +198,7 @@ int setkeycode(unsigned int scancode, un

if (scancode >= dev->keycodemax)
return -EINVAL;
- if (keycode < 0 || keycode > KEY_MAX)
+ if (keycode > KEY_MAX)
return -EINVAL;
if (dev->keycodesize < sizeof(keycode) && (keycode >> (dev->keycodesize * 8)))
return -EINVAL;

--
Gabriel A. Devenyi
[email protected]