=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/doas/env.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/usr.bin/doas/env.c 2019/06/16 18:16:34 1.7 +++ src/usr.bin/doas/env.c 2019/06/17 16:01:26 1.8 @@ -1,4 +1,4 @@ -/* $OpenBSD: env.c,v 1.7 2019/06/16 18:16:34 tedu Exp $ */ +/* $OpenBSD: env.c,v 1.8 2019/06/17 16:01:26 tedu Exp $ */ /* * Copyright (c) 2016 Ted Unangst * @@ -85,6 +85,10 @@ createenv(const struct rule *rule, const struct passwd *mypw, const struct passwd *targpw) { + static const char *copyset[] = { + "DISPLAY", "TERM", + NULL + }; struct env *env; u_int i; @@ -95,7 +99,14 @@ env->count = 0; addnode(env, "DOAS_USER", mypw->pw_name); + addnode(env, "HOME", targpw->pw_dir); + addnode(env, "LOGNAME", targpw->pw_name); + addnode(env, "PATH", getenv("PATH")); + addnode(env, "SHELL", targpw->pw_shell); + addnode(env, "USER", targpw->pw_name); + fillenv(env, copyset); + if (rule->options & KEEPENV) { extern const char **environ; @@ -124,19 +135,6 @@ env->count++; } } - } else { - static const char *copyset[] = { - "DISPLAY", "TERM", - NULL - }; - - addnode(env, "HOME", targpw->pw_dir); - addnode(env, "LOGNAME", targpw->pw_name); - addnode(env, "PATH", getenv("PATH")); - addnode(env, "SHELL", targpw->pw_shell); - addnode(env, "USER", targpw->pw_name); - - fillenv(env, copyset); } return env;