Input: synaptics - avoid using uninitialized variable when probing
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 17 Oct 2018 00:07:35 +0000 (17:07 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 19 Oct 2018 17:40:12 +0000 (10:40 -0700)
synaptics_detect() does not check whether sending commands to the
device succeeds and instead relies on getting unique data from the
device. Let's make sure we seed entire buffer with zeroes to make sure
we will not use garbage on stack that just happen to be 0x47.

Reported-by: syzbot+13cb3b01d0784e4ffc3f@syzkaller.appspotmail.com
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/synaptics.c

index 55d33500d55ec4ffb71ebc31c9a3e604cf00ea06..5e85f3cca867dc23feb5e5753c86addfb06ddaf9 100644 (file)
@@ -99,9 +99,7 @@ static int synaptics_mode_cmd(struct psmouse *psmouse, u8 mode)
 int synaptics_detect(struct psmouse *psmouse, bool set_properties)
 {
        struct ps2dev *ps2dev = &psmouse->ps2dev;
-       u8 param[4];
-
-       param[0] = 0;
+       u8 param[4] = { 0 };
 
        ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES);
        ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES);