]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs: clear kernel only flags in XFS_IOC_ATTRMULTI_BY_HANDLE
authorChristoph Hellwig <hch@lst.de>
Sat, 14 Mar 2020 02:59:30 +0000 (22:59 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Sat, 14 Mar 2020 02:59:30 +0000 (22:59 -0400)
Source kernel commit: 953aa9d136f53e226448dbd801a905c28f8071bf

Don't allow passing arbitrary flags as they change behavior including
memory allocation that the call stack is not prepared for.

Fixes: ddbca70cc45c ("xfs: allocate xattr buffer on demand")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_attr.h

index 94badfa1743e372ef9b34125e83a0ddb6ae181ca..91c2cb14276e2c9620a6a28b824011ffc8160e76 100644 (file)
@@ -26,7 +26,7 @@ struct xfs_attr_list_context;
  *========================================================================*/
 
 
-#define ATTR_DONTFOLLOW        0x0001  /* -- unused, from IRIX -- */
+#define ATTR_DONTFOLLOW        0x0001  /* -- ignored, from IRIX -- */
 #define ATTR_ROOT      0x0002  /* use attrs in root (trusted) namespace */
 #define ATTR_TRUST     0x0004  /* -- unused, from IRIX -- */
 #define ATTR_SECURE    0x0008  /* use attrs in security namespace */
@@ -37,7 +37,10 @@ struct xfs_attr_list_context;
 #define ATTR_KERNOVAL  0x2000  /* [kernel] get attr size only, not value */
 
 #define ATTR_INCOMPLETE        0x4000  /* [kernel] return INCOMPLETE attr keys */
-#define ATTR_ALLOC     0x8000  /* allocate xattr buffer on demand */
+#define ATTR_ALLOC     0x8000  /* [kernel] allocate xattr buffer on demand */
+
+#define ATTR_KERNEL_FLAGS \
+       (ATTR_KERNOTIME | ATTR_KERNOVAL | ATTR_INCOMPLETE | ATTR_ALLOC)
 
 #define XFS_ATTR_FLAGS \
        { ATTR_DONTFOLLOW,      "DONTFOLLOW" }, \