]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
creds: fix leak of arg_tpm2_device 20186/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 9 Jul 2021 13:29:47 +0000 (15:29 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 9 Jul 2021 13:29:47 +0000 (15:29 +0200)
IIUC, "auto" is the same as NULL. There is no need to strdup() anything.

Coverity CID#1458113.

src/creds/creds.c

index 19893fb3619a1f5948b9def3892db09848b62536..95d5bf0cfaf6440a755a4fff504e1be7802d164c 100644 (file)
@@ -704,30 +704,20 @@ static int parse_argv(int argc, char *argv[]) {
                         arg_with_key = CRED_AES256_GCM_BY_TPM2_HMAC;
                         break;
 
-                case ARG_TPM2_DEVICE: {
-                        _cleanup_free_ char *device = NULL;
-
+                case ARG_TPM2_DEVICE:
                         if (streq(optarg, "list"))
                                 return tpm2_list_devices();
 
-                        if (!streq(optarg, "auto")) {
-                                device = strdup(optarg);
-                                if (!device)
-                                        return log_oom();
-                        }
-
-                        arg_tpm2_device = TAKE_PTR(device);
+                        arg_tpm2_device = streq(optarg, "auto") ? NULL : optarg;
                         break;
-                }
-
-                case ARG_TPM2_PCRS: {
-                        uint32_t mask;
 
+                case ARG_TPM2_PCRS:
                         if (isempty(optarg)) {
                                 arg_tpm2_pcr_mask = 0;
                                 break;
                         }
 
+                        uint32_t mask;
                         r = tpm2_parse_pcrs(optarg, &mask);
                         if (r < 0)
                                 return r;
@@ -738,7 +728,6 @@ static int parse_argv(int argc, char *argv[]) {
                                 arg_tpm2_pcr_mask |= mask;
 
                         break;
-                }
 
                 case ARG_NAME:
                         if (isempty(optarg)) {