Commit 243fea13 authored by Olga Kornievskaia's avatar Olga Kornievskaia Committed by Anna Schumaker
Browse files

NFSv4.2: fix listxattr to return selinux security label



Currently, when NFS is queried for all the labels present on the
file via a command example "getfattr -d -m . /mnt/testfile", it
does not return the security label. Yet when asked specifically for
the label (getfattr -n security.selinux) it will be returned.
Include the security label when all attributes are queried.

Signed-off-by: default avatarOlga Kornievskaia <okorniev@redhat.com>
Signed-off-by: default avatarAnna Schumaker <anna.schumaker@oracle.com>
parent aba41e90
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -10858,7 +10858,7 @@ const struct nfs4_minor_version_ops *nfs_v4_minor_ops[] = {

static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t size)
{
	ssize_t error, error2, error3;
	ssize_t error, error2, error3, error4;
	size_t left = size;

	error = generic_listxattr(dentry, list, left);
@@ -10881,8 +10881,16 @@ static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t size)
	error3 = nfs4_listxattr_nfs4_user(d_inode(dentry), list, left);
	if (error3 < 0)
		return error3;
	if (list) {
		list += error3;
		left -= error3;
	}

	error4 = security_inode_listsecurity(d_inode(dentry), list, left);
	if (error4 < 0)
		return error4;

	error += error2 + error3;
	error += error2 + error3 + error4;
	if (size && error > size)
		return -ERANGE;
	return error;