Verify USB listener callback handle

Do not use `handle` if `libusb_hotplug_register_callback` fails
This commit is contained in:
Rafael Sadowski
2024-06-08 07:02:38 +02:00
committed by Jonathan White
parent fbdd97b1be
commit 34808a2caa

View File

@@ -97,11 +97,13 @@ DeviceListenerLibUsb::registerHotplugCallback(bool arrived, bool left, int vendo
// Avoid race conditions // Avoid race conditions
m_usbEvents.waitForFinished(); m_usbEvents.waitForFinished();
} }
if (!m_usbEvents.isRunning()) { if (handle > 0) {
m_completed = false; m_callbackHandles.insert(handle);
m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast<libusb_context*>(m_ctx), &m_completed); if (!m_usbEvents.isRunning()) {
m_completed = false;
m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast<libusb_context*>(m_ctx), &m_completed);
}
} }
m_callbackHandles.insert(handle);
return handle; return handle;
} }