summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-03-10 02:07:09 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-10 02:07:09 -0800
commit7577433126b5efaa164536f8ccb34b408a914f83 (patch)
tree64f4c02f2ef81ea0b179aa6f12bfadd058706b7c /drivers/input
parenta08be13ed5b251dc4acc9d4b3a413a3a9bb11332 (diff)
parent401dce7cfdfea999a5209e52371beca9423452b7 (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.c4
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);