aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2016-05-26 14:01:10 +0100
committerThomas Adam <thomas@xteddy.org>2016-05-26 14:01:10 +0100
commit95e304d1113410e1deb5245bfe8d55a1cd44a059 (patch)
tree12702ec5ea655b3bda68a64aedbd4318008671ee
parent05ec232f3ec567351405f276693735056156527d (diff)
parentcd14ac0486906d607b5ef6ade70460c64aec00cf (diff)
downloadrtmux-95e304d1113410e1deb5245bfe8d55a1cd44a059.tar.gz
rtmux-95e304d1113410e1deb5245bfe8d55a1cd44a059.tar.bz2
rtmux-95e304d1113410e1deb5245bfe8d55a1cd44a059.zip
Merge branch 'obsd-master'
-rw-r--r--environ.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/environ.c b/environ.c
index d855f8b5..31e57e0e 100644
--- a/environ.c
+++ b/environ.c
@@ -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);
}
}