chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udevd: don't daemonize before initialization
[elogind.git]
/
udev_rules_parse.c
diff --git
a/udev_rules_parse.c
b/udev_rules_parse.c
index 488b7a7ff0c31b258fcb749eb9e744d90afda39d..7d1853acbe96ecaf3ef3a639c390e96c19354f22 100644
(file)
--- a/
udev_rules_parse.c
+++ b/
udev_rules_parse.c
@@
-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);
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;
}
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);
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;
}
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) {
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);
}
list_del(&name_loop->node);
free(name_loop);
}