From: Duncan Overbruck Date: Thu, 28 Jan 2021 16:58:34 +0000 (+0100) Subject: correctly reset path for rules without specific command X-Git-Tag: v6.8.1~5 X-Git-Url: https://git.armaanb.net/?p=opendoas.git;a=commitdiff_plain;h=d5acd52e2a15c36a8e06f9103d35622933aa422d correctly reset path for rules without specific command This is a fixup for commit 01c658f8c45cb92a343be5f32aa6da70b2032168 where the behaviour was changed to not inherit the PATH variable by default. --- diff --git a/doas.c b/doas.c index a184650..d312b24 100644 --- a/doas.c +++ b/doas.c @@ -386,6 +386,7 @@ main(int argc, char **argv) #ifdef HAVE_LOGIN_CAP_H if (setusercontext(NULL, targpw, target, LOGIN_SETGROUP | + LOGIN_SETPATH | LOGIN_SETPRIORITY | LOGIN_SETRESOURCES | LOGIN_SETUMASK | LOGIN_SETUSER) != 0) errx(1, "failed to set user context for target"); @@ -396,6 +397,8 @@ main(int argc, char **argv) err(1, "initgroups"); if (setresuid(target, target, target) != 0) err(1, "setresuid"); + if (setenv("PATH", safepath, 1) == -1) + err(1, "failed to set PATH '%s'", safepath); #endif if (getcwd(cwdpath, sizeof(cwdpath)) == NULL)