aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Tomi Leppänen <tomi.leppanen@jolla.com>2021-02-22 09:59:55 +0200
committerLibravatar Tomi Leppänen <tomi.leppanen@jolla.com>2021-02-22 10:01:51 +0200
commit89ba89bacf51eee6284397f4d01ff8759bddebe7 (patch)
treee4a69a98a70e4f939d950e98c7d7357fa1d473ab /src
parentAdd missing linefeeds in stderr logging (diff)
downloadfirejail-89ba89bacf51eee6284397f4d01ff8759bddebe7.tar.gz
firejail-89ba89bacf51eee6284397f4d01ff8759bddebe7.tar.zst
firejail-89ba89bacf51eee6284397f4d01ff8759bddebe7.zip
Add checks to fs_private_dir_mount
Check that the directory exists before attempting to mount it. Signed-off-by: Tomi Leppänen <tomi.leppanen@jolla.com>
Diffstat (limited to 'src')
-rw-r--r--src/firejail/fs_etc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/firejail/fs_etc.c b/src/firejail/fs_etc.c
index 60008f442..b9ed81db3 100644
--- a/src/firejail/fs_etc.c
+++ b/src/firejail/fs_etc.c
@@ -188,6 +188,17 @@ void fs_private_dir_copy(const char *private_dir, const char *private_run_dir, c
188} 188}
189 189
190void fs_private_dir_mount(const char *private_dir, const char *private_run_dir) { 190void fs_private_dir_mount(const char *private_dir, const char *private_run_dir) {
191 assert(private_dir);
192 assert(private_run_dir);
193
194 // nothing to do if directory does not exist
195 struct stat s;
196 if (stat(private_dir, &s) == -1) {
197 if (arg_debug)
198 printf("Cannot find %s\n", private_dir);
199 return;
200 }
201
191 if (arg_debug) 202 if (arg_debug)
192 printf("Mount-bind %s on top of %s\n", private_run_dir, private_dir); 203 printf("Mount-bind %s on top of %s\n", private_run_dir, private_dir);
193 if (mount(private_run_dir, private_dir, NULL, MS_BIND|MS_REC, NULL) < 0) 204 if (mount(private_run_dir, private_dir, NULL, MS_BIND|MS_REC, NULL) < 0)