From b70935ac65be05087a1a694ee19488cb7fce926d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 15 Feb 2021 14:10:30 +0100 Subject: [PATCH] manager: fix memleak on repeated systemd.setenv keys --- src/core/main.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index 85bf558e90f..1d9dec55c37 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -452,16 +452,13 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (proc_cmdline_value_missing(key, value)) return 0; - if (env_assignment_is_valid(value)) { - char **env; - - env = strv_env_set(arg_default_environment, value); - if (!env) + if (!env_assignment_is_valid(value)) + log_warning("Environment variable assignment '%s' is not valid. Ignoring.", value); + else { + r = strv_env_replace_strdup(&arg_default_environment, value); + if (r < 0) return log_oom(); - - arg_default_environment = env; - } else - log_warning("Environment variable name '%s' is not valid. Ignoring.", value); + } } else if (proc_cmdline_key_streq(key, "systemd.machine_id")) { -- 2.47.3