X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Fudevd.c;h=559d33e78f86d10f362e7b7572d51f206ca06fdf;hp=7c6c5d6a87d81252b5c1a8295cd645ba36eabead;hb=0a2c2294265d1d4552af3e7a92df0d4560deb818;hpb=689a97f52383110bf0da049e8f6294993f4020dd diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 7c6c5d6a8..559d33e78 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -779,10 +779,11 @@ static void handle_signal(struct udev *udev, int signo) if (WIFEXITED(status)) { if (WEXITSTATUS(status) != 0) - log_error("worker [%u] exit with return code %i\n", pid, WEXITSTATUS(status)); + log_error("worker [%u] exit with return code %i\n", + pid, WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { log_error("worker [%u] terminated by signal %i (%s)\n", - pid, WTERMSIG(status), strsignal(WTERMSIG(status))); + pid, WTERMSIG(status), strsignal(WTERMSIG(status))); } else if (WIFSTOPPED(status)) { log_error("worker [%u] stopped\n", pid); } else if (WIFCONTINUED(status)) { @@ -856,10 +857,15 @@ static int systemd_fds(struct udev *udev, int *rctrl, int *rnetlink) */ static void kernel_cmdline_options(struct udev *udev) { - char *line, *w, *state; + _cleanup_free_ char *line = NULL; + char *w, *state; size_t l; + int r; - if (read_one_line_file("/proc/cmdline", &line) < 0) + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); + if (r <= 0) return; FOREACH_WORD_QUOTED(w, l, line, state) { @@ -889,8 +895,6 @@ static void kernel_cmdline_options(struct udev *udev) free(s); } - - free(line); } int main(int argc, char *argv[])