diff options
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/cron/lib/entry.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/usr.sbin/cron/lib/entry.c b/usr.sbin/cron/lib/entry.c index d24aadb..7269152 100644 --- a/usr.sbin/cron/lib/entry.c +++ b/usr.sbin/cron/lib/entry.c @@ -351,14 +351,16 @@ load_entry(file, error_func, pw, envp) goto eof; } } - prev_env = e->envp; - sprintf(envstr, "HOME=%s", pw->pw_dir); - 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; + if (!env_get("HOME", e->envp)) { + prev_env = e->envp; + sprintf(envstr, "HOME=%s", pw->pw_dir); + 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; + } } if (!env_get("PATH", e->envp)) { prev_env = e->envp; |