Input: add safety guards to input_set_keycode() MMI-QSAS30.62-24-11
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 13 Dec 2019 22:56:16 +0000 (14:56 -0800)
committerchenyt9 <chenyt9@lenovo.com>
Wed, 14 Oct 2020 07:32:47 +0000 (15:32 +0800)
commit3e1396f8cfa61e115d36c7cb42255d20b6fc1f41
tree1d2c662d3c768222b8157d6d043d010de67fbf07
parent4f346969ace78fc6049fc06f663a1eb254e80679
Input: add safety guards to input_set_keycode()

commit cb222aed03d798fc074be55e59d9a112338ee784 upstream.

If we happen to have a garbage in input device's keycode table with values
too big we'll end up doing clear_bit() with offset way outside of our
bitmaps, damaGing other objects within an input device or even outside of
it. Let's add sanity checks to the returned old keycodes.

Mot-CRs-fixed: (CR)
CVE-Fixed: CVE-2019-20636
Bug: 153715664

Reported-by: syzbot+c769968809f9359b07aa@syzkaller.appspotmail.com
Reported-by: syzbot+76f3a30e88d256644c78@syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20191207212757.GA245964@dtor-ws
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jignesh Patel <jignesh@motorola.com>
Change-Id: I819da9e84f4e91140514e22fd6d4afc43359a3d2
Reviewed-on: https://gerrit.mot.com/1604271
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
(cherry picked from commit a5aaf589dabb64175e48d82cbcf624cdb0564934)
drivers/input/input.c