X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=libudev%2Flibudev-enumerate.c;h=6e51726f083cd0cd8b72084d2b75876181fcc270;hb=19e47d97256390e4f42c5a4c96e26536d4d33e3e;hp=12de24e244b0982f59df421bedcc4e479c00f4a0;hpb=7df0ed83c113e4744786e7804d398d9d34b43281;p=elogind.git diff --git a/libudev/libudev-enumerate.c b/libudev/libudev-enumerate.c index 12de24e24..6e51726f0 100644 --- a/libudev/libudev-enumerate.c +++ b/libudev/libudev-enumerate.c @@ -765,7 +765,18 @@ UDEV_EXPORT int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerat dev = udev_device_new_from_id_filename(udev_enumerate->udev, dent->d_name); if (dev == NULL) continue; + + if (!match_subsystem(udev_enumerate, udev_device_get_subsystem(dev))) + goto nomatch; + if (!match_sysname(udev_enumerate, udev_device_get_sysname(dev))) + goto nomatch; + if (!match_property(udev_enumerate, dev)) + goto nomatch; + if (!match_sysattr(udev_enumerate, dev)) + goto nomatch; + syspath_add(udev_enumerate, udev_device_get_syspath(dev)); +nomatch: udev_device_unref(dev); } closedir(dir);