diff options
Diffstat (limited to 'src/firejail/fs_home.c')
-rw-r--r-- | src/firejail/fs_home.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/firejail/fs_home.c b/src/firejail/fs_home.c index b44d09acc..a1a16841a 100644 --- a/src/firejail/fs_home.c +++ b/src/firejail/fs_home.c | |||
@@ -370,6 +370,21 @@ void fs_check_private_dir(void) { | |||
370 | } | 370 | } |
371 | } | 371 | } |
372 | 372 | ||
373 | // check new private working directory (--private-cwd= option) - exit if it fails | ||
374 | void fs_check_private_cwd(void) { | ||
375 | EUID_ASSERT(); | ||
376 | invalid_filename(cfg.cwd, 0); // no globbing | ||
377 | |||
378 | // Expand the working directory | ||
379 | cfg.cwd = expand_macros(cfg.cwd); | ||
380 | |||
381 | // realpath/is_dir not used because path may not exist outside of jail | ||
382 | if (!cfg.cwd) { | ||
383 | fprintf(stderr, "Error: invalid private working directory\n"); | ||
384 | exit(1); | ||
385 | } | ||
386 | } | ||
387 | |||
373 | //*********************************************************************************** | 388 | //*********************************************************************************** |
374 | // --private-home | 389 | // --private-home |
375 | //*********************************************************************************** | 390 | //*********************************************************************************** |