diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2001-12-20 15:38:05 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2001-12-20 15:38:05 +0000 |
commit | fe25def3344095825738deba119e1400b8e2315f (patch) | |
tree | a277304923d54e0495558c1e4e6720c2c114d78d /kernel/file.c | |
parent | 2e50d4376f3124a87d5723ae66c09fa71c7ecf88 (diff) | |
download | libfuse-fe25def3344095825738deba119e1400b8e2315f.tar.gz |
permission checking implemented
Diffstat (limited to 'kernel/file.c')
-rw-r--r-- | kernel/file.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/file.c b/kernel/file.c index b7cb2f4..0622e51 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -17,6 +17,14 @@ static int fuse_open(struct inode *inode, struct file *file) struct fuse_out out = FUSE_OUT_INIT; struct fuse_open_in inarg; + /* If opening the root node, no lookup has been performed on + it, so the attributes must be refreshed */ + if(inode->i_ino == FUSE_ROOT_INO) { + int err = fuse_getattr(inode); + if(err) + return err; + } + memset(&inarg, 0, sizeof(inarg)); inarg.flags = file->f_flags & ~O_EXCL; |