[S390] keyboard: integer underflow bug

The "ct" variable should be an unsigned int. Both struct kbdiacrs
->kb_cnt and struct kbd_data ->accent_table_size are unsigned ints.

Making it signed causes a problem in KBDIACRUC because the user could
set the signed bit and cause a buffer overflow.

Cc: <stable@kernel.org>
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by Dan Carpenter and committed by Martin Schwidefsky b652277b 0c0db035

+2 -1
+2 -1
drivers/s390/char/keyboard.c
··· 460 unsigned int cmd, unsigned long arg) 461 { 462 void __user *argp; 463 - int ct, perm; 464 465 argp = (void __user *)arg; 466
··· 460 unsigned int cmd, unsigned long arg) 461 { 462 void __user *argp; 463 + unsigned int ct; 464 + int perm; 465 466 argp = (void __user *)arg; 467