linux/drivers/usb
Owen Gu c53e90563b usb: gadget: f_fs: Fix epfile null pointer access after ep enable.
commit cfd6f1a7b4 upstream.

A race condition occurs when ffs_func_eps_enable() runs concurrently
with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset()
sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading
to a NULL pointer dereference when accessing epfile->ep in
ffs_func_eps_enable() after successful usb_ep_enable().

The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and
ffs_data_close() functions, and its modification is protected by the
spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function
is also protected by ffs->eps_lock.

Thus, add NULL pointer handling for ffs->epfiles in the
ffs_func_eps_enable() function to fix issues

Signed-off-by: Owen Gu <guhuinan@xiaomi.com>
Link: https://lore.kernel.org/r/20250915092907.17802-1-guhuinan@xiaomi.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-12-07 06:12:14 +09:00
..
atm usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init() 2025-08-28 16:26:05 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 usb: cdns3: cdnsp-pci: remove redundant pci_disable_device() call 2025-10-15 11:56:41 +02:00
chipidea usb: chipidea: add USB PHY event 2025-08-15 12:04:52 +02:00
class cdc-acm: fix race between initial clearing halt and open 2025-08-28 16:26:04 +02:00
common usb: common: usb-conn-gpio: use a unique name for usb connector device 2025-07-06 10:57:55 +02:00
core usb/core/quirks: Add Huawei ME906S to wakeup quirk 2025-10-29 14:04:38 +01:00
dwc2 usb: dwc2: also exit clock_gating when stopping udc while suspended 2025-07-06 10:57:55 +02:00
dwc3 usb: dwc3: Remove WARN_ON for device endpoint command timeouts 2025-08-28 16:26:15 +02:00
early usb: early: xhci-dbc: Fix early_ioremap leak 2025-08-15 12:04:54 +02:00
gadget usb: gadget: f_fs: Fix epfile null pointer access after ep enable. 2025-12-07 06:12:14 +09:00
host xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall event 2025-12-07 06:12:10 +09:00
image usb/image: fix repeated words in comments 2022-07-27 14:33:53 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc usb: misc: apple-mfi-fastcharge: Make power supply names unique 2025-08-15 12:04:53 +02:00
mon usb: mon: Fix atomicity violation in mon_bin_vma_fault 2024-01-25 15:27:40 -08:00
mtu3 usb: mtu3: fix kernel panic at qmu transfer done irq handler 2023-05-11 23:03:30 +09:00
musb usb: musb: omap2430: fix device leak at unbind 2025-08-28 16:26:11 +02:00
phy usb: phy: twl6030: Fix incorrect type for ret 2025-10-15 11:56:32 +02:00
renesas_usbhs usb: renesas_usbhs: Reorder clock handling and power management in probe 2025-06-27 11:07:16 +01:00
roles usb: roles: set switch registered flag early on 2025-02-21 13:50:01 +01:00
serial USB: serial: option: add Telit FN920C04 ECM compositions 2025-10-29 14:04:38 +01:00
storage USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles 2025-08-28 16:26:15 +02:00
typec usb: typec: tipd: Clear interrupts first 2025-10-15 11:56:41 +02:00
usbip usb: vhci-hcd: Prevent suspending virtually attached devices 2025-10-15 11:56:37 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected 2024-06-21 14:35:43 +02:00
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00