Marcela Mašláňová 8dcad9
--- at-3.1.10/at.c.perm	2007-07-04 09:43:19.000000000 +0200
Marcela Mašláňová 8dcad9
+++ at-3.1.10/at.c	2007-07-04 10:04:47.000000000 +0200
Marcela Mašláňová 8dcad9
@@ -314,26 +314,19 @@
Marcela Mašláňová a381a9
 	 * bit.  Yes, this is a kluge.
Marcela Mašláňová a381a9
 	 */
Marcela Mašláňová a381a9
 	cmask = umask(S_IRUSR | S_IWUSR | S_IXUSR);
Marcela Mašláňová a381a9
-        seteuid(real_uid);
Marcela Mašláňová 8dcad9
+        seteuid(effective_uid);
Marcela Mašláňová a381a9
 	if ((fd = open(atfile, O_CREAT | O_EXCL | O_TRUNC | O_WRONLY, S_IRUSR)) == -1)
Marcela Mašláňová a381a9
 	    perr("Cannot create atjob file %.500s", atfile);
Marcela Mašláňová a381a9
-        seteuid(effective_uid);
Marcela Mašláňová a381a9
+        //seteuid(effective_uid);
Marcela Mašláňová a381a9
 
Marcela Mašláňová a381a9
 	if ((fd2 = dup(fd)) < 0)
Marcela Mašláňová a381a9
 	    perr("Error in dup() of job file");
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
-        /*
Marcela Mašláňová 8dcad9
 	if (fchown(fd2, real_uid, real_gid) != 0)
Marcela Mašláňová 8dcad9
-	    perr("Cannot give away file");
Marcela Mašláňová 8dcad9
-        */
Marcela Mašláňová 8dcad9
+	    perr("Cannot give real_uid and real_gid the file");
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
     PRIV_END
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
-    /* We no longer need suid root; now we just need to be able to write
Marcela Mašláňová 8dcad9
-     * to the directory, if necessary.
Marcela Mašláňová 8dcad9
-     */
Marcela Mašláňová 8dcad9
-
Marcela Mašláňová 8dcad9
-    REDUCE_PRIV(daemon_uid, daemon_gid)
Marcela Mašláňová 8dcad9
     /* We've successfully created the file; let's set the flag so it 
Marcela Mašláňová 8dcad9
      * gets removed in case of an interrupt or error.
Marcela Mašláňová 8dcad9
      */
Marcela Mašláňová 8dcad9
@@ -491,7 +484,7 @@
Marcela Mašláňová 8dcad9
      */
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
     if (fchmod(fd2, S_IRUSR | S_IWUSR | S_IXUSR) < 0)
Marcela Mašláňová 8dcad9
-	perr("Cannot give away file");
Marcela Mašláňová 8dcad9
+	perr("Cannot change the mode of the file");
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
     close(fd2);
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
@@ -656,7 +649,7 @@
Marcela Mašláňová 8dcad9
                     We need the unprivileged uid here since the file is owned by the real
Marcela Mašláňová 8dcad9
                     (not effective) uid.
Marcela Mašláňová 8dcad9
                     */
Marcela Mašláňová 8dcad9
-                    setregid(real_gid, effective_gid);
Marcela Mašláňová 8dcad9
+		    PRIV_START
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
 		    if (queue == '=') {
Marcela Mašláňová 8dcad9
 			fprintf(stderr, "Warning: deleting running job\n");
Marcela Mašláňová 8dcad9
@@ -665,8 +658,8 @@
Marcela Mašláňová 8dcad9
 			perr("Cannot unlink %.500s", dirent->d_name);
Marcela Mašláňová 8dcad9
 			rc = EXIT_FAILURE;
Marcela Mašláňová 8dcad9
 		    }
Marcela Mašláňová 8dcad9
+		    PRIV_END
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
-                    setregid(effective_gid, real_gid);
Marcela Mašláňová 8dcad9
 		    done = 1;
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
 		    break;
Marcela Mašláňová 8dcad9
@@ -676,7 +669,7 @@
Marcela Mašláňová 8dcad9
 			FILE *fp;
Marcela Mašláňová 8dcad9
 			int ch;
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
-			setregid(real_gid, effective_gid);
Marcela Mašláňová 8dcad9
+			PRIV_START
Marcela Mašláňová 8dcad9
 			fp = fopen(dirent->d_name, "r");
Marcela Mašláňová 8dcad9
 
Marcela Mašláňová 8dcad9
 			if (fp) {
Marcela Mašláňová 8dcad9
@@ -689,7 +682,7 @@
Marcela Mašláňová 8dcad9
 			    perr("Cannot open %.500s", dirent->d_name);
Marcela Mašláňová 8dcad9
 			    rc = EXIT_FAILURE;
Marcela Mašláňová 8dcad9
 			}
Marcela Mašláňová 8dcad9
-			setregid(effective_gid, real_gid);
Marcela Mašláňová 8dcad9
+			PRIV_END
Marcela Mašláňová 8dcad9
 		    }
Marcela Mašláňová 8dcad9
 		    break;
Marcela Mašláňová 8dcad9