diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-03-10 02:07:09 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-10 02:07:09 -0800 |
| commit | 7577433126b5efaa164536f8ccb34b408a914f83 (patch) | |
| tree | 64f4c02f2ef81ea0b179aa6f12bfadd058706b7c /drivers/input | |
| parent | a08be13ed5b251dc4acc9d4b3a413a3a9bb11332 (diff) | |
| parent | 401dce7cfdfea999a5209e52371beca9423452b7 (diff) | |
Merge "input: touchscreen: fix buffer overflow issue in synaptics driver"
Diffstat (limited to 'drivers/input')
| -rw-r--r-- | drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c index 52bd5cfc37c8..168318f85e53 100644 --- a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c +++ b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c @@ -2218,10 +2218,12 @@ static int fwu_get_image_firmware_id(unsigned int *fw_id) __func__); return -ENOMEM; } - while (strptr[index] >= '0' && strptr[index] <= '9') { + while ((index < MAX_FIRMWARE_ID_LEN - 1) && strptr[index] >= '0' + && strptr[index] <= '9') { firmware_id[index] = strptr[index]; index++; } + firmware_id[index] = '\0'; retval = sstrtoul(firmware_id, 10, (unsigned long *)fw_id); kfree(firmware_id); |
