chiark / gitweb /
move /dev/.udev/ to /dev/.run/udev/ and convert old udev database at udevd startup
[elogind.git] / libudev / libudev-enumerate.c
index e46bc087fa31879573a3107f189be62b6191d9d5..d3dd5c963f89a5d76813d419e81c7356e3b4e708 100644 (file)
@@ -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_dev_path(udev), "/.run/udev/tags/",
                                      udev_list_entry_get_name(list_entry), NULL);
                        dir = opendir(path);
                        if (dir == NULL)