• Darrick J. Wong's avatar
    Merge tag 'make-attr-fork-permanent-5.20_2022-07-14' of... · 6d200bdc
    Darrick J. Wong authored
    Merge tag 'make-attr-fork-permanent-5.20_2022-07-14' of git://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.20-mergeB
    
    xfs: make attr forks permanent
    
    This series fixes a use-after-free bug that syzbot uncovered.  The UAF
    itself is a result of a race condition between getxattr and removexattr
    because callers to getxattr do not necessarily take any sort of locks
    before calling into the filesystem.
    
    Although the race condition itself can be fixed through clever use of a
    memory barrier, further consideration of the use cases of extended
    attributes shows that most files always have at least one attribute, so
    we might as well make them permanent.
    
    v2: Minor tweaks suggested by Dave, and convert some more macros to
    helper functions.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    
    * tag 'make-attr-fork-permanent-5.20_2022-07-14' of git://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
      xfs: replace inode fork size macros with functions
      xfs: replace XFS_IFORK_Q with a proper predicate function
      xfs: use XFS_IFORK_Q to determine the presence of an xattr fork
      xfs: make inode attribute forks a permanent part of struct xfs_inode
      xfs: convert XFS_IFORK_PTR to a static inline helper
    6d200bdc
xfs_inode_buf.c 20.9 KB