X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=libudev%2Flibudev-enumerate.c;h=6870bb611598a3f752b67d2301624a4506c00869;hb=ff2c503df091e6e4e9ab48cdb6df6ec8b7b525d0;hp=e46bc087fa31879573a3107f189be62b6191d9d5;hpb=48a0170b111b55e961be769d2cc4890511bcd991;p=elogind.git diff --git a/libudev/libudev-enumerate.c b/libudev/libudev-enumerate.c index e46bc087f..6870bb611 100644 --- a/libudev/libudev-enumerate.c +++ b/libudev/libudev-enumerate.c @@ -274,6 +274,8 @@ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *ude /* skip to be delayed devices, and add them to the end of the list */ if (devices_delay_end(udev_enumerate->udev, entry->syspath)) { syspath_add(udev_enumerate, entry->syspath); + /* need to update prev here for the case realloc() gives a different address */ + prev = &udev_enumerate->devices[i]; continue; } @@ -749,7 +751,7 @@ int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate) struct dirent *dent; char path[UTIL_PATH_SIZE]; - util_strscpyl(path, sizeof(path), udev_get_dev_path(udev), "/.udev/tags/", + util_strscpyl(path, sizeof(path), udev_get_run_path(udev), "/tags/", udev_list_entry_get_name(list_entry), NULL); dir = opendir(path); if (dir == NULL)