Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fuse: limit xattr returned size

Don't let userspace filesystem give bogus values for the size of xattr and
xattr list.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>

+2 -2
+2 -2
fs/fuse/xattr.c
··· 79 79 } 80 80 ret = fuse_simple_request(fc, &args); 81 81 if (!ret && !size) 82 - ret = outarg.size; 82 + ret = min_t(ssize_t, outarg.size, XATTR_SIZE_MAX); 83 83 if (ret == -ENOSYS) { 84 84 fc->no_getxattr = 1; 85 85 ret = -EOPNOTSUPP; ··· 138 138 } 139 139 ret = fuse_simple_request(fc, &args); 140 140 if (!ret && !size) 141 - ret = outarg.size; 141 + ret = min_t(ssize_t, outarg.size, XATTR_LIST_MAX); 142 142 if (ret > 0 && size) 143 143 ret = fuse_verify_xattr_list(list, ret); 144 144 if (ret == -ENOSYS) {