mirror of
https://github.com/torvalds/linux.git
synced 2026-05-13 08:39:31 +02:00
usb: ulpi: fix double free in ulpi_register_interface() error path
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>
This commit is contained in:
parent
33cfe0709b
commit
01af542392
|
|
@ -331,10 +331,9 @@ struct ulpi *ulpi_register_interface(struct device *dev,
|
|||
ulpi->ops = ops;
|
||||
|
||||
ret = ulpi_register(dev, ulpi);
|
||||
if (ret) {
|
||||
kfree(ulpi);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
|
||||
return ulpi;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user