aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Bruno Nova <brunomb.nova@gmail.com>2015-11-16 21:11:09 +0000
committerLibravatar Bruno Nova <brunomb.nova@gmail.com>2015-11-16 21:11:09 +0000
commit94ddba4bd04d44683b93307400f31252bf9e29fc (patch)
treeb81cbca949f06e5faa2e1c382ffa78075090c450 /src
parentfirefox profile fixes (diff)
downloadfirejail-94ddba4bd04d44683b93307400f31252bf9e29fc.tar.gz
firejail-94ddba4bd04d44683b93307400f31252bf9e29fc.tar.zst
firejail-94ddba4bd04d44683b93307400f31252bf9e29fc.zip
Fix #144
When whitelisting symlinks, ensure the parent directories exist.
Diffstat (limited to 'src')
-rw-r--r--src/firejail/fs_whitelist.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/firejail/fs_whitelist.c b/src/firejail/fs_whitelist.c
index 3514c073d..3640cc711 100644
--- a/src/firejail/fs_whitelist.c
+++ b/src/firejail/fs_whitelist.c
@@ -387,6 +387,9 @@ void fs_whitelist(void) {
387 // if the link is already there, do not bother 387 // if the link is already there, do not bother
388 struct stat s; 388 struct stat s;
389 if (stat(entry->link, &s) != 0) { 389 if (stat(entry->link, &s) != 0) {
390 // create the path if necessary
391 mkpath(entry->link, 0755);
392
390 int rv = symlink(entry->data + 10, entry->link); 393 int rv = symlink(entry->data + 10, entry->link);
391 if (rv) 394 if (rv)
392 fprintf(stderr, "Warning cannot create symbolic link %s\n", entry->link); 395 fprintf(stderr, "Warning cannot create symbolic link %s\n", entry->link);