linux/drivers/input/mouse
Benjamin Tissoires 40f7090bb1 Input: elan_i2c_smbus - fix corrupted stack
New ICs (like the one on the Lenovo T480s) answer to
ETP_SMBUS_IAP_VERSION_CMD 4 bytes instead of 3. This corrupts the stack
as i2c_smbus_read_block_data() uses the values returned by the i2c
device to know how many data it need to return.

i2c_smbus_read_block_data() can read up to 32 bytes (I2C_SMBUS_BLOCK_MAX)
and there is no safeguard on how many bytes are provided in the return
value. Ensure we always have enough space for any future firmware.
Also 0-initialize the values to prevent any access to uninitialized memory.

Cc: <stable@vger.kernel.org> # v4.4.x, v4.9.x, v4.14.x, v4.15.x, v4.16.x
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: KT Liao <kt.liao@emc.com.tw>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2018-05-23 11:48:59 -07:00
..
Kconfig Input: synaptics - add support for Intertouch devices 2017-03-25 10:37:30 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
alps.c Input: alps - fix reporting pressure of v3 trackstick 2018-04-23 16:38:16 -07:00
alps.h Input: ALPS - fix multi-touch decoding on SS4 plus touchpads 2018-01-12 00:41:36 -08:00
amimouse.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
appletouch.c Input: appletouch - use true and false for boolean values 2018-03-14 10:13:08 -07:00
atarimouse.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
bcm5974.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
byd.c Input: byd - convert to using timer_setup() 2017-10-23 16:31:43 -07:00
byd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cyapa.c Input: cyapa - remove redundant assignment to 'pwr_cmd' 2018-01-18 11:39:49 -08:00
cyapa.h Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cyapa_gen3.c Input: cyapa - remove duplicated macro definitions 2018-01-08 17:42:00 -08:00
cyapa_gen5.c Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cyapa_gen6.c Input: cyapa - fix for losing events during device power transitions 2016-03-04 11:32:13 -08:00
cypress_ps2.c Input: mouse - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:28 -08:00
cypress_ps2.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
elan_i2c.h Input: elan_i2c - support touchpads with two physical buttons 2017-08-18 17:07:02 -07:00
elan_i2c_core.c Linux 4.15 2018-02-01 00:41:33 -08:00
elan_i2c_i2c.c Input: elan_i2c - extend Flash-Write delay 2017-09-22 10:07:38 -07:00
elan_i2c_smbus.c Input: elan_i2c_smbus - fix corrupted stack 2018-05-23 11:48:59 -07:00
elantech.c Input: psmouse - move sliced command implementation to libps2 2018-02-02 16:50:24 -08:00
elantech.h Input: elantech - add special check for fw_version 0x470f01 touchpad 2015-08-07 14:54:15 -07:00
focaltech.c Input: psmouse - cleanup Focaltech code 2016-10-24 17:19:25 -07:00
focaltech.h Input: psmouse - rearrange Focaltech init code 2015-12-17 15:23:54 -08:00
gpio_mouse.c Input: gpio_mouse - add device tree probing 2017-10-19 17:08:46 -07:00
hgpk.c Input: mouse - use local variables consistently 2017-01-21 23:52:22 -08:00
hgpk.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
inport.c Annotate hardware config module parameters in drivers/input/ 2017-04-20 12:02:32 +01:00
lifebook.c Input: lifebook - clean up code 2018-02-02 16:49:17 -08:00
lifebook.h Input: lifebook - use "static inline" instead of "inline" in lifebook.h 2014-11-09 22:59:25 -08:00
logibm.c Annotate hardware config module parameters in drivers/input/ 2017-04-20 12:02:32 +01:00
logips2pp.c Input: psmouse - move sliced command implementation to libps2 2018-02-02 16:50:24 -08:00
logips2pp.h Input: psmouse - rename ps2pp_init() to ps2pp_detect() 2015-12-17 15:24:37 -08:00
maplemouse.c Input: mouse - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:28 -08:00
navpoint.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
pc110pad.c Input: switch to input_abs_*() access functions 2010-08-02 20:29:56 -07:00
psmouse-base.c Merge branch 'psmouse' into next 2018-03-17 10:58:05 -07:00
psmouse-smbus.c Input: psmouse - use i2c_client_type to locate i2c clients 2017-04-03 12:03:55 -07:00
psmouse.h Input: psmouse - move sliced command implementation to libps2 2018-02-02 16:50:24 -08:00
pxa930_trkball.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
rpcmouse.c input: rpcmouse: use __iomem pointers for MMIO 2012-09-19 15:37:13 +02:00
sentelic.c Input: psmouse - create helper for reporting standard buttons/motion 2018-02-02 16:48:56 -08:00
sentelic.h Input: sentelic - use "static inline" instead of "inline" 2015-05-22 10:59:54 -07:00
sermouse.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
synaptics.c Input: synaptics - add Lenovo 80 series ids to SMBus 2018-05-23 11:47:04 -07:00
synaptics.h Input: synaptics - use u8 instead of unsigned char 2017-04-03 16:23:58 -07:00
synaptics_i2c.c Input: synaptics_i2c - add OF device ID table 2017-03-23 14:46:32 -07:00
synaptics_usb.c Input: synaptics_usb - do not rely on input_dev->users 2018-03-17 11:05:18 -07:00
touchkit_ps2.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
touchkit_ps2.h
trackpoint.c Input: trackpoint - combine calls to ps2_command() 2018-02-02 16:51:32 -08:00
trackpoint.h Input: trackpoint - only expose supported controls for Elan, ALPS and NXP 2018-01-22 16:24:36 -08:00
vmmouse.c x86/virt: Add enum for hypervisors to replace x86_hyper 2017-11-10 10:03:12 +01:00
vmmouse.h Input: add vmmouse driver 2015-04-14 14:29:03 -07:00
vsxxxaa.c Input: vsxxxaa - fix code dropping bytes from queue 2014-10-28 10:33:48 -07:00