summaryrefslogtreecommitdiff
path: root/src/strv.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-04-16 01:50:40 +0200
committerLennart Poettering <lennart@poettering.net>2011-04-16 02:03:35 +0200
commite1830b12ae8d97a1baaabe28d9ee28c77835463d (patch)
tree403d9415cb7e6eb67bd9f739781e3d0526313694 /src/strv.c
parent5d6ab905c00342d012aed559a859b373512e4650 (diff)
strv: properly override settings in env_append()
Diffstat (limited to 'src/strv.c')
-rw-r--r--src/strv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/strv.c b/src/strv.c
index 0afd9865d9..1c15ee802c 100644
--- a/src/strv.c
+++ b/src/strv.c
@@ -528,6 +528,9 @@ char **strv_env_delete(char **x, unsigned n_lists, ...) {
char **strv_env_set(char **x, const char *p) {
char **k, **r;
+ char* m[2] = { (char*) p, NULL };
+
+ /* Overrides the env var setting of p, returns a new copy */
if (!(r = new(char*, strv_length(x)+2)))
return NULL;
@@ -536,7 +539,7 @@ char **strv_env_set(char **x, const char *p) {
if (env_append(r, &k, x) < 0)
goto fail;
- if (!(*(k++) = strdup(p)))
+ if (env_append(r, &k, m) < 0)
goto fail;
*k = NULL;