From 81d3bc4c97a83ccd59d2544372330f03226b238b Mon Sep 17 00:00:00 2001 From: Zandreika Date: Mon, 28 Sep 2020 10:02:00 +0500 Subject: [PATCH] return XN_STATUS_USB_ENUMERATE_FAILED if libusb_get_device_list returns error --- .../PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp b/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp index b886f827a..2de3c0fa1 100644 --- a/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp +++ b/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp @@ -585,6 +585,12 @@ XN_C_API XnStatus xnUSBEnumerateDevices(XnUInt16 nVendorID, XnUInt16 nProductID, libusb_device** ppDevices; ssize_t nDeviceCount = libusb_get_device_list(g_InitData.pContext, &ppDevices); + // check for error + if (nDeviceCount < 0) + { + return (XN_STATUS_USB_ENUMERATE_FAILED); + } + // first enumeration - count XnUInt32 nCount = 0; @@ -763,6 +769,12 @@ XN_C_API XnStatus xnUSBOpenDeviceByPath(const XnUSBConnectionString strDevicePat libusb_device** ppDevices; ssize_t nDeviceCount = libusb_get_device_list(g_InitData.pContext, &ppDevices); + // check for error + if (nDeviceCount < 0) + { + return (XN_STATUS_USB_ENUMERATE_FAILED); + } + libusb_device* pRequestedDevice = NULL; for (ssize_t i = 0; i < nDeviceCount; ++i)