From d1829af943d0d47c745c3ce789690493e7b8107a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 9 Jul 2021 15:29:47 +0200 Subject: [PATCH] creds: fix leak of arg_tpm2_device IIUC, "auto" is the same as NULL. There is no need to strdup() anything. Coverity CID#1458113. --- src/creds/creds.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/creds/creds.c b/src/creds/creds.c index 19893fb3619..95d5bf0cfaf 100644 --- a/src/creds/creds.c +++ b/src/creds/creds.c @@ -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)) { -- 2.47.3