This is a note to let you know that I've just added the patch titled Revert "ext4: fix use-after-free in ext4_xattr_set_entry" to the 5.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: 1-3-revert-ext4-fix-use-after-free-in-ext4_xattr_set_entry.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable-owner@xxxxxxxxxxxxxxx Wed Apr 19 08:46:43 2023 From: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> Date: Wed, 19 Apr 2023 06:46:08 +0000 Subject: Revert "ext4: fix use-after-free in ext4_xattr_set_entry" To: stable@xxxxxxxxxxxxxxx Cc: tytso@xxxxxxx, adilger.kernel@xxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, joneslee@xxxxxxxxxx, Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> Message-ID: <20230419064610.1918038-2-tudor.ambarus@xxxxxxxxxx> From: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> This reverts commit bb8592efcf8ef2f62947745d3182ea05b5256a15 which is commit 67d7d8ad99beccd9fe92d585b87f1760dc9018e3 upstream. The order in which patches are queued to stable matters. This patch has a logical dependency on commit 310c097c2bdbea253d6ee4e064f3e65580ef93ac upstream, and failing to queue the latter results in a null-ptr-deref reported at the Link below. In order to avoid conflicts on stable, revert the commit just so that we can queue its prerequisite patch first and then queue the same after. Link: https://syzkaller.appspot.com/bug?extid=d5ebf56f3b1268136afd Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/ext4/xattr.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -2210,9 +2210,8 @@ int ext4_xattr_ibody_find(struct inode * struct ext4_inode *raw_inode; int error; - if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) + if (EXT4_I(inode)->i_extra_isize == 0) return 0; - raw_inode = ext4_raw_inode(&is->iloc); header = IHDR(inode, raw_inode); is->s.base = is->s.first = IFIRST(header); @@ -2240,9 +2239,8 @@ int ext4_xattr_ibody_inline_set(handle_t struct ext4_xattr_search *s = &is->s; int error; - if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) + if (EXT4_I(inode)->i_extra_isize == 0) return -ENOSPC; - error = ext4_xattr_set_entry(i, s, handle, inode, false /* is_block */); if (error) return error; Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are queue-5.4/3-3-ext4-fix-use-after-free-in-ext4_xattr_set_entry.patch queue-5.4/2-3-ext4-remove-duplicate-definition-of-ext4_xattr_ibody_inline_set.patch queue-5.4/1-3-revert-ext4-fix-use-after-free-in-ext4_xattr_set_entry.patch