Merge pull request #375 from PixlOne/udev-enum-fix

Do not terminate on bad udev device
This commit is contained in:
pixl 2023-05-10 22:30:04 -04:00 committed by GitHub
commit 30ade71edf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -135,13 +135,17 @@ void DeviceMonitor::enumerate() {
const char* name = udev_list_entry_get_name(udev_enum_entry);
struct udev_device* device = udev_device_new_from_syspath(_udev_context, name);
if (!device)
throw std::runtime_error("udev_device_new_from_syspath failed");
std::string dev_node = udev_device_get_devnode(device);
if (device) {
const char* dev_node_cstr = udev_device_get_devnode(device);
if (dev_node_cstr) {
const std::string dev_node {dev_node_cstr};
udev_device_unref(device);
_addHandler(dev_node);
} else {
udev_device_unref(device);
}
}
}
udev_enumerate_unref(udev_enum);