diff --git a/adb/client/usb_libusb.cpp b/adb/client/usb_libusb.cpp index 7e77b5ede..b2fdc07f0 100644 --- a/adb/client/usb_libusb.cpp +++ b/adb/client/usb_libusb.cpp @@ -422,8 +422,10 @@ static void device_disconnected(libusb_device* device) { if (!it->second->device_handle) { // If the handle is null, we were never able to open the device. unregister_usb_transport(it->second.get()); + usb_handles.erase(it); + } else { + // Closure of the transport will erase the usb_handle. } - usb_handles.erase(it); } }