chiark / gitweb /
update RELEASE-NOTES
[elogind.git] / udev_rules_parse.c
index 488b7a7ff0c31b258fcb749eb9e744d90afda39d..7d1853acbe96ecaf3ef3a639c390e96c19354f22 100644 (file)
@@ -437,7 +437,7 @@ static int add_to_rules(struct udev_rules *rules, char *line)
                                        char owner[32];
                                        uid_t uid = lookup_user(value);
                                        dbg("replacing username='%s' by id=%i", value, uid);
-                                       sprintf(owner, "%li", uid);
+                                       sprintf(owner, "%u", (unsigned int) uid);
                                        add_rule_key(rule, &rule->owner, operation, owner);
                                        continue;
                                }
@@ -456,7 +456,7 @@ static int add_to_rules(struct udev_rules *rules, char *line)
                                        char group[32];
                                        gid_t gid = lookup_group(value);
                                        dbg("replacing groupname='%s' by id=%i", value, gid);
-                                       sprintf(group, "%li", gid);
+                                       sprintf(group, "%u", (unsigned int) gid);
                                        add_rule_key(rule, &rule->group, operation, group);
                                        continue;
                                }
@@ -642,7 +642,13 @@ int udev_rules_init(struct udev_rules *rules, int read_compiled, int resolve_nam
                retval = add_matching_files(&name_list, udev_rules_filename, RULEFILE_SUFFIX);
 
                list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) {
-                       parse_file(rules, name_loop->name);
+                       if (stat(name_loop->name, &stats) == 0) {
+                               if (stats.st_size)
+                                       parse_file(rules, name_loop->name);
+                               else
+                                       dbg("empty rules file '%s'", name_loop->name);
+                       } else
+                               dbg("could not read '%s'", name_loop->name);
                        list_del(&name_loop->node);
                        free(name_loop);
                }