]> granicus.if.org Git - cronie/commitdiff
Checking homedir is last, because we need at first set up gid and uid.
authormmaslano <mmaslano@redhat.com>
Fri, 24 Aug 2007 06:18:36 +0000 (08:18 +0200)
committerTomas Janousek <tomi@nomi.cz>
Mon, 27 Aug 2007 14:03:54 +0000 (16:03 +0200)
crontab.1
security.c

index 505f272956b8cb9c9fd1d4cef04c4d438c14217c..ad087eb5464e3ee4118f44120f36c4042d10c44e 100644 (file)
--- a/crontab.1
+++ b/crontab.1
@@ -19,7 +19,7 @@
 .\"
 .\" $Id: crontab.1,v 1.7 2004/01/23 19:03:32 vixie Exp $
 .\"
-.TH CRONTAB 1 "16 Januar 2007"
+.TH CRONTAB 1 "16 January 2007"
 .UC 4
 .SH NAME
 crontab \- maintain crontab files for individual users (ISC Cron V4.1)
index a57402c7a52acdcf51559286a26ab4d46ade79db..b6e1b58e91e4fa0d6e1bf5c2ec9660cbb8607e63 100644 (file)
@@ -201,13 +201,6 @@ int cron_change_user( struct passwd *pw, char *homedir )
        return -1;
     }
 
-    if ( chdir(homedir) == -1 )
-    {
-       log_it("CRON", getpid(), "chdir(HOME) failed:", strerror(errno));
-       log_it("CRON", getpid(), homedir, strerror(errno));
-       return -1;
-    }
-
     if ( initgroups( pw->pw_name, pw->pw_gid ) != 0 )
     {
        log_it("CRON", getpid(), "initgroups failed:", strerror(errno));
@@ -219,7 +212,14 @@ int cron_change_user( struct passwd *pw, char *homedir )
        log_it("CRON", getpid(), "setuid failed:", strerror(errno));
        return -1;
     }
-    
+
+       if ( chdir(homedir) == -1 )
+    {
+    log_it("CRON", getpid(), "chdir(HOME) failed:", strerror(errno));
+    log_it("CRON", getpid(), homedir, strerror(errno));
+    return -1;
+    }
+   
     return 0;
 }