X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmain.c;h=ce8ec99f9b4b7ce0ef5631da566f22158c55d3a2;hb=1e335af70f29d1a1e9c132338aa35b8971934441;hp=2043345ecadd01f2778453d02a1a25cb977ea496;hpb=e8e581bf256b8c0fbd430935af79fa0e8ee570a1;p=elogind.git diff --git a/src/core/main.c b/src/core/main.c index 2043345ec..ce8ec99f9 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -40,7 +40,7 @@ #include "fdset.h" #include "special.h" #include "conf-parser.h" -#include "bus-errors.h" +#include "dbus-common.h" #include "missing.h" #include "label.h" #include "build.h" @@ -666,7 +666,7 @@ static int parse_config_file(void) { { NULL, NULL, NULL, 0, NULL } }; - FILE _cleanup_fclose_ *f; + _cleanup_fclose_ FILE *f; const char *fn; int r; @@ -688,7 +688,8 @@ static int parse_config_file(void) { } static int parse_proc_cmdline(void) { - char *line, *w, *state; + _cleanup_free_ char *line = NULL; + char *w, *state; int r; size_t l; @@ -697,34 +698,27 @@ static int parse_proc_cmdline(void) { if (detect_container(NULL) > 0) return 0; - if ((r = read_one_line_file("/proc/cmdline", &line)) < 0) { + r = read_one_line_file("/proc/cmdline", &line); + if (r < 0) { log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); return 0; } FOREACH_WORD_QUOTED(w, l, line, state) { - char *word; + _cleanup_free_ char *word; - if (!(word = strndup(w, l))) { - r = -ENOMEM; - goto finish; - } + word = strndup(w, l); + if (!word) + return log_oom(); r = parse_proc_cmdline_word(word); if (r < 0) { log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); - free(word); - goto finish; + return r; } - - free(word); } - r = 0; - -finish: - free(line); - return r; + return 0; } static int parse_argv(int argc, char *argv[]) {