[alsa-devel] [PATCH v2 9/9] ALSA: line6: Add yet more sanity checks for invalid EPs
Johan Hovold
johan at kernel.org
Wed Oct 11 16:39:52 CEST 2017
On Wed, Oct 11, 2017 at 12:36:46PM +0200, Takashi Iwai wrote:
> There are a few other places calling usb_submit_urb() with the URB
> composed from the fixed endpoint without validation. For avoiding the
> spurious kernel warnings, add the sanity checks to appropriate
> places.
>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---
> sound/usb/line6/driver.c | 23 +++++++++++++++--------
> sound/usb/line6/midi.c | 17 +++++++++++------
> 2 files changed, 26 insertions(+), 14 deletions(-)
>
> diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
> index 0da6f68761e3..7c682b219584 100644
> --- a/sound/usb/line6/driver.c
> +++ b/sound/usb/line6/driver.c
> @@ -175,17 +175,24 @@ static int line6_send_raw_message_async_part(struct message *msg,
> }
>
> msg->done += bytes;
> - retval = usb_submit_urb(urb, GFP_ATOMIC);
>
> - if (retval < 0) {
> - dev_err(line6->ifcdev, "%s: usb_submit_urb failed (%d)\n",
> - __func__, retval);
> - usb_free_urb(urb);
> - kfree(msg);
> - return retval;
> - }
> + /* sanity checks of EP before actually submitting */
> + retval = usb_urb_ep_type_check(urb);
> + if (retval < 0)
> + goto error;
This also seems like something which should have been done once at urb
allocation time, rather than on every submission (just like the URB
initialisation should have been).
> +
> + retval = usb_submit_urb(urb, GFP_ATOMIC);
> + if (retval < 0)
> + goto error;
>
> return 0;
> +
> + error:
> + dev_err(line6->ifcdev, "%s: usb_submit_urb failed (%d)\n",
> + __func__, retval);
> + usb_free_urb(urb);
> + kfree(msg);
> + return retval;
Johan
More information about the Alsa-devel
mailing list