Patch "fuse: listxattr: verify xattr list" has been added to the 4.7-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
fuse: listxattr: verify xattr list
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
fuse-listxattr-verify-xattr-list.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
cb3ae6d25a5471be62bfe6ac1fccc0e91edeaba0Mon Sep 17 00:00:00 2001
From: Miklos Szeredi <[email protected]>
Date: Sat, 1 Oct 2016 07:32:32 +0200
Subject: fuse: listxattr: verify xattr list
From: Miklos Szeredi <[email protected]>
commit cb3ae6d25a5471be62bfe6ac1fccc0e91edeaba0 upstream.
Make sure userspace filesystem is returning a well formed list of xattr names (zero or more nonzero length, null terminated strings).
[Michael Theall: only verify in the nonzero size case]
--- fs/fuse/dir.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
fs/fuse/dir.c +19 -0
@@ -1800,6 +1800,23 @@ static ssize_t fuse_getxattr(struct dentreturn ret; } +static int fuse_verify_xattr_list (char *list,size_t size) +{ +size_t origsize = size; + +while (size) { +size_t thislen =strnlen (list, size); + +if (!thislen || thislen == size) +return -EIO ; + + size -= thislen +1 ; + list += thislen +1 ; + } + +return origsize; +} +static ssize_t fuse_listxattr (struct dentry *entry,char *list,size_t size) {struct inode *inode =d_inode (entry);
@@ -1835,6 +1852,8 @@ static ssize_t fuse_listxattr(struct den ret =fuse_simple_request (fc, &args);if (!ret && !size) ret = outarg.size; +if (ret >0 && size) + ret =fuse_verify_xattr_list (list, ret);if (ret == -ENOSYS ) { fc->no_listxattr =1 ; ret = -EOPNOTSUPP ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/fuse-listxattr-verify-xattr-list.patch queue-4.7/fuse-invalidate-dir-dentry-after-chmod.patch queue-4.7/fuse-fix-killing-sid-in-setattr.patch