X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Fudevd.c;h=572bca881d40a06dde9725bf80a54316908aaef9;hp=1c2d00f03b2e3af25c6dc4d12e90dc8759839d68;hb=53461b74df0576ec091275d1a5dbee00611df1ee;hpb=97fec53e5e91222f43fc89d0ad45fa197742a363 diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 1c2d00f03..572bca881 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -75,7 +75,7 @@ static int exec_delay; static sigset_t sigmask_orig; static UDEV_LIST(event_list); static UDEV_LIST(worker_list); -char *udev_cgroup; +static char *udev_cgroup; static bool udev_exit; enum event_state { @@ -857,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) { @@ -890,8 +895,6 @@ static void kernel_cmdline_options(struct udev *udev) free(s); } - - free(line); } int main(int argc, char *argv[])