From ddc9f0fdd56488061022550821d849e66e5b4297 Mon Sep 17 00:00:00 2001 From: netblue30 Date: Mon, 31 Oct 2016 21:17:29 -0400 Subject: fixed /run/firejail/mnt problem introduced recently --- src/firejail/preproc.c | 4 ++++ src/firejail/util.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/firejail/preproc.c b/src/firejail/preproc.c index 6784ff5ac..27e06b556 100644 --- a/src/firejail/preproc.c +++ b/src/firejail/preproc.c @@ -56,6 +56,10 @@ void preproc_build_firejail_dir(void) { create_empty_dir_as_root(RUN_FIREJAIL_APPIMAGE_DIR, 0755); } + if (stat(RUN_MNT_DIR, &s)) { + create_empty_dir_as_root(RUN_MNT_DIR, 0755); + } + create_empty_file_as_root(RUN_RO_FILE, S_IRUSR); create_empty_dir_as_root(RUN_RO_DIR, S_IRUSR); } diff --git a/src/firejail/util.c b/src/firejail/util.c index 4384c2b0b..8d3b9d3cd 100644 --- a/src/firejail/util.c +++ b/src/firejail/util.c @@ -698,8 +698,8 @@ void flush_stdin(void) { void create_empty_dir_as_root(const char *dir, mode_t mode) { assert(dir); - struct stat s; + if (stat(dir, &s)) { if (arg_debug) printf("Creating empty %s directory\n", dir); @@ -707,9 +707,10 @@ void create_empty_dir_as_root(const char *dir, mode_t mode) { errExit("mkdir"); if (chmod(dir, mode) == -1) errExit("chmod"); + if (chown(dir, 0, 0) == -1) + errExit("chown"); ASSERT_PERMS(dir, 0, 0, mode); } - } void create_empty_file_as_root(const char *fname, mode_t mode) { -- cgit v1.2.3-70-g09d2