Re: [PATCH 2/2] xfs: fix partially uninitialized structure in xfs_reflink_remap_extent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 12, 2020 at 06:10:24PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> 
> In the reflink extent remap function, it turns out that uirec (the block
> mapping corresponding only to the part of the passed-in mapping that got
> unmapped) was not fully initialized.  Specifically, br_state was not
> being copied from the passed-in struct to the uirec.  This could lead to
> unpredictable results such as the reflinked mapping being marked
> unwritten in the destination file.
> 
> Fixes: 862bb360ef569 ("xfs: reflink extents from one file to another")
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> ---

Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>

>  fs/xfs/xfs_reflink.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> 
> diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
> index b0ce04ffd3cd..107bf2a2f344 100644
> --- a/fs/xfs/xfs_reflink.c
> +++ b/fs/xfs/xfs_reflink.c
> @@ -1051,6 +1051,7 @@ xfs_reflink_remap_extent(
>  		uirec.br_startblock = irec->br_startblock + rlen;
>  		uirec.br_startoff = irec->br_startoff + rlen;
>  		uirec.br_blockcount = unmap_len - rlen;
> +		uirec.br_state = irec->br_state;
>  		unmap_len = rlen;
>  
>  		/* If this isn't a real mapping, we're done. */
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux