X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-rules.c;h=9864016d1447c1ab041ead6ed0d515d22f73d5a8;hb=934e9b10b4f4bfb48e21883670c7f45b6911fa9b;hp=17f47f2613f363893ae1b315a17167479b5b1323;hpb=ca2bb1606a170ce2e45de1345b0119bd220f4f0d;p=elogind.git diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 17f47f261..9864016d1 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1533,15 +1533,19 @@ static int parse_file(struct udev_rules *rules, const char *filename) int line_nr = 0; unsigned int i; - if (null_or_empty_path(filename)) { - log_debug("skip empty file: %s", filename); - return 0; + f = fopen(filename, "re"); + if (!f) { + if (errno == ENOENT) + return 0; + else + return -errno; } - log_debug("read rules file: %s", filename); - f = fopen(filename, "re"); - if (f == NULL) - return -1; + if (null_or_empty_fd(fileno(f))) { + log_debug("Skipping empty file: %s", filename); + return 0; + } else + log_debug("Reading rules file: %s", filename); first_token = rules->token_cur; filename_off = rules_add_string(rules, filename); @@ -2027,7 +2031,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event case TK_M_PROGRAM: { char program[UTIL_PATH_SIZE]; char **envp; - char result[UTIL_PATH_SIZE]; + char result[UTIL_LINE_SIZE]; free(event->program_result); event->program_result = NULL;