Marcela Mašláňová 92956e
diff -up at-3.1.13/at.1.in.nit at-3.1.13/at.1.in
Marcela Mašláňová 92956e
--- at-3.1.13/at.1.in.nit	2011-06-25 14:43:14.000000000 +0200
Marcela Mašláňová 92956e
+++ at-3.1.13/at.1.in	2011-07-28 13:04:41.398174737 +0200
Marcela Mašláňová 92956e
@@ -126,7 +126,7 @@ and to run a job at 1am tomorrow, you wo
Marcela Mašláňová 92956e
 .B at 1am tomorrow.
Marcela Mašláňová 92956e
 .PP
Marcela Mašláňová 92956e
 The definition of the time specification can be found in
Marcela Mašláňová 92956e
-.IR @prefix@/share/doc/at/timespec .
Marcela Mašláňová 92956e
+.IR @prefix@/share/doc/at-@VERSION@/timespec .
Marcela Mašláňová 92956e
 .PP
Marcela Mašláňová 92956e
 For both
Marcela Mašláňová 92956e
 .BR at " and " batch ,
Marcela Mašláňová 92956e
@@ -204,7 +204,7 @@ queue for
Marcela Mašláňová 92956e
 .BR batch .
Marcela Mašláňová 92956e
 Queues with higher letters run with increased niceness.  The special
Marcela Mašláňová 92956e
 queue "=" is reserved for jobs which are currently running.
Marcela Mašláňová 92956e
-.P
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
 If a job is submitted to a queue designated with an uppercase letter, the
Marcela Mašláňová 92956e
 job is treated as if it were submitted to batch at the time of the job.
Marcela Mašláňová 92956e
 Once the time is reached, the batch processing rules with respect to load
Marcela Mašláňová 92956e
@@ -248,7 +248,7 @@ is an alias for
Marcela Mašláňová 92956e
 .TP
Marcela Mašláňová 92956e
 .B \-v
Marcela Mašláňová 92956e
 Shows the time the job will be executed before reading the job.
Marcela Mašláňová 92956e
-.P
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
 Times displayed will be in the format "Thu Feb 20 14:50:00 1997".
Marcela Mašláňová 92956e
 .TP
Marcela Mašláňová 92956e
 .B
Marcela Mašláňová 92956e
diff -up at-3.1.13/atd.c.nit at-3.1.13/atd.c
Marcela Mašláňová 92956e
--- at-3.1.13/atd.c.nit	2011-06-25 14:43:14.000000000 +0200
Marcela Mašláňová 92956e
+++ at-3.1.13/atd.c	2011-07-28 13:01:31.577967025 +0200
Marcela Mašláňová 92956e
@@ -83,6 +83,9 @@
Marcela Mašláňová 92956e
 #include "getloadavg.h"
Marcela Mašláňová 92956e
 #endif
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
+#ifndef LOG_ATD
Marcela Mašláňová 92956e
+#define LOG_ATD        LOG_DAEMON
Marcela Mašláňová 92956e
+#endif
Marcela Mašláňová 92956e
 /* Macros */
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
 #define BATCH_INTERVAL_DEFAULT 60
Marcela Mašláňová 92956e
@@ -194,6 +197,18 @@ myfork()
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
 #define fork myfork
Marcela Mašláňová 92956e
 #endif
Marcela Mašláňová 92956e
+#undef ATD_MAIL_PROGRAM
Marcela Mašláňová 92956e
+#undef ATD_MAIL_NAME
Marcela Mašláňová 92956e
+#if defined(SENDMAIL)
Marcela Mašláňová 92956e
+#define ATD_MAIL_PROGRAM SENDMAIL
Marcela Mašláňová 92956e
+#define ATD_MAIL_NAME    "sendmail"
Marcela Mašláňová 92956e
+#elif  defined(MAILC)
Marcela Mašláňová 92956e
+#define ATD_MAIL_PROGRAM MAILC
Marcela Mašláňová 92956e
+#define ATD_MAIL_NAME    "mail"
Marcela Mašláňová 92956e
+#elif  defined(MAILX)
Marcela Mašláňová 92956e
+#define ATD_MAIL_PROGRAM MAILX
Marcela Mašláňová 92956e
+#define ATD_MAIL_NAME    "mailx"
Marcela Mašláňová 92956e
+#endif
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
 static void
