]> git.armaanb.net Git - opendoas.git/commitdiff
fix one last edge case regarding PATH, allows simpler config.
authortedu <tedu>
Sun, 7 Jul 2019 19:21:28 +0000 (19:21 +0000)
committerDuncan Overbruck <mail@duncano.de>
Sat, 19 Oct 2019 13:01:52 +0000 (15:01 +0200)
doas.conf.5
env.c

index d7642bdebf4fed54b41a90c07d1e092b9e834eab..54022ee2dcbec9a1584a9fd55f5f27867348ee18 100644 (file)
@@ -133,7 +133,7 @@ while retaining the original PATH.
 permit persist setenv { PKG_CACHE PKG_PATH } aja cmd pkg_add
 permit setenv { -ENV PS1=$DOAS_PS1 SSH_AUTH_SOCK } :wheel
 permit nopass tedu as root cmd /usr/sbin/procmap
-permit nopass keepenv setenv { PATH=$PATH } root as root
+permit nopass keepenv setenv { PATH } root as root
 .Ed
 .Sh SEE ALSO
 .Xr doas 1
diff --git a/env.c b/env.c
index 2090897ea1738601eb9b82efe25d37b8660a4541..12909c6201cef0e9b1c0199cf13d641f89a152ad 100644 (file)
--- a/env.c
+++ b/env.c
@@ -208,7 +208,10 @@ fillenv(struct env *env, const char **envlist)
                                        val = getenv(val + 1);
                        }
                } else {
-                       val = getenv(name);
+                       if (strcmp(name, "PATH") == 0)
+                               val = formerpath;
+                       else
+                               val = getenv(name);
                }
                /* at last, we have something to insert */
                if (val) {