From be1e3b02bfca3fdb836c91b71dce26fce3eaa094 Mon Sep 17 00:00:00 2001 From: smitsohu Date: Mon, 15 Oct 2018 18:09:49 +0200 Subject: tentative fix: automatically mount libdir in chroot - #2176 --- src/firejail/fs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/firejail/fs.c b/src/firejail/fs.c index b958df81a..9f0dac4e0 100644 --- a/src/firejail/fs.c +++ b/src/firejail/fs.c @@ -1379,6 +1379,16 @@ void fs_chroot(const char *rootdir) { ASSERT_PERMS(rundir, 0, 0, 0755); free(rundir); + // create /run/firejail/lib directory in chroot and mount it + if (asprintf(&rundir, "%s%s", rootdir, RUN_FIREJAIL_LIB_DIR) == -1) + errExit("asprintf"); + if (mkdir(rundir, 0755) == -1 && errno != EEXIST) + errExit("mkdir"); + ASSERT_PERMS(rundir, 0, 0, 0755); + if (mount(RUN_FIREJAIL_LIB_DIR, rundir, NULL, MS_BIND|MS_REC, NULL) < 0) + errExit("mount bind"); + free(rundir); + // create /run/firejail/mnt directory in chroot and mount the current one if (asprintf(&rundir, "%s%s", rootdir, RUN_MNT_DIR) == -1) errExit("asprintf"); -- cgit v1.2.3-54-g00ecf