linux/drivers/usb/common
Guangshuo Li ee248e6e94 usb: ulpi: fix double free in ulpi_register_interface() error path
commit 01af542392 upstream.

When device_register() fails, ulpi_register() calls put_device() on
ulpi->dev.

The device release callback ulpi_dev_release() drops the OF node
reference and frees ulpi, but the current error path in
ulpi_register_interface() then calls kfree(ulpi) again, causing a
double free.

Let put_device() handle the cleanup through ulpi_dev_release() and
avoid freeing ulpi again in ulpi_register_interface().

Fixes: 289fcff4bc ("usb: add bus type for USB ULPI")
Cc: stable <stable@kernel.org>
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260401025142.1398996-1-lgs201920130244@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-04-18 10:33:33 +02:00
..
common.c usb: common: add helper to get role-switch-default-mode 2021-07-27 15:58:37 +02:00
common.h USB: move usb debugfs directory creation to the usb common core 2019-06-06 08:59:19 +02:00
debug.c usb: common: debug: Check non-standard control requests 2022-10-26 12:35:03 +02:00
Kconfig Partially revert "usb: Kconfig: using select for USB_COMMON dependency" 2021-10-05 13:45:16 +02:00
led.c USB: move usb debugfs directory creation to the usb common core 2019-06-06 08:59:19 +02:00
Makefile usb: common: add USB GPIO based connection detection driver 2019-09-03 19:01:04 +02:00
ulpi.c usb: ulpi: fix double free in ulpi_register_interface() error path 2026-04-18 10:33:33 +02:00
usb-conn-gpio.c usb: common: usb-conn-gpio: use a unique name for usb connector device 2025-07-10 15:57:33 +02:00
usb-otg-fsm.c usb: otg-fsm: Fix hrtimer list corruption 2021-07-27 16:31:31 +02:00