Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jun 2013 18:43:27 +0000 (UTC)
From:      Guy Helmer <ghelmer@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r251625 - head/libexec/atrun
Message-ID:  <201306111843.r5BIhR0I047686@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306111843.r5BIhR0I047686>