From 5de8264b0da69a6716ab7f9043c44796bd7f8790 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Mon, 22 May 2023 19:59:19 +0200 Subject: [PATCH] networkctl: fix a potential memory leak Resolves: CID#1512516 Follow-up to 96bab8fd63. --- src/network/networkctl.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 97e6cc7f9e..0037c8e8ce 100644 --- a/src/network/networkctl.c +++ b/src/network/networkctl.c @@ -3498,12 +3498,19 @@ static int parse_argv(int argc, char *argv[]) { if (isempty(optarg)) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Empty drop-in file name."); - if (!endswith(optarg, ".conf")) - arg_drop_in = strjoin(optarg, ".conf"); - else - arg_drop_in = strdup(optarg); - if (!arg_drop_in) - return log_oom(); + if (!endswith(optarg, ".conf")) { + char *conf; + + conf = strjoin(optarg, ".conf"); + if (!conf) + return log_oom(); + + free_and_replace(arg_drop_in, conf); + } else { + r = free_and_strdup(&arg_drop_in, optarg); + if (r < 0) + return log_oom(); + } if (!filename_is_valid(arg_drop_in)) return log_error_errno(SYNTHETIC_ERRNO(EINVAL),