]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journalctl: fix memleak
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 15 Jan 2017 16:55:46 +0000 (11:55 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 15 Jan 2017 17:39:15 +0000 (12:39 -0500)
This is harmless, it would only happen if --verify-key is used multiple times.
But let's fix it for correctness.

CID ##1368415.

src/journal/journalctl.c

index 73204b37530473aa7793a0155109ab6ac0d02be7..2a5f2b37e816988e20d9f5f79b8dd993a8b0c63d 100644 (file)
@@ -683,11 +683,12 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case ARG_VERIFY_KEY:
                         arg_action = ACTION_VERIFY;
-                        arg_verify_key = strdup(optarg);
-                        if (!arg_verify_key)
-                                return -ENOMEM;
-                        arg_merge = false;
+                        r = free_and_strdup(&arg_verify_key, optarg);
+                        if (r < 0)
+                                return r;
                         string_erase(optarg);
+
+                        arg_merge = false;
                         break;
 
                 case ARG_INTERVAL:
@@ -888,7 +889,7 @@ static int parse_argv(int argc, char *argv[]) {
                  * to users, and automatically turn --unit= into --user-unit= if combined with --user. */
                 r = strv_extend_strv(&arg_user_units, arg_system_units, true);
                 if (r < 0)
-                        return -ENOMEM;
+                        return r;
 
                 arg_system_units = strv_free(arg_system_units);
         }