=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/environ.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- src/usr.bin/tmux/environ.c 2016/01/19 15:59:12 1.12 +++ src/usr.bin/tmux/environ.c 2016/05/26 12:15:42 1.13 @@ -1,4 +1,4 @@ -/* $OpenBSD: environ.c,v 1.12 2016/01/19 15:59:12 nicm Exp $ */ +/* $OpenBSD: environ.c,v 1.13 2016/05/26 12:15:42 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -195,19 +195,11 @@ void environ_push(struct environ *env) { - struct environ_entry *envent; - char *v; + struct environ_entry *envent; - while (*environ != NULL) { - v = xstrdup(*environ); - v[strcspn(v, "=")] = '\0'; - - unsetenv(v); - free(v); - } - + 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); } }