chiark / gitweb /
strv: properly override settings in env_append()
authorLennart Poettering <lennart@poettering.net>
Fri, 15 Apr 2011 23:50:40 +0000 (01:50 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 16 Apr 2011 00:03:35 +0000 (02:03 +0200)
src/strv.c

index 0afd9865d9c7316fd35d155d6388182d64065091..1c15ee802c732581a69219e6ee127fa0ef2decc2 100644 (file)
@@ -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;