File 0023-udev-fix-rules-timestamp-race.patch of Package udev

--- udev-182.orig/src/udev-rules.c.orig	2012-08-01 14:23:16.000000000 +0000
+++ udev-182/src/udev-rules.c	2012-08-01 14:26:48.000000000 +0000
@@ -1754,6 +1754,7 @@ struct udev_rules *udev_rules_new(struct
         struct udev_list_entry *file_loop;
         struct token end_token;
         char **s;
+        unsigned long long *stamp_usec;
 
         rules = calloc(1, sizeof(struct udev_rules));
         if (rules == NULL)
@@ -1795,8 +1796,12 @@ struct udev_rules *udev_rules_new(struct
         memset(rules->trie_nodes, 0x00, sizeof(struct trie_node));
         rules->trie_nodes_cur = 1;
 
-        for (udev_get_rules_path(udev, &s, NULL); *s != NULL; s++)
+        for (udev_get_rules_path(udev, &s, &stamp_usec); *s != NULL; s++, stamp_usec++) {
+                struct stat stats;
+                if (stat(*s, &stats) == 0)
+                        *stamp_usec = ts_usec(&stats.st_mtim);
                 add_matching_files(udev, &file_list, *s, ".rules");
+        }
 
         /* add all filenames to the string buffer */
         udev_list_entry_foreach(file_loop, udev_list_get_entry(&file_list)) {
openSUSE Build Service is sponsored by