svn commit: r251625 - head/libexec/atrun

Guy Helmer ghelmer at FreeBSD.org
Tue Jun 11 18:43:27 UTC 2013


Author: ghelmer
Date: Tue Jun 11 18:43:27 2013
New Revision: 251625
URL: http://svnweb.freebsd.org/changeset/base/251625

Log:
  Prevent races running the queue by serializing access to the
  queue directory.
  
  PR:		bin/113239

Modified:
  head/libexec/atrun/atrun.c

Modified: head/libexec/atrun/atrun.c
==============================================================================
--- head/libexec/atrun/atrun.c	Tue Jun 11 18:43:25 2013	(r251624)
+++ head/libexec/atrun/atrun.c	Tue Jun 11 18:43:27 2013	(r251625)
@@ -31,6 +31,7 @@ static const char rcsid[] =
 /* System Headers */
 
 #include <sys/fcntl.h>
+#include <sys/file.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #ifdef __FreeBSD__
@@ -521,6 +522,9 @@ main(int argc, char *argv[])
     if ((spool = opendir(".")) == NULL)
 	perr("cannot read %s", ATJOB_DIR);
 
+    if (flock(dirfd(spool), LOCK_EX) == -1)
+	perr("cannot lock %s", ATJOB_DIR);
+
     now = time(NULL);
     run_batch = 0;
     batch_uid = (uid_t) -1;


More information about the svn-src-all mailing list