Tomas Mraz 4e9976
diff -up at-3.1.18/atd.c.nit at-3.1.18/atd.c
Tomas Mraz 4e9976
--- at-3.1.18/atd.c.nit	2016-03-23 12:46:49.222277787 +0100
Tomas Mraz 4e9976
+++ at-3.1.18/atd.c	2016-03-23 12:47:50.521639804 +0100
Tomas Mraz 4e9976
@@ -196,6 +196,18 @@ myfork()
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
 #define fork myfork
Marcela Mašláňová 6d4186
 #endif
Marcela Mašláňová 6d4186
+#undef ATD_MAIL_PROGRAM
Marcela Mašláňová 6d4186
+#undef ATD_MAIL_NAME
Marcela Mašláňová 6d4186
+#if defined(SENDMAIL)
Marcela Mašláňová 6d4186
+#define ATD_MAIL_PROGRAM SENDMAIL
Marcela Mašláňová 6d4186
+#define ATD_MAIL_NAME    "sendmail"
Marcela Mašláňová 6d4186
+#elif  defined(MAILC)
Marcela Mašláňová 6d4186
+#define ATD_MAIL_PROGRAM MAILC
Marcela Mašláňová 6d4186
+#define ATD_MAIL_NAME    "mail"
Marcela Mašláňová 6d4186
+#elif  defined(MAILX)
Marcela Mašláňová 6d4186
+#define ATD_MAIL_PROGRAM MAILX
Marcela Mašláňová 6d4186
+#define ATD_MAIL_NAME    "mailx"
Marcela Mašláňová 6d4186
+#endif
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
 #ifdef WITH_SELINUX
Tomas Mraz 4e9976
 static int
Tomas Mraz 4e9976
@@ -339,6 +351,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 6d4186
 	free(newname);
Marcela Mašláňová 6d4186
 	return;
Marcela Mašláňová 6d4186
     }
Marcela Mašláňová 6d4186
+
Marcela Mašláňová 6d4186
+    (void) setsid(); /* own session for process */
Marcela Mašláňová 6d4186
+
Marcela Mašláňová 6d4186
     /* Let's see who we mail to.  Hopefully, we can read it from
Marcela Mašláňová 6d4186
      * the command file; if not, send it to the owner, or, failing that,
Marcela Mašláňová 6d4186
      * to root.
Tomas Mraz 4e9976
@@ -507,6 +522,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 6d4186
 	    if (setuid(uid) < 0)
Marcela Mašláňová 6d4186
 		perr("Cannot set user id");
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
+	    if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová 6d4186
+		perr("Cannot reset signal handler to default");
Marcela Mašláňová 6d4186
+
Marcela Mašláňová 6d4186
 	    chdir("/");
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
 	    execle("/bin/sh", "sh", (char *) NULL, nenvp);
Tomas Mraz 4e9976
@@ -572,6 +590,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová 6d4186
 	    if (setuid(uid) < 0)
Marcela Mašláňová 6d4186
 		perr("Cannot set user id");
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
+	    if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová 6d4186
+		perr("Cannot reset signal handler to default");
Marcela Mašláňová 6d4186
+
Marcela Mašláňová 6d4186
 	    chdir ("/");
Marcela Mašláňová 6d4186
 
Marcela Mašláňová 6d4186
 #if defined(SENDMAIL)
Tomas Mraz 4e9976
@@ -699,6 +720,7 @@ run_loop()
Marcela Mašláňová 6d4186
 		 * Let's remove the lockfile and reschedule.
Marcela Mašláňová 6d4186
 		 */
Marcela Mašláňová 6d4186
 		strncpy(lock_name, dirent->d_name, sizeof(lock_name));
Marcela Mašláňová 6d4186
+		lock_name[sizeof(lock_name)-1] = '\0';
Marcela Mašláňová 6d4186
 		lock_name[0] = '=';
Marcela Mašláňová 6d4186
 		unlink(lock_name);
Marcela Mašláňová 6d4186
 		next_job = now;
Tomas Mraz 4e9976
@@ -733,6 +755,7 @@ run_loop()
Marcela Mašláňová 6d4186
 	    run_batch++;
Marcela Mašláňová 6d4186
 	    if (strcmp(batch_name, dirent->d_name) > 0) {
Marcela Mašláňová 6d4186
 		strncpy(batch_name, dirent->d_name, sizeof(batch_name));
Marcela Mašláňová 6d4186
+		batch_name[sizeof(batch_name)-1] = '\0';
Marcela Mašláňová 6d4186
 		batch_uid = buf.st_uid;
Marcela Mašláňová 6d4186
 		batch_gid = buf.st_gid;
Marcela Mašláňová 6d4186
 		batch_queue = queue;
Tomas Mraz 4e9976
diff -up at-3.1.18/at.1.in.nit at-3.1.18/at.1.in
Tomas Mraz 4e9976
--- at-3.1.18/at.1.in.nit	2015-12-06 16:45:10.000000000 +0100
Tomas Mraz 4e9976
+++ at-3.1.18/at.1.in	2016-03-23 12:46:49.226277876 +0100
Tomas Mraz 4e9976
@@ -210,7 +210,7 @@ queue for
Tomas Mraz 4e9976
 .BR batch .
Tomas Mraz 4e9976
 Queues with higher letters run with increased niceness.  The special
Tomas Mraz 4e9976
 queue "=" is reserved for jobs which are currently running.
Tomas Mraz 4e9976
-.P
Tomas Mraz 4e9976
+
Tomas Mraz 4e9976
 If a job is submitted to a queue designated with an uppercase letter, the
Tomas Mraz 4e9976
 job is treated as if it were submitted to batch at the time of the job.
Tomas Mraz 4e9976
 Once the time is reached, the batch processing rules with respect to load