]> git.proxmox.com Git - pve-cluster.git/commitdiff
fix file permission check in chmod
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 14 Apr 2017 15:07:46 +0000 (17:07 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 18 Apr 2017 12:10:49 +0000 (14:10 +0200)
since mode_t has additional bits set for file mode (see stat(2) ),
we have to ignore those, or we never can set the mode

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
data/src/pmxcfs.c

index 0f0993785757b2c991af5fce0923b5195f02aeae..8fa3bccad5bf65f095104d2d75654c2b5e576120 100644 (file)
@@ -197,7 +197,8 @@ static int cfs_fuse_chmod(const char *path, mode_t mode)
                allowed_mode |= (S_IRGRP);
 
        // allow only setting our supported modes (0600 for priv, 0640 for rest)
-       if (mode == allowed_mode)
+       // mode has additional bits set, which we ignore; see stat(2)
+       if ((mode & ALLPERMS) == allowed_mode)
                ret = 0;
 
        cfs_debug("leave cfs_fuse_chmod %s (%d) mode: %o", path, ret, (int)mode);