From: Marcela Mašláňová Date: Mon, 22 Mar 2010 09:58:01 +0000 (+0100) Subject: In system tables was hardcoded home directory to "/". This was changed X-Git-Tag: cronie1.4.5~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e80b112ad74ade7c8de5b5d1cd2a215c18d3b0da;p=cronie In system tables was hardcoded home directory to "/". This was changed to switching to "/" only when home for user isn't defined. Based on rhbz#575419 --- diff --git a/contrib/0hourly b/contrib/0hourly index e4a63dc..09039c1 100644 --- a/contrib/0hourly +++ b/contrib/0hourly @@ -1,5 +1,4 @@ SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root -HOME=/ 01 * * * * root run-parts /etc/cron.hourly diff --git a/contrib/dailyjobs b/contrib/dailyjobs index 0101c16..ee9af24 100644 --- a/contrib/dailyjobs +++ b/contrib/dailyjobs @@ -1,7 +1,6 @@ SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root -HOME=/ # run-parts 02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily diff --git a/src/security.c b/src/security.c index c3b1463..348504a 100644 --- a/src/security.c +++ b/src/security.c @@ -218,8 +218,11 @@ int cron_change_user_permanently(struct passwd *pw, char *homedir) { return -1; } if (chdir(homedir) == -1) { - log_it("CRON", getpid(), "ERROR chdir failed", homedir, errno); - return -1; + if (setenv(homedir, "/", 0) == -1) { + log_it("CRON", getpid(), "ERROR chdir failed", homedir, errno); + return -1; + } + chdir("/"); } return 0;