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