]> git.armaanb.net Git - opendoas.git/blobdiff - doas.c
Move the RB_ code from doas.h to env.c, and limit the environment interface to a...
[opendoas.git] / doas.c
diff --git a/doas.c b/doas.c
index eef89559d10ddd7bca4b0aa4c0bc2dcf1662773b..ee1b341f7ba8b9eb13426a5dd16a70568a642805 100644 (file)
--- a/doas.c
+++ b/doas.c
@@ -214,7 +214,7 @@ checkconfig(const char *confpath, int argc, char **argv,
 }
 
 int
-main(int argc, char **argv, char **envp)
+main(int argc, char **argv)
 {
        const char *safepath = "/bin:/sbin:/usr/bin:/usr/sbin:"
            "/usr/local/bin:/usr/local/sbin";
@@ -222,7 +222,6 @@ main(int argc, char **argv, char **envp)
        char *shargv[] = { NULL, NULL };
        char *sh;
        const char *cmd;
-       struct env *env;
        char cmdline[LINE_MAX];
        char myname[_PW_NAME_LEN + 1];
        struct passwd *pw;
@@ -237,6 +236,7 @@ main(int argc, char **argv, char **envp)
        int vflag = 0;
        char cwdpath[PATH_MAX];
        const char *cwd;
+       char **envp;
 #ifdef HAVE_BSD_AUTH_H
        char *login_style = NULL;
 #endif
@@ -419,9 +419,7 @@ main(int argc, char **argv, char **envp)
        syslog(LOG_AUTHPRIV | LOG_INFO, "%s ran command %s as %s from %s",
            myname, cmdline, pw->pw_name, cwd);
 
-       env = createenv(envp);
-       env = filterenv(env, rule);
-       envp = flattenenv(env);
+       envp = prepenv(rule);
 
        if (rule->cmd) {
                if (setenv("PATH", safepath, 1) == -1)