Marcela Mašláňová 92956e
 run_file(const char *filename, uid_t uid, gid_t gid)
Marcela Mašláňová 92956e
@@ -271,6 +286,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 92956e
 	free(newname);
Marcela Mašláňová 92956e
 	return;
Marcela Mašláňová 92956e
     }
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
+    (void) setsid(); //own session for process
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
     /* Let's see who we mail to.  Hopefully, we can read it from
Marcela Mašláňová 92956e
      * the command file; if not, send it to the owner, or, failing that,
Marcela Mašláňová 92956e
      * to root.
Marcela Mašláňová 92956e
@@ -433,6 +451,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 92956e
 	    if (setuid(uid) < 0)
Marcela Mašláňová 92956e
 		perr("Cannot set user id");
Marcela Mašláňová 92956e
 
Marcela Mašláňová 5ace57
+	    if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová 5ace57
+		perr("Cannot reset signal handler to default");
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
 	    chdir("/");
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
 	    if (execle("/bin/sh", "sh", (char *) NULL, nenvp) != 0)
Marcela Mašláňová 92956e
@@ -501,6 +522,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 92956e
 	    if (setuid(uid) < 0)
Marcela Mašláňová 92956e
 		perr("Cannot set user id");
Marcela Mašláňová 92956e
 
Marcela Mašláňová 5ace57
+	    if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová 5ace57
+		perr("Cannot reset signal handler to default");
Marcela Mašláňová 92956e
+
Marcela Mašláňová 92956e
 	    chdir ("/");
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
 #if defined(SENDMAIL)
Marcela Mašláňová 92956e
@@ -615,6 +639,7 @@ run_loop()
Marcela Mašláňová 92956e
 		 * Let's remove the lockfile and reschedule.
Marcela Mašláňová 92956e
 		 */
Marcela Mašláňová 92956e
 		strncpy(lock_name, dirent->d_name, sizeof(lock_name));
Marcela Mašláňová 5ace57
+		lock_name[sizeof(lock_name)-1] = '\0';
Marcela Mašláňová 92956e
 		lock_name[0] = '=';
Marcela Mašláňová 92956e
 		unlink(lock_name);
Marcela Mašláňová 92956e
 		next_job = now;
Marcela Mašláňová 92956e
@@ -649,6 +674,7 @@ run_loop()
Marcela Mašláňová 92956e
 	    run_batch++;
Marcela Mašláňová 92956e
 	    if (strcmp(batch_name, dirent->d_name) > 0) {
Marcela Mašláňová 92956e
 		strncpy(batch_name, dirent->d_name, sizeof(batch_name));
Marcela Mašláňová 5ace57
+		batch_name[sizeof(batch_name)-1] = '\0';
Marcela Mašláňová 92956e
 		batch_uid = buf.st_uid;
Marcela Mašláňová 92956e
 		batch_gid = buf.st_gid;
Marcela Mašláňová 92956e
 		batch_queue = queue;
Marcela Mašláňová 92956e
@@ -723,11 +749,7 @@ main(int argc, char *argv[])
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
     RELINQUISH_PRIVS_ROOT(daemon_uid, daemon_gid)
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
-#ifndef LOG_CRON
Marcela Mašláňová 92956e
-#define LOG_CRON	LOG_DAEMON
Marcela Mašláňová 92956e
-#endif
Marcela Mašláňová 92956e
-
Marcela Mašláňová 92956e
-    openlog("atd", LOG_PID, LOG_CRON);
Marcela Mašláňová 92956e
+    openlog("atd", LOG_PID, LOG_ATD);
Marcela Mašláňová 92956e
 
Marcela Mašláňová 92956e
     opterr = 0;
Marcela Mašláňová 92956e
     errno = 0;