aboutsummaryrefslogtreecommitdiffstats
path: root/community/at/0011-clear-nonjobs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/at/0011-clear-nonjobs.patch')
-rw-r--r--community/at/0011-clear-nonjobs.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/community/at/0011-clear-nonjobs.patch b/community/at/0011-clear-nonjobs.patch
new file mode 100644
index 00000000000..e684cc49ee0
--- /dev/null
+++ b/community/at/0011-clear-nonjobs.patch
@@ -0,0 +1,49 @@
+Patch-Source: https://src.fedoraproject.org/rpms/at/blob/f36/f/at-3.1.16-clear-nonjobs.patch (updated)
+--
+From c65246e094527163ee0b2003041ff6c942e14e47 Mon Sep 17 00:00:00 2001
+From: Tomas Mraz <tmraz@fedoraproject.org>
+Date: Sep 09 2015 12:07:23 +0000
+Subject: clear non-job files from at dir
+
+diff --git a/atd.c b/atd.c
+--- a/atd.c
++++ b/atd.c
+@@ -401,10 +401,22 @@ run_file(const char *filename, uid_t uid, gid_t gid)
+ sprintf(fmt, "#!/bin/sh\n# atrun uid=%%d gid=%%d\n# mail %%%ds %%d",
+ mailsize );
+
++ /* Unlink the file unless there was an error reading it (perhaps
++ * temporary).
++ * If the file has a bogus format there is no reason in trying
++ * to run it again and again.
++ */
+ if (fscanf(stream, fmt,
+- &nuid, &ngid, mailname, &send_mail) != 4)
+- pabort("File %.500s is in wrong format - aborting",
+- filename);
++ &nuid, &ngid, mailname, &send_mail) != 4) {
++ if (ferror(stream))
++ perr("Error reading the job file");
++
++ unlink(filename);
++ pabort("File %.500s is in wrong format - aborting",
++ filename);
++ }
++
++ unlink(filename);
+
+ if (mailname[0] == '-')
+ pabort("illegal mail name %.300s in job %8lu (%.300s)", mailname,
+@@ -414,12 +426,6 @@ run_file(const char *filename, uid_t uid, gid_t gid)
+ pabort("Job %8lu (%.500s) - userid %d does not match file uid %d",
+ jobno, filename, nuid, uid);
+
+- /* We are now committed to executing this script. Unlink the
+- * original.
+- */
+-
+- unlink(filename);
+-
+ fclose(stream);
+ if (chdir(ATSPOOL_DIR) < 0)
+ perr("Cannot chdir to " ATSPOOL_DIR);