usb: f_serial: Check for SMD data length in GSER_IOCTL

If user tries to send SMD data more than the driver
buffer can handle then fail the same and print
error message. This smd_write is exposed to userspace
through ioctl using a misc device.

Change-Id: Ie8a1c1c0799cd10cef512ad6b1e1e95001dd43b2
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
This commit is contained in:
Manu Gautam 2016-04-05 15:20:47 +05:30 committed by Gerrit - the friendly Code Review server
parent 0e5fad2c4f
commit 2f1a228c14
1 changed files with 7 additions and 0 deletions

View File

@ -1361,6 +1361,13 @@ static long gser_ioctl(struct file *fp, unsigned cmd, unsigned long arg)
smd_port_num =
gserial_ports[gser->port_num].client_port_num;
if (smd_write_arg.size > GSERIAL_BUF_LEN) {
pr_err("%s: Invalid size:%u, max: %u", __func__,
smd_write_arg.size, GSERIAL_BUF_LEN);
ret = -EINVAL;
break;
}
pr_debug("%s: Copying %d bytes from user buffer to local\n",
__func__, smd_write_arg.size);