Use strndup instead of strdup, to handle situations where the reported length and the actual length are different, or not null terminated
This commit is contained in:
@ -384,7 +384,7 @@ hackrf_device_list_t* ADDCALL hackrf_device_list()
|
|||||||
serial_number_length = libusb_get_string_descriptor_ascii(usb_device, serial_descriptor_index, (unsigned char*)serial_number, sizeof(serial_number));
|
serial_number_length = libusb_get_string_descriptor_ascii(usb_device, serial_descriptor_index, (unsigned char*)serial_number, sizeof(serial_number));
|
||||||
if( serial_number_length == 32 ) {
|
if( serial_number_length == 32 ) {
|
||||||
serial_number[32] = 0;
|
serial_number[32] = 0;
|
||||||
list->serial_numbers[idx] = strdup(serial_number);
|
list->serial_numbers[idx] = strndup(serial_number, serial_number_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
libusb_close(usb_device);
|
libusb_close(usb_device);
|
||||||
|
Reference in New Issue
Block a user