mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
xfs: fix a UAF problem in xattr repair
The xchk_setup_xattr_buf function can allocate a new value buffer, which
means that any reference to ab->value before the call could become a
dangling pointer. Fix this by moving an assignment to after the buffer
setup.
Cc: stable@vger.kernel.org # v6.10
Fixes: e47dcf113a ("xfs: repair extended attributes")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
2145f447b7
commit
5990fd7569
|
|
@ -333,7 +333,6 @@ xrep_xattr_salvage_remote_attr(
|
|||
.attr_filter = ent->flags & XFS_ATTR_NSP_ONDISK_MASK,
|
||||
.namelen = rentry->namelen,
|
||||
.name = rentry->name,
|
||||
.value = ab->value,
|
||||
.valuelen = be32_to_cpu(rentry->valuelen),
|
||||
};
|
||||
unsigned int namesize;
|
||||
|
|
@ -363,6 +362,7 @@ xrep_xattr_salvage_remote_attr(
|
|||
error = -EDEADLOCK;
|
||||
if (error)
|
||||
return error;
|
||||
args.value = ab->value;
|
||||
|
||||
/* Look up the remote value and stash it for reconstruction. */
|
||||
error = xfs_attr3_leaf_getvalue(leaf_bp, &args);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user