summaryrefslogtreecommitdiff
path: root/src/basic/env-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic/env-util.c')
-rw-r--r--src/basic/env-util.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/src/basic/env-util.c b/src/basic/env-util.c
index e77f9d6d3f..0b1d086394 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
@@ -539,8 +539,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
assert(format);
- for (e = format, i = 0; *e && i < n; e ++, i ++) {
-
+ for (e = format, i = 0; *e && i < n; e ++, i ++)
switch (state) {
case WORD:
@@ -554,8 +553,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e-1;
state = VARIABLE;
@@ -565,8 +563,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e+1;
state = WORD;
@@ -576,8 +573,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e-1;
state = VARIABLE_RAW;
@@ -596,8 +592,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e+1;
state = WORD;
@@ -653,8 +648,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e+1;
state = WORD;
@@ -673,8 +667,7 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
if (!k)
return NULL;
- free(r);
- r = k;
+ free_and_replace(r, k);
word = e--;
i--;
@@ -682,7 +675,6 @@ char *replace_env_n(const char *format, size_t n, char **env, unsigned flags) {
}
break;
}
- }
if (state == VARIABLE_RAW) {
const char *t;
@@ -729,7 +721,7 @@ char **replace_env_argv(char **argv, char **env) {
q = strv_length(m);
l = l + q - 1;
- w = realloc(ret, sizeof(char*) * (l+1));
+ w = reallocarray(ret, l + 1, sizeof(char *));
if (!w) {
ret[k] = NULL;
strv_free(ret);