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>