From: Sage Weil Date: Mon, 7 Apr 2008 18:19:59 +0000 (-0700) Subject: kclient: validate uid/gid on setattr X-Git-Tag: v0.3~239^2~81^2^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=26725023ec3f8ab4de6ed1a3066641ff582cd1db;p=ceph.git kclient: validate uid/gid on setattr --- diff --git a/src/kernel/inode.c b/src/kernel/inode.c index eddd620bddd..c590dc8959f 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -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,