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

Commit b48f19d7 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

staging: gigaset: add endpoint-type sanity check



commit ed9ed5a89acba51b82bdff61144d4e4a4245ec8a upstream.

Add missing endpoint-type sanity checks to probe.

This specifically prevents a warning in USB core on URB submission when
fuzzing USB descriptors.

Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20191202085610.12719-4-johan@kernel.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0f5e357b
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -708,6 +708,12 @@ static int gigaset_probe(struct usb_interface *interface,

	endpoint = &hostif->endpoint[0].desc;

	if (!usb_endpoint_is_bulk_out(endpoint)) {
		dev_err(&interface->dev, "missing bulk-out endpoint\n");
		retval = -ENODEV;
		goto error;
	}

	buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
	ucs->bulk_out_size = buffer_size;
	ucs->bulk_out_epnum = usb_endpoint_num(endpoint);
@@ -727,6 +733,12 @@ static int gigaset_probe(struct usb_interface *interface,

	endpoint = &hostif->endpoint[1].desc;

	if (!usb_endpoint_is_int_in(endpoint)) {
		dev_err(&interface->dev, "missing int-in endpoint\n");
		retval = -ENODEV;
		goto error;
	}

	ucs->busy = 0;

	ucs->read_urb = usb_alloc_urb(0, GFP_KERNEL);