X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=env.c;h=e2286fc83b0232425f67a8cda355ef1453f7739f;hb=d67caab6ab5dfa342159fef7cef5ea91ccf0aad3;hp=f1fe45fbc83a6f51c7a2448209abe42b48f044f0;hpb=55adb00203fcb35df767868a02d6bcaea86092f5;p=opendoas.git diff --git a/env.c b/env.c index f1fe45f..e2286fc 100644 --- a/env.c +++ b/env.c @@ -15,6 +15,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "config.h" + #include #include "sys-tree.h" @@ -26,8 +28,10 @@ #include #include +#include "openbsd.h" #include "doas.h" -#include "includes.h" + +const char *formerpath; struct envnode { RB_ENTRY(envnode) node; @@ -199,10 +203,17 @@ fillenv(struct env *env, const char **envlist) /* assign value or inherit from environ */ if (eq) { val = eq + 1; - if (*val == '$') - val = getenv(val + 1); + if (*val == '$') { + if (strcmp(val + 1, "PATH") == 0) + val = formerpath; + else + 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) {