summaryrefslogtreecommitdiff
path: root/src/core/main.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-04-15 21:58:22 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-04-17 00:09:16 -0400
commit543295ad369793bdac510c6c3bf4afae8f1cdab5 (patch)
treeaa04d95ee9e9ef86dc27788d8f5fcbb42082228b /src/core/main.c
parente8e581bf256b8c0fbd430935af79fa0e8ee570a1 (diff)
core/main: use _cleanup_
Diffstat (limited to 'src/core/main.c')
-rw-r--r--src/core/main.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/core/main.c b/src/core/main.c
index 2043345eca..f19e432d4a 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -688,7 +688,8 @@ static int parse_config_file(void) {
}
static int parse_proc_cmdline(void) {
- char *line, *w, *state;
+ char _cleanup_free_ *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;
+ char _cleanup_free_ *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[]) {