On Fri, Dec 11, 2015 at 4:14 PM, Andreas Gruenbacher <agruenba@xxxxxxxxxx> wrote: > Al, > > here is another fix for the same botched nfs commit. Could you please > also merge / fold that? Sorry for the mess. I've pushed a branch with those two fixes here: git://git.kernel.org/pub/scm/linux/kernel/git/agruen/linux xattr-wip2 This is your work.xattr branch with the fixes folded in and with your Signed-off-by tags removed from the two commits that have been modified: nfs: Move call to security_inode_listsecurity into nfs_listxattr xattr handlers: Simplify list operation Diff between work.xattr and xattr-wip2 below. Thanks, Andreas diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index e9db118..c57d133 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -6296,8 +6296,8 @@ nfs4_listxattr_nfs4_label(struct inode *inode, char *list, size_t list_len) int len = 0; if (nfs_server_capable(inode, NFS_CAP_SECURITY_LABEL)) { - len = security_inode_listsecurity(inode, list, len); - if (len > list_len) + len = security_inode_listsecurity(inode, list, list_len); + if (list_len && len > list_len) return -ERANGE; } return len; diff --git a/fs/xattr.c b/fs/xattr.c index bfd4a85..d7f5037 100644 --- a/fs/xattr.c +++ b/fs/xattr.c @@ -723,21 +723,23 @@ generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size) if (!buffer) { for_each_xattr_handler(handlers, handler) { - if (handler->list(dentry)) - size += strlen(handler->name) + 1; + if (!handler->name || + (handler->list && !handler->list(dentry))) + continue; + size += strlen(handler->name) + 1; } } else { char *buf = buffer; size_t len; for_each_xattr_handler(handlers, handler) { - if (!handler->list(dentry)) + if (!handler->name || + (handler->list && !handler->list(dentry))) continue; len = strlen(handler->name); if (len + 1 > buffer_size) return -ERANGE; - memcpy(buf, handler->name, len); - buf[len] = 0; + memcpy(buf, handler->name, len + 1); buf += len + 1; buffer_size -= len + 1; } -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html