chiark / gitweb /
udev: skip timestamp check if rules are already free()d during reload
[elogind.git] / src / udev / udev-rules.c
index 45a611474de6cf03da7b51d7a8a4ca9a182ab8d5..b5b54dd0431d5e021ef1cabac629869eb7203d4a 100644 (file)
@@ -31,6 +31,7 @@
 #include <time.h>
 
 #include "udev.h"
+#include "path-util.h"
 #include "conf-files.h"
 
 #define PREALLOC_TOKEN          2048
@@ -1764,7 +1765,7 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
                 log_error("failed to build config directory array");
                 return NULL;
         }
-        if (!strv_path_canonicalize(rules->dirs)) {
+        if (!path_strv_canonicalize(rules->dirs)) {
                 log_error("failed to canonicalize config directories\n");
                 return NULL;
         }
@@ -1857,6 +1858,9 @@ bool udev_rules_check_timestamp(struct udev_rules *rules)
         unsigned int i;
         bool changed = false;
 
+        if (rules == NULL)
+                goto out;
+
         for (i = 0; rules->dirs[i]; i++) {
                 struct stat stats;
 
@@ -1875,7 +1879,7 @@ bool udev_rules_check_timestamp(struct udev_rules *rules)
                 /* update timestamp */
                 rules->dirs_ts_usec[i] = ts_usec(&stats.st_mtim);
         }
-
+out:
         return changed;
 }