version 1.56, 2016/06/16 17:40:30 |
version 1.57, 2016/06/19 19:29:43 |
|
|
} |
} |
|
|
int |
int |
main(int argc, char **argv, char **envp) |
main(int argc, char **argv) |
{ |
{ |
const char *safepath = "/bin:/sbin:/usr/bin:/usr/sbin:" |
const char *safepath = "/bin:/sbin:/usr/bin:/usr/sbin:" |
"/usr/local/bin:/usr/local/sbin"; |
"/usr/local/bin:/usr/local/sbin"; |
|
|
char *shargv[] = { NULL, NULL }; |
char *shargv[] = { NULL, NULL }; |
char *sh; |
char *sh; |
const char *cmd; |
const char *cmd; |
struct env *env; |
|
char cmdline[LINE_MAX]; |
char cmdline[LINE_MAX]; |
char myname[_PW_NAME_LEN + 1]; |
char myname[_PW_NAME_LEN + 1]; |
struct passwd *pw; |
struct passwd *pw; |
|
|
char cwdpath[PATH_MAX]; |
char cwdpath[PATH_MAX]; |
const char *cwd; |
const char *cwd; |
char *login_style = NULL; |
char *login_style = NULL; |
|
char **envp; |
|
|
setprogname("doas"); |
setprogname("doas"); |
|
|
|
|
syslog(LOG_AUTHPRIV | LOG_INFO, "%s ran command %s as %s from %s", |
syslog(LOG_AUTHPRIV | LOG_INFO, "%s ran command %s as %s from %s", |
myname, cmdline, pw->pw_name, cwd); |
myname, cmdline, pw->pw_name, cwd); |
|
|
env = createenv(envp); |
envp = prepenv(rule); |
env = filterenv(env, rule); |
|
envp = flattenenv(env); |
|
|
|
if (rule->cmd) { |
if (rule->cmd) { |
if (setenv("PATH", safepath, 1) == -1) |
if (setenv("PATH", safepath, 1) == -1) |