fix
authorMiklos Szeredi <miklos@szeredi.hu>
Mon, 26 Jul 2004 19:38:45 +0000 (19:38 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Mon, 26 Jul 2004 19:38:45 +0000 (19:38 +0000)
ChangeLog
README
kernel/dir.c

index 01885b98a3216fd5fe0ce551776af560fb93f86b..e64b898ee137b0d56e0cc1edb98a153334e73b6d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-26  Miklos Szeredi <miklos@szeredi.hu>
+
+       * Check permissions in setattr if 'default_permissions' flag is
+       set.  Bug spotted by Damjan Lango
+
 2004-07-24  Miklos Szeredi <miklos@szeredi.hu>
 
        * 'large_read' mount option removed for 2.6 kernels, since the
diff --git a/README b/README
index 90d9c4abe092cfa0187a5eab66f27a74c952285b..f00e303f9ce2d4cc6b8ab25d0e9629b02496d4e4 100644 (file)
--- a/README
+++ b/README
@@ -20,22 +20,22 @@ and checking out the 'fuse' module.
 Installation
 ============
 
-See the file 'INSTALL'
+./configure
+make
+make install
 
-IMPORTANT NOTE: If you run a system with untrusted users, installing
-this program is not recommended, as it could be used to breach
-security (see the 'Security' section for explanation).
+Also see the file 'INSTALL'
 
 How To Use
 ==========
 
 FUSE is made up of three main parts:
 
- - A kernel filesystem module (kernel/fuse.o)
+ - A kernel filesystem module
 
- - A userspace library (lib/libfuse.a)
+ - A userspace library
 
- - A mount/unmount program (util/fusermount)
+ - A mount/unmount program
 
 
 Here's how to create your very own virtual filesystem in five easy
@@ -45,20 +45,15 @@ steps (after installing FUSE):
 
   2) Build the fusexmp program
 
-  3) run 'example/fusexmp /mnt/whatever -d'
+  3) run 'example/fusexmp /mnt/fuse -d'
 
-  4) ls -al /mnt/whatever
+  4) ls -al /mnt/fuse
 
   5) Be glad
 
 If it doesn't work out, please ask!  Also see the file 'include/fuse.h' for
 detailed documentation of the library interface.
 
-The fusermount program accepts a couple of additional options (see
-'fusermount -h').  You can add these options after a '--' like this:
-
-   example/fusexmp /mnt/whatever -d -- -l
-
 Security
 ========
 
index 7a8567cdce8244134cf69b183ead91034074cced..87dec6a43f28b423f9a38cbbd9a525b1406cb5f8 100644 (file)
@@ -762,6 +762,11 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr)
        int err;
        int is_truncate = 0;
        
+       if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
+               err = inode_change_ok(inode, attr);
+               if (err)
+                       return err;
+       }
 
        if (attr->ia_valid & ATTR_SIZE) {
                unsigned long limit;