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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to