linux-stable/drivers/usb/misc
Yongzhi Liu 8a9f653cc8 usb: misc: ljca: Fix double free in error handling path
commit 7c96319692 upstream.

When auxiliary_device_add() returns error and then calls
auxiliary_device_uninit(), callback function ljca_auxdev_release
calls kfree(auxdev->dev.platform_data) to free the parameter data
of the function ljca_new_client_device. The callers of
ljca_new_client_device shouldn't call kfree() again
in the error handling path to free the platform data.

Fix this by cleaning up the redundant kfree() in all callers and
adding kfree() the passed in platform_data on errors which happen
before auxiliary_device_init() succeeds .

Fixes: acd6199f19 ("usb: Add support for Intel LJCA device")
Cc: stable <stable@kernel.org>
Signed-off-by: Yongzhi Liu <hyperlyzcs@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240311125748.28198-1-hyperlyzcs@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-03 15:32:44 +02:00
..
sisusbvga USB: sisusbvga: Add endpoint checks 2023-04-20 11:43:22 +02:00
Kconfig usb: Add support for Intel LJCA device 2023-10-11 11:33:37 +02:00
Makefile usb: Add support for Intel LJCA device 2023-10-11 11:33:37 +02:00
adutux.c
apple-mfi-fastcharge.c
appledisplay.c
brcmstb-usb-pinmap.c
chaoskey.c hwrng: core - treat default_quality as a maximum and default to 1024 2022-11-18 16:59:34 +08:00
cypress_cy7c63.c USB: misc: Remove unnecessary NULL values 2023-08-04 14:48:55 +02:00
cytherm.c USB: misc: Remove unnecessary NULL values 2023-08-04 14:48:55 +02:00
ehset.c usb: misc: ehset: fix wrong if condition 2023-07-27 10:37:30 +02:00
emi26.c
emi62.c
ezusb.c
idmouse.c usb: idmouse: fix an uninit-value in idmouse_open 2022-09-27 10:37:09 +02:00
iowarrior.c USB: misc: iowarrior: remove redundant assignment to variable io_res 2023-11-22 12:02:53 +00:00
isight_firmware.c
ldusb.c usb: ldusb: replace ternary operator with max_t() 2022-07-14 16:09:56 +02:00
legousbtower.c USB: make devnode() callback in usb_class_driver take a const * 2022-10-20 12:11:56 +02:00
lvstest.c usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
onboard_usb_hub.c USB: core: Use device_driver directly in struct usb_driver and usb_device_driver 2024-01-04 16:06:32 +01:00
onboard_usb_hub.h usb: misc: onboard_usb_hub: Add support for Cypress CY7C6563x 2023-11-27 19:13:22 +00:00
onboard_usb_hub_pdevs.c usb: misc: onboard_hub: Fix 'missing prototype' warning 2022-07-14 16:09:32 +02:00
qcom_eud.c usb: misc: eud: Add IRQ check for platform_get_irq() 2023-11-22 12:02:53 +00:00
trancevibrator.c
usb-ljca.c usb: misc: ljca: Fix double free in error handling path 2024-04-03 15:32:44 +02:00
usb251xb.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
usb3503.c usb: Switch i2c drivers back to use .probe() 2023-05-29 15:53:11 +01:00
usb4604.c usb: Switch i2c drivers back to use .probe() 2023-05-29 15:53:11 +01:00
usblcd.c
usbsevseg.c USB: misc: Remove unnecessary NULL values 2023-08-04 14:48:55 +02:00
usbtest.c usb: usbtest: fix a type promotion bug 2023-10-08 07:50:36 +02:00
uss720.c usb: misc: uss720: fix uninitialized variable rlen 2022-09-07 16:23:48 +02:00
yurex.c usb: yurex: Fix inconsistent locking bug in yurex_read() 2024-01-02 14:41:51 +01:00