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

Commit 493f2d5f authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: gadget: Add a NULL check for desc header pointer"

parents 592dc0b6 08901c67
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -146,6 +146,7 @@ int config_ep_by_speed(struct usb_gadget *g,
			struct usb_function *f,
			struct usb_ep *_ep)
{
	struct usb_composite_dev *cdev;
	struct usb_endpoint_descriptor *chosen_desc = NULL;
	struct usb_descriptor_header **speed_desc = NULL;

@@ -157,6 +158,8 @@ int config_ep_by_speed(struct usb_gadget *g,
	if (!g || !f || !_ep)
		return -EIO;

	cdev = get_gadget_data(g);

	/* select desired speed */
	switch (g->speed) {
	case USB_SPEED_SUPER_PLUS:
@@ -182,6 +185,13 @@ int config_ep_by_speed(struct usb_gadget *g,
	default:
		speed_desc = f->fs_descriptors;
	}

	if (!speed_desc) {
		DBG(cdev, "%s desc not present for function %s\n",
			usb_speed_string(g->speed), f->name);
		return -EIO;
	}

	/* find descriptors */
	for_each_ep_desc(speed_desc, d_spd) {
		chosen_desc = (struct usb_endpoint_descriptor *)*d_spd;
@@ -225,12 +235,9 @@ int config_ep_by_speed(struct usb_gadget *g,
			_ep->maxburst = comp_desc->bMaxBurst + 1;
			break;
		default:
			if (comp_desc->bMaxBurst != 0) {
				struct usb_composite_dev *cdev;

				cdev = get_gadget_data(g);
			if (comp_desc->bMaxBurst != 0)
				ERROR(cdev, "ep0 bMaxBurst must be 0\n");
			}

			_ep->maxburst = 1;
			break;
		}