From: Frantisek Sumsal Date: Mon, 22 May 2023 17:59:19 +0000 (+0200) Subject: networkctl: fix a potential memory leak X-Git-Tag: v254-rc1~414 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5de8264b0da69a6716ab7f9043c44796bd7f8790;p=thirdparty%2Fsystemd.git networkctl: fix a potential memory leak Resolves: CID#1512516 Follow-up to 96bab8fd63. --- diff --git a/src/network/networkctl.c b/src/network/networkctl.c index 97e6cc7f9ed..0037c8e8ceb 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),