diff options
author | nicm <nicm> | 2016-05-26 12:15:42 +0000 |
---|---|---|
committer | nicm <nicm> | 2016-05-26 12:15:42 +0000 |
commit | cd14ac0486906d607b5ef6ade70460c64aec00cf (patch) | |
tree | d0bd87eb9b3c3773ae8e1d2a4e197da959f1a5ed | |
parent | 95a4cc3bcef95feb6dfca7557cef4c32a424e4d4 (diff) | |
download | rtmux-cd14ac0486906d607b5ef6ade70460c64aec00cf.tar.gz rtmux-cd14ac0486906d607b5ef6ade70460c64aec00cf.tar.bz2 rtmux-cd14ac0486906d607b5ef6ade70460c64aec00cf.zip |
Just nuke environ instead of trying to unsetenv everything because that
doesn't necessarily work if there is an entry with an empty name.
-rw-r--r-- | environ.c | 14 |
1 files changed, 3 insertions, 11 deletions
@@ -195,19 +195,11 @@ environ_update(const char *vars, struct environ *srcenv, void environ_push(struct environ *env) { - struct environ_entry *envent; - char *v; - - while (*environ != NULL) { - v = xstrdup(*environ); - v[strcspn(v, "=")] = '\0'; - - unsetenv(v); - free(v); - } + struct environ_entry *envent; + environ = xcalloc(1, sizeof *environ); RB_FOREACH(envent, environ, env) { - if (envent->value != NULL) + if (envent->value != NULL && *envent->name != '\0') setenv(envent->name, envent->value, 1); } } |