]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared: fix memory leak in error path
authorLennart Poettering <lennart@poettering.net>
Tue, 23 Feb 2021 14:26:49 +0000 (15:26 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 23 Feb 2021 14:45:19 +0000 (15:45 +0100)
Coverity 1446676

src/shared/serialize.c

index 42fe5db3fafbc4120b2e8fdc85622c5097783a0c..23aac3ef527112b2010a31ee2b14a84631625445 100644 (file)
@@ -175,7 +175,7 @@ int deserialize_dual_timestamp(const char *value, dual_timestamp *t) {
 }
 
 int deserialize_environment(const char *value, char ***list) {
-        char *unescaped;
+        _cleanup_free_ char *unescaped = NULL;
         int r;
 
         assert(value);
@@ -187,9 +187,10 @@ int deserialize_environment(const char *value, char ***list) {
         if (r < 0)
                 return log_error_errno(r, "Failed to unescape: %m");
 
-        r = strv_env_replace_consume(list, unescaped);
+        r = strv_env_replace_consume(list, TAKE_PTR(unescaped));
         if (r < 0)
                 return log_error_errno(r, "Failed to append environment variable: %m");
+
         return 0;
 }