chiark / gitweb /
journalctl: use _cleanup_ in one function
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 15 Mar 2013 22:00:57 +0000 (18:00 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 20 Mar 2013 01:50:42 +0000 (21:50 -0400)
src/journal/journalctl.c

index a6ad055..8aef923 100644 (file)
@@ -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);