Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f100349 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: usx2y: Add sanity checks for invalid EPs



usx2y driver sets up URBs containing the fixed endpoints without
validation.  This may end up with an oops-like kernel warning when
submitted.

For avoiding it, this patch adds the calls of the new sanity-check
helper for URBs.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 738d9edc
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -279,6 +279,9 @@ int usX2Y_AsyncSeq04_init(struct usX2Ydev *usX2Y)
						usX2Y->AS04.buffer + URB_DataLen_AsyncSeq*i, 0,
						i_usX2Y_Out04Int, usX2Y
				);
			err = usb_urb_ep_type_check(usX2Y->AS04.urb[i]);
			if (err < 0)
				break;
		}
	return err;
}
@@ -298,6 +301,8 @@ int usX2Y_In04_init(struct usX2Ydev *usX2Y)
			 usX2Y->In04Buf, 21,
			 i_usX2Y_In04Int, usX2Y,
			 10);
	if (usb_urb_ep_type_check(usX2Y->In04urb))
		return -EINVAL;
	return usb_submit_urb(usX2Y->In04urb, GFP_KERNEL);
}

+3 −0
Original line number Diff line number Diff line
@@ -677,6 +677,9 @@ static int usX2Y_rate_set(struct usX2Ydev *usX2Y, int rate)
			usb_fill_bulk_urb(us->urb[i], usX2Y->dev, usb_sndbulkpipe(usX2Y->dev, 4),
					  usbdata + i, 2, i_usX2Y_04Int, usX2Y);
		}
		err = usb_urb_ep_type_check(us->urb[0]);
		if (err < 0)
			goto cleanup;
		us->submitted =	0;
		us->len =	NOOF_SETRATE_URBS;
		usX2Y->US04 =	us;