USB: cdc-acm: fix use-after-free after probe failure
commit4e49bf376cupstream. If tty-device registration fails the driver would fail to release the data interface. When the device is later disconnected, the disconnect callback would still be called for the data interface and would go about releasing already freed resources. Fixes:c93d819550("usb: cdc-acm: fix error handling in acm_probe()") Cc: stable@vger.kernel.org # 3.9 Cc: Alexey Khoroshilov <khoroshilov@ispras.ru> Acked-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20210322155318.9837-3-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
64deff1f4e
commit
6f86681691
@@ -1516,6 +1516,11 @@ skip_countries:
|
||||
|
||||
return 0;
|
||||
alloc_fail6:
|
||||
if (!acm->combined_interfaces) {
|
||||
/* Clear driver data so that disconnect() returns early. */
|
||||
usb_set_intfdata(data_interface, NULL);
|
||||
usb_driver_release_interface(&acm_driver, data_interface);
|
||||
}
|
||||
if (acm->country_codes) {
|
||||
device_remove_file(&acm->control->dev,
|
||||
&dev_attr_wCountryCodes);
|
||||
|
||||
Reference in New Issue
Block a user