mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Fix segmentation fault in usbasp led driver (#152)
This commit is contained in:
parent
356aa86b49
commit
6b04c1571c
@ -45,7 +45,7 @@ int LedDeviceHyperionUsbasp::open()
|
|||||||
// initialize the usb context
|
// initialize the usb context
|
||||||
if ((error = libusb_init(&_libusbContext)) != LIBUSB_SUCCESS)
|
if ((error = libusb_init(&_libusbContext)) != LIBUSB_SUCCESS)
|
||||||
{
|
{
|
||||||
Error(_log, "Error while initializing USB context(%s):%s", error, libusb_error_name(error));
|
Error(_log, "Error while initializing USB context(%d):%s", error, libusb_error_name(error));
|
||||||
_libusbContext = nullptr;
|
_libusbContext = nullptr;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -86,7 +86,7 @@ int LedDeviceHyperionUsbasp::testAndOpen(libusb_device * device)
|
|||||||
int error = libusb_get_device_descriptor(device, &deviceDescriptor);
|
int error = libusb_get_device_descriptor(device, &deviceDescriptor);
|
||||||
if (error != LIBUSB_SUCCESS)
|
if (error != LIBUSB_SUCCESS)
|
||||||
{
|
{
|
||||||
Error(_log, "Error while retrieving device descriptor(%s): %s", error, libusb_error_name(error));
|
Error(_log, "Error while retrieving device descriptor(%d): %s", error, libusb_error_name(error));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ int LedDeviceHyperionUsbasp::testAndOpen(libusb_device * device)
|
|||||||
int busNumber = libusb_get_bus_number(device);
|
int busNumber = libusb_get_bus_number(device);
|
||||||
int addressNumber = libusb_get_device_address(device);
|
int addressNumber = libusb_get_device_address(device);
|
||||||
|
|
||||||
Info(_log, "%s found: bus=%s address=%s", _usbProductDescription.c_str(), busNumber, addressNumber);
|
Info(_log, "%s found: bus=%d address=%d", _usbProductDescription.c_str(), busNumber, addressNumber);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -110,7 +110,7 @@ int LedDeviceHyperionUsbasp::testAndOpen(libusb_device * device)
|
|||||||
catch(int e)
|
catch(int e)
|
||||||
{
|
{
|
||||||
_deviceHandle = nullptr;
|
_deviceHandle = nullptr;
|
||||||
Error(_log, "Unable to open %s. Searching for other device(%s): %s", _usbProductDescription.c_str(), e, libusb_error_name(e));
|
Error(_log, "Unable to open %s. Searching for other device(%d): %s", _usbProductDescription.c_str(), e, libusb_error_name(e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ libusb_device_handle * LedDeviceHyperionUsbasp::openDevice(libusb_device *device
|
|||||||
int error = libusb_open(device, &handle);
|
int error = libusb_open(device, &handle);
|
||||||
if (error != LIBUSB_SUCCESS)
|
if (error != LIBUSB_SUCCESS)
|
||||||
{
|
{
|
||||||
Error(log, "unable to open device(%s): %s",error,libusb_error_name(error));
|
Error(log, "unable to open device(%d): %s",error,libusb_error_name(error));
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ libusb_device_handle * LedDeviceHyperionUsbasp::openDevice(libusb_device *device
|
|||||||
error = libusb_detach_kernel_driver(handle, 0);
|
error = libusb_detach_kernel_driver(handle, 0);
|
||||||
if (error != LIBUSB_SUCCESS)
|
if (error != LIBUSB_SUCCESS)
|
||||||
{
|
{
|
||||||
Error(log, "unable to detach kernel driver(%s): %s",error,libusb_error_name(error));
|
Error(log, "unable to detach kernel driver(%d): %s",error,libusb_error_name(error));
|
||||||
libusb_close(handle);
|
libusb_close(handle);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ libusb_device_handle * LedDeviceHyperionUsbasp::openDevice(libusb_device *device
|
|||||||
error = libusb_claim_interface(handle, 0);
|
error = libusb_claim_interface(handle, 0);
|
||||||
if (error != LIBUSB_SUCCESS)
|
if (error != LIBUSB_SUCCESS)
|
||||||
{
|
{
|
||||||
Error(log, "unable to claim interface(%s): %s", error, libusb_error_name(error));
|
Error(log, "unable to claim interface(%d): %s", error, libusb_error_name(error));
|
||||||
libusb_attach_kernel_driver(handle, 0);
|
libusb_attach_kernel_driver(handle, 0);
|
||||||
libusb_close(handle);
|
libusb_close(handle);
|
||||||
throw error;
|
throw error;
|
||||||
|
Loading…
Reference in New Issue
Block a user