udev:fix seg fault in case of vid and pid is NULL

In some case linux report 'driver' as valid yet vid and pid as NULL.
Adding NULL check to prevent seg fault.

Log:
ofonod[23829]: plugins/udevng.c:udev_start()
ofonod[23829]: plugins/udevng.c:enumerate_devices()
ofonod[23829]: plugins/udevng.c:check_usb_device() hub [1d6b:0002]
ofonod[23829]: plugins/udevng.c:check_usb_device() usb [1d6b:0002]
ofonod[23829]: plugins/udevng.c:check_usb_device() usbhid [03f0:034a]
ofonod[23829]: plugins/udevng.c:check_usb_device() usbhid [03f0:034a]
ofonod[23829]: plugins/udevng.c:check_usb_device() usb [1d6b:0002]
ofonod[23829]: plugins/udevng.c:check_usb_device() cdc_acm [(null):(null)]
ofonod[23829]: Aborting (signal 11) [./src/ofonod]
This commit is contained in:
Anirudh Gargi 2018-09-10 10:12:01 +05:30 committed by Denis Kenzior
parent 157d188587
commit f2ebcf35d7
1 changed files with 3 additions and 0 deletions

View File

@ -1741,6 +1741,9 @@ static void check_usb_device(struct udev_device *device)
DBG("%s [%s:%s]", drv, vendor, model);
if (vendor == NULL || model == NULL)
return;
for (i = 0; vendor_list[i].driver; i++) {
if (g_str_equal(vendor_list[i].drv, drv) == FALSE)
continue;