From: Alex Elder Date: Mon, 23 Jan 2012 21:49:27 +0000 (-0600) Subject: ceph: don't null-terminate xattr values X-Git-Tag: firefly_0821_release~3680^2~2292^2~231 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b829c1954dbeb42a1277a8cb05943050ee70be94;p=firefly-linux-kernel-4.4.55.git ceph: don't null-terminate xattr values For some reason, ceph_setxattr() allocates an extra byte in which a '\0' is stored past the end of an extended attribute value. This is not needed, and is potentially misleading, so get rid of it. Signed-off-by: Alex Elder Signed-off-by: Sage Weil --- diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index a76f697303d9..bfff735091f5 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c @@ -730,11 +730,9 @@ int ceph_setxattr(struct dentry *dentry, const char *name, goto out; if (val_len) { - newval = kmalloc(val_len + 1, GFP_NOFS); + newval = kmemdup(value, val_len, GFP_NOFS); if (!newval) goto out; - memcpy(newval, value, val_len); - newval[val_len] = '\0'; } xattr = kmalloc(sizeof(struct ceph_inode_xattr), GFP_NOFS);