Commit daf9f884 authored by Allison Henderson's avatar Allison Henderson Committed by Darrick J. Wong
Browse files

xfs: don't return XFS_ATTR_PARENT attributes via listxattr



Parent pointers are internal filesystem metadata.  They're not intended
to be directly visible to userspace, so filter them out of
xfs_xattr_put_listent so that they don't appear in listxattr.

Signed-off-by: default avatarAllison Henderson <allison.henderson@oracle.com>
Inspired-by: default avatarAndrey Albershteyn <aalbersh@redhat.com>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
[djwong: change this to XFS_ATTR_PRIVATE_NSP_MASK per fsverity patchset]
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 1c12949e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -726,6 +726,9 @@ struct xfs_attr3_leafblock {
					 XFS_ATTR_SECURE | \
					 XFS_ATTR_PARENT)

/* Private attr namespaces not exposed to userspace */
#define XFS_ATTR_PRIVATE_NSP_MASK	(XFS_ATTR_PARENT)

#define XFS_ATTR_ONDISK_MASK	(XFS_ATTR_NSP_ONDISK_MASK | \
				 XFS_ATTR_LOCAL | \
				 XFS_ATTR_INCOMPLETE)
+4 −0
Original line number Diff line number Diff line
@@ -229,6 +229,10 @@ xfs_xattr_put_listent(

	ASSERT(context->count >= 0);

	/* Don't expose private xattr namespaces. */
	if (flags & XFS_ATTR_PRIVATE_NSP_MASK)
		return;

	if (flags & XFS_ATTR_ROOT) {
#ifdef CONFIG_XFS_POSIX_ACL
		if (namelen == SGI_ACL_FILE_SIZE &&