diff --git a/config/udev.c b/config/udev.c index 314acba6cea3ac03b3cd4410bc7cf0d00718f9a9..6e11aa3b8881e38a4c4136d6ffcbb5b540e1e973 100644 --- a/config/udev.c +++ b/config/udev.c @@ -474,7 +474,7 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path config_odev_probe_proc_ptr probe_callback) { struct OdevAttributes *attribs = config_odev_allocate_attributes(); - const char *value; + const char *value, *str; attribs->path = XNFstrdup(path); attribs->syspath = XNFstrdup(syspath); @@ -482,8 +482,8 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path attribs->minor = minor; value = udev_device_get_property_value(udev_device, "ID_PATH"); - if (value && !strncmp(value, "pci-", 4)) { - attribs->busid = XNFstrdup(value); + if (value && (str = strstr(value, "pci-"))) { + attribs->busid = XNFstrdup(str); attribs->busid[3] = ':'; }