From 59bd71ddcacf1bba321dbce0d7a7e3971d71383a Mon Sep 17 00:00:00 2001 From: Rafael Sadowski Date: Sat, 8 Jun 2024 07:02:38 +0200 Subject: [PATCH] Verify USB listener callback handle Do not use `handle` if `libusb_hotplug_register_callback` fails --- src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp index 252126025..97233fbb0 100644 --- a/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp +++ b/src/gui/osutils/nixutils/DeviceListenerLibUsb.cpp @@ -97,11 +97,13 @@ DeviceListenerLibUsb::registerHotplugCallback(bool arrived, bool left, int vendo // Avoid race conditions m_usbEvents.waitForFinished(); } - if (!m_usbEvents.isRunning()) { - m_completed = false; - m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast(m_ctx), &m_completed); + if (handle > 0) { + m_callbackHandles.insert(handle); + if (!m_usbEvents.isRunning()) { + m_completed = false; + m_usbEvents = QtConcurrent::run(handleUsbEvents, static_cast(m_ctx), &m_completed); + } } - m_callbackHandles.insert(handle); return handle; }