From 26725023ec3f8ab4de6ed1a3066641ff582cd1db Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 7 Apr 2008 11:19:59 -0700 Subject: [PATCH] kclient: validate uid/gid on setattr --- src/kernel/inode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/kernel/inode.c b/src/kernel/inode.c index eddd620bddda3..c590dc8959f43 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, -- 2.39.5