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-head
mailing list