USB: serial: io_ti: fix array underflow in completion handler
authorJohan Hovold <johan@kernel.org>
Tue, 21 Aug 2018 09:59:52 +0000 (11:59 +0200)
committerJohan Hovold <johan@kernel.org>
Mon, 27 Aug 2018 09:52:34 +0000 (11:52 +0200)
commit691a03cfe8ca483f9c48153b869d354e4ae3abef
treec33b63b76c28aada7b5367cc12440234b6ca488f
parent5b394b2ddf0347bef56e50c69a58773c94343ff3
USB: serial: io_ti: fix array underflow in completion handler

As reported by Dan Carpenter, a malicious USB device could set
port_number to a negative value and we would underflow the port array in
the interrupt completion handler.

As these devices only have one or two ports, fix this by making sure we
only consider the seventh bit when determining the port number (and
ignore bits 0xb0 which are typically set to 0x30).

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable@vger.kernel.org>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/io_ti.h