From: Zbigniew Jędrzejewski-Szmek Date: Fri, 15 Mar 2013 22:00:57 +0000 (-0400) Subject: journalctl: use _cleanup_ in one function X-Git-Tag: v199~154 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=52aeb63cffcdb3701cdc2ca41868208de2347318 journalctl: use _cleanup_ in one function --- diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index a6ad055dc..8aef923be 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -513,16 +513,16 @@ static int generate_new_id128(void) { static int add_matches(sd_journal *j, char **args) { char **i; - int r; assert(j); STRV_FOREACH(i, args) { + int r; if (streq(*i, "+")) r = sd_journal_add_disjunction(j); else if (path_is_absolute(*i)) { - char *p, *t = NULL; + char _cleanup_free_ *p, *t = NULL; const char *path; struct stat st; @@ -530,7 +530,6 @@ static int add_matches(sd_journal *j, char **args) { path = p ? p : *i; if (stat(path, &st) < 0) { - free(p); log_error("Couldn't stat file: %m"); return -errno; } @@ -542,18 +541,14 @@ static int add_matches(sd_journal *j, char **args) { else if (S_ISBLK(st.st_mode)) asprintf(&t, "_KERNEL_DEVICE=b%u:%u", major(st.st_rdev), minor(st.st_rdev)); else { - free(p); log_error("File is not a device node, regular file or is not executable: %s", *i); return -EINVAL; } - free(p); - if (!t) return log_oom(); r = sd_journal_add_match(j, t, 0); - free(t); } else r = sd_journal_add_match(j, *i, 0);