usbip: fix stub_rx: get_pipe() to validate endpoint number
authorShuah Khan <shuahkh@osg.samsung.com>
Thu, 7 Dec 2017 21:16:47 +0000 (14:16 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Feb 2018 18:32:23 +0000 (18:32 +0000)
commit95ac81780575f669db047b30511d56400c67099e
tree73a2c06a9d8bb8cf590ed48baf6495b273a5d4f5
parentea00712a030beb90d9a03c6501d0d42d516b62a4
usbip: fix stub_rx: get_pipe() to validate endpoint number

commit 635f545a7e8be7596b9b2b6a43cab6bbd5a88e43 upstream.

get_pipe() routine doesn't validate the input endpoint number
and uses to reference ep_in and ep_out arrays. Invalid endpoint
number can trigger BUG(). Range check the epnum and returning
error instead of calling BUG().

Change caller stub_recv_cmd_submit() to handle the get_pipe()
error return.

Reported-by: Secunia Research <vuln@secunia.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.2: adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/staging/usbip/stub_rx.c