Revert "ext4: fix use-after-free in ext4_xattr_set_entry"

This reverts commit bb8592efcf 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@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Tudor Ambarus
2023-04-19 06:46:08 +00:00
committed by Greg Kroah-Hartman
parent 81775ab858
commit 9400206d9d

View File

@@ -2193,9 +2193,8 @@ int ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
struct ext4_inode *raw_inode; struct ext4_inode *raw_inode;
int error; int error;
if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) if (EXT4_I(inode)->i_extra_isize == 0)
return 0; return 0;
raw_inode = ext4_raw_inode(&is->iloc); raw_inode = ext4_raw_inode(&is->iloc);
header = IHDR(inode, raw_inode); header = IHDR(inode, raw_inode);
is->s.base = is->s.first = IFIRST(header); is->s.base = is->s.first = IFIRST(header);
@@ -2223,9 +2222,8 @@ int ext4_xattr_ibody_inline_set(handle_t *handle, struct inode *inode,
struct ext4_xattr_search *s = &is->s; struct ext4_xattr_search *s = &is->s;
int error; int error;
if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) if (EXT4_I(inode)->i_extra_isize == 0)
return -ENOSPC; return -ENOSPC;
error = ext4_xattr_set_entry(i, s, handle, inode, false /* is_block */); error = ext4_xattr_set_entry(i, s, handle, inode, false /* is_block */);
if (error) if (error)
return error; return error;