]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared/exec-util: fix minor memleak
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 16 Feb 2021 15:00:17 +0000 (16:00 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 16 Feb 2021 15:10:14 +0000 (16:10 +0100)
p was not freed on error.

src/shared/exec-util.c

index 6355ce8ce42a6982a3e4914477cbbc9fb9e9baa3..1557086079ef89bf640b5f74cf901777d9ce1a54 100644 (file)
@@ -278,18 +278,12 @@ static int gather_environment_generate(int fd, void *arg) {
                 return r;
 
         STRV_FOREACH_PAIR(x, y, new) {
-                char *p;
-
                 if (!env_name_is_valid(*x)) {
                         log_warning("Invalid variable assignment \"%s=...\", ignoring.", *x);
                         continue;
                 }
 
-                p = strjoin(*x, "=", *y);
-                if (!p)
-                        return -ENOMEM;
-
-                r = strv_env_replace(env, p);
+                r = strv_env_assign(env, *x, *y);
                 if (r < 0)
                         return r;
 
@@ -297,7 +291,7 @@ static int gather_environment_generate(int fd, void *arg) {
                         return -errno;
         }
 
-        return r;
+        return 0;
 }
 
 static int gather_environment_collect(int fd, void *arg) {