mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-05 14:14:54 +00:00
USB: serial: ftdi_sio: only allow valid event_char values
The "event_char" device attribute value, when written, is interpreted as an enable bit in bit 8, and an "event character" in bits 7 to 0. Return an error -EINVAL for out-of-range values. Use kstrtouint() to parse the integer instead of the obsolete simple_strtoul(). Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
parent
db9240662a
commit
d0559a2f29
1 changed files with 4 additions and 1 deletions
|
@ -1738,9 +1738,12 @@ static ssize_t store_event_char(struct device *dev,
|
|||
struct usb_serial_port *port = to_usb_serial_port(dev);
|
||||
struct ftdi_private *priv = usb_get_serial_port_data(port);
|
||||
struct usb_device *udev = port->serial->dev;
|
||||
int v = simple_strtoul(valbuf, NULL, 10);
|
||||
unsigned int v;
|
||||
int rv;
|
||||
|
||||
if (kstrtouint(valbuf, 10, &v) || v >= 0x200)
|
||||
return -EINVAL;
|
||||
|
||||
dev_dbg(&port->dev, "%s: setting event char = %i\n", __func__, v);
|
||||
|
||||
rv = usb_control_msg(udev,
|
||||
|
|
Loading…
Add table
Reference in a new issue