]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: gadget: Check bmAttributes only if configuration is valid
authorPrashanth K <prashanth.k@oss.qualcomm.com>
Mon, 24 Feb 2025 08:56:04 +0000 (14:26 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:47:42 +0000 (12:47 +0100)
commit 8e812e9355a6f14dffd54a33d951ca403b9732f5 upstream.

If the USB configuration is not valid, then avoid checking for
bmAttributes to prevent null pointer deference.

Cc: stable <stable@kernel.org>
Fixes: 40e89ff5750f ("usb: gadget: Set self-powered based on MaxPower and bmAttributes")
Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250224085604.417327-1-prashanth.k@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/composite.c

index daa42e5fe2e7df6b95703c4f23d01556d1823cae..8adb54886443d38e8b386148d78122d8aab72d2e 100644 (file)
@@ -916,7 +916,7 @@ static int set_config(struct usb_composite_dev *cdev,
                power = min(power, 900U);
 done:
        if (power > USB_SELF_POWER_VBUS_MAX_DRAW ||
-           !(c->bmAttributes & USB_CONFIG_ATT_SELFPOWER))
+           (c && !(c->bmAttributes & USB_CONFIG_ATT_SELFPOWER)))
                usb_gadget_clear_selfpowered(gadget);
        else
                usb_gadget_set_selfpowered(gadget);