From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Cameron Gutman <aicommander@gmail.com>
Cc: rojtberg@gmail.com, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org, andreyknvl@google.com
Subject: Re: [PATCH] Input: xpad - validate USB endpoint type during probe
Date: Tue, 12 Sep 2017 11:28:44 -0700 [thread overview]
Message-ID: <20170912182844.GA6654@dtor-ws> (raw)
In-Reply-To: <20170912181212.15427-1-aicommander@gmail.com>
On Tue, Sep 12, 2017 at 11:12:12AM -0700, Cameron Gutman wrote:
> We should only see devices with interrupt endpoints. Ignore any other
> endpoints that we find, so we don't send try to send them interrupt URBs
> and trigger a WARN down in the USB stack.
>
> Reported-by: Andrey Konovalov <andreyknvl@google.com>
> Tested-by: Andrey Konovalov <andreyknvl@google.com>
> Cc: <stable@vger.kernel.org> # c01b5e7464f0 Input: xpad - don't depend on endpoint order
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Applied, thank you.
> ---
> To be able to hit any of the LTS kernels, we'll need to also cherry pick
> c01b5e7464f0 ("Input: xpad - don't depend on endpoint order"). In hindsight,
> this commit also addresses a malicious USB device case, since a device could
> purposefully trick us into sending URBs to an endpoint in the wrong direction.
> ---
> drivers/input/joystick/xpad.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index f8e34ef643c7..d86e59515b9c 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -1764,10 +1764,12 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
> struct usb_endpoint_descriptor *ep =
> &intf->cur_altsetting->endpoint[i].desc;
>
> - if (usb_endpoint_dir_in(ep))
> - ep_irq_in = ep;
> - else
> - ep_irq_out = ep;
> + if (usb_endpoint_xfer_int(ep)) {
> + if (usb_endpoint_dir_in(ep))
> + ep_irq_in = ep;
> + else
> + ep_irq_out = ep;
> + }
> }
>
> if (!ep_irq_in || !ep_irq_out) {
> --
> 2.14.1
--
Dmitry
prev parent reply other threads:[~2017-09-12 18:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-12 18:12 [PATCH] Input: xpad - validate USB endpoint type during probe Cameron Gutman
2017-09-12 18:28 ` Dmitry Torokhov [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170912182844.GA6654@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=aicommander@gmail.com \
--cc=andreyknvl@google.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rojtberg@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.