]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
env-util: use strextend()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 May 2021 05:15:34 +0000 (14:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 20 May 2021 09:18:56 +0000 (18:18 +0900)
src/basic/env-util.c

index 0e8c2878d61a17574142c0c9c3ee18fa98c47388..81b1e3f10e5c883e1aecf409cb5c23b661a6e647 100644 (file)
@@ -572,12 +572,9 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
 
                                 t = strv_env_get_n(env, word+2, e-word-2, flags);
 
-                                k = strjoin(r, t);
-                                if (!k)
+                                if (!strextend(&r, t))
                                         return NULL;
 
-                                free_and_replace(r, k);
-
                                 word = e+1;
                                 state = WORD;
                         } else if (*e == ':') {
@@ -627,12 +624,9 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
                                 else if (!t && state == DEFAULT_VALUE)
                                         t = v = replace_env_n(test_value, e-test_value, env, flags);
 
-                                k = strjoin(r, t);
-                                if (!k)
+                                if (!strextend(&r, t))
                                         return NULL;
 
-                                free_and_replace(r, k);
-
                                 word = e+1;
                                 state = WORD;
                         }
@@ -646,12 +640,9 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
 
                                 t = strv_env_get_n(env, word+1, e-word-1, flags);
 
-                                k = strjoin(r, t);
-                                if (!k)
+                                if (!strextend(&r, t))
                                         return NULL;
 
-                                free_and_replace(r, k);
-
                                 word = e--;
                                 i--;
                                 state = WORD;