Changeset View
Changeset View
Standalone View
Standalone View
head/usr.sbin/cron/lib/entry.c
Show First 20 Lines • Show All 363 Lines • ▼ Show 20 Lines | if (pw->pw_expire && time(NULL) >= pw->pw_expire) { | ||||
goto eof; | goto eof; | ||||
} | } | ||||
#endif /* !PAM */ | #endif /* !PAM */ | ||||
e->uid = pw->pw_uid; | e->uid = pw->pw_uid; | ||||
e->gid = pw->pw_gid; | e->gid = pw->pw_gid; | ||||
/* copy and fix up environment. some variables are just defaults and | /* copy and fix up environment. some variables are just defaults and | ||||
* others are overrides. | * others are overrides; we process only the overrides here, defaults | ||||
* are handled in do_command after login.conf is processed. | |||||
*/ | */ | ||||
e->envp = env_copy(envp); | e->envp = env_copy(envp); | ||||
if (e->envp == NULL) { | if (e->envp == NULL) { | ||||
warn("env_copy"); | warn("env_copy"); | ||||
ecode = e_mem; | ecode = e_mem; | ||||
goto eof; | goto eof; | ||||
} | } | ||||
if (!env_get("SHELL", e->envp)) { | if (!env_get("SHELL", e->envp)) { | ||||
prev_env = e->envp; | prev_env = e->envp; | ||||
sprintf(envstr, "SHELL=%s", _PATH_BSHELL); | sprintf(envstr, "SHELL=%s", _PATH_BSHELL); | ||||
e->envp = env_set(e->envp, envstr); | e->envp = env_set(e->envp, envstr); | ||||
if (e->envp == NULL) { | if (e->envp == NULL) { | ||||
warn("env_set(%s)", envstr); | warn("env_set(%s)", envstr); | ||||
env_free(prev_env); | env_free(prev_env); | ||||
ecode = e_mem; | ecode = e_mem; | ||||
goto eof; | goto eof; | ||||
} | } | ||||
} | } | ||||
/* If LOGIN_CAP, this is deferred to do_command where the login class | |||||
* is processed. If !LOGIN_CAP, do it here. | |||||
*/ | |||||
#ifndef LOGIN_CAP | |||||
if (!env_get("HOME", e->envp)) { | if (!env_get("HOME", e->envp)) { | ||||
prev_env = e->envp; | prev_env = e->envp; | ||||
sprintf(envstr, "HOME=%s", pw->pw_dir); | sprintf(envstr, "HOME=%s", pw->pw_dir); | ||||
e->envp = env_set(e->envp, envstr); | e->envp = env_set(e->envp, envstr); | ||||
if (e->envp == NULL) { | if (e->envp == NULL) { | ||||
warn("env_set(%s)", envstr); | warn("env_set(%s)", envstr); | ||||
env_free(prev_env); | env_free(prev_env); | ||||
ecode = e_mem; | ecode = e_mem; | ||||
goto eof; | goto eof; | ||||
} | } | ||||
} | } | ||||
if (!env_get("PATH", e->envp)) { | #endif | ||||
prev_env = e->envp; | |||||
sprintf(envstr, "PATH=%s", _PATH_DEFPATH); | |||||
e->envp = env_set(e->envp, envstr); | |||||
if (e->envp == NULL) { | |||||
warn("env_set(%s)", envstr); | |||||
env_free(prev_env); | |||||
ecode = e_mem; | |||||
goto eof; | |||||
} | |||||
} | |||||
prev_env = e->envp; | prev_env = e->envp; | ||||
sprintf(envstr, "%s=%s", "LOGNAME", pw->pw_name); | sprintf(envstr, "%s=%s", "LOGNAME", pw->pw_name); | ||||
e->envp = env_set(e->envp, envstr); | e->envp = env_set(e->envp, envstr); | ||||
if (e->envp == NULL) { | if (e->envp == NULL) { | ||||
warn("env_set(%s)", envstr); | warn("env_set(%s)", envstr); | ||||
env_free(prev_env); | env_free(prev_env); | ||||
ecode = e_mem; | ecode = e_mem; | ||||
goto eof; | goto eof; | ||||
▲ Show 20 Lines • Show All 306 Lines • Show Last 20 Lines |