udev_rules_parse_file: do not skip ENOENT
Starting with commited88bcfb7c, udev_rules_parse_file() silently skips files it fails to open with ENOENT error, e.g. when they are broken symlinks. As this behavior is undocumented and it seems to be unintended, let's treat ENOENT like any other error. This change would also simplify the implementation of the udev rules syntax checker mentioned in #26606. udev_rules_load(), the only user of udev_rules_parse_file(), is not affected by this change because it essentially ignores the value returned by the latter, the only visible difference would be a log message issued for every udev rules file that couldn't be open because of ENOENT. Fixes:ed88bcfb7c("Be more careful when checking for empty files")
This commit is contained in:
committed by
Yu Watanabe
parent
25e12db5e4
commit
42a467b552
@@ -1178,12 +1178,8 @@ int udev_rules_parse_file(UdevRules *rules, const char *filename) {
|
||||
int r;
|
||||
|
||||
f = fopen(filename, "re");
|
||||
if (!f) {
|
||||
if (errno == ENOENT)
|
||||
return 0;
|
||||
|
||||
if (!f)
|
||||
return log_warning_errno(errno, "Failed to open %s, ignoring: %m", filename);
|
||||
}
|
||||
|
||||
if (fstat(fileno(f), &st) < 0)
|
||||
return log_warning_errno(errno, "Failed to stat %s, ignoring: %m", filename);
|
||||
|
||||
Reference in New Issue
Block a user