]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: validate uid/gid on setattr
authorSage Weil <sage@newdream.net>
Mon, 7 Apr 2008 18:19:59 +0000 (11:19 -0700)
committerSage Weil <sage@newdream.net>
Mon, 7 Apr 2008 18:20:25 +0000 (11:20 -0700)
src/kernel/inode.c

index eddd620bddda322c080e5f8db21e4157d165df37..c590dc8959f43152ae19c4f8c05b5c02c7879fda 100644 (file)
@@ -1080,13 +1080,17 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
        struct ceph_mds_request_head *reqh;
        int err;
 
+       err = inode_change_ok(inode, attr);
+       if (err != 0)
+               return err;
+
        /* gratuitous debug output */
         if (ia_valid & ATTR_UID)
                dout(10, "setattr: uid %d -> %d\n", inode->i_uid, attr->ia_uid);
         if (ia_valid & ATTR_GID)
                dout(10, "setattr: gid %d -> %d\n", inode->i_uid, attr->ia_uid);
         if (ia_valid & ATTR_MODE)
-               dout(10, "setattr: mode %d -> %d\n", inode->i_mode, 
+               dout(10, "setattr: mode %o -> %o\n", inode->i_mode, 
                     attr->ia_mode);
         if (ia_valid & ATTR_SIZE)
                dout(10, "setattr: size %lld -> %lld\n", inode->i_size,