From 968dc2aba10e9b2c5c8d2975cde1337cf7586dea Mon Sep 17 00:00:00 2001 From: Fabian Würfl Date: Fri, 30 Jun 2017 11:47:46 +0200 Subject: Fix race condition when setting up /run/firejail files (#1013) --- src/firejail/util.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/firejail/util.c b/src/firejail/util.c index acbc19234..9ad7271ba 100644 --- a/src/firejail/util.c +++ b/src/firejail/util.c @@ -821,7 +821,9 @@ void create_empty_dir_as_root(const char *dir, mode_t mode) { if (arg_debug) printf("Creating empty %s directory\n", dir); /* coverity[toctou] */ - if (mkdir(dir, mode) == -1) + // don't fail if directory already exists. This can be the case in a race + // condition, when two jails launch at the same time. See #1013 + if (mkdir(dir, mode) == -1 && errno != EEXIST) errExit("mkdir"); if (set_perms(dir, 0, 0, mode)) errExit("set_perms"); -- cgit v1.2.3-54-g00ecf