Re: [PATCH 5.10] block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern

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

 



On Wed, May 04, 2022 at 08:12:07PM +0000, Nobel Barakat wrote:
> [ Upstream commit cc8f7fe1f5eab010191aa4570f27641876fa1267 ]
> 
> Add __GFP_ZERO flag for alloc_page in function bio_copy_kern to initialize
> the buffer of a bio.
> 
> Signed-off-by: Haimin Zhang <tcs.kernel@xxxxxxxxx>
> Reviewed-by: Chaitanya Kulkarni <kch@xxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> Link: https://lore.kernel.org/r/20220216084038.15635-1-tcs.kernel@xxxxxxxxx
> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
> [nobelbarakat: Backported to 5.10: Manually added flag] 
> Signed-off-by: Nobel Barakat <nobelbarakat@xxxxxxxxxx>
> ---
> This changes fixes a kernel info leak since it's possible for bio_copy_kern to
> copy unitialized memory into userspace. 
> 
> For the backport, I had to manually add the __GFP_ZERO
> flag since alloc_page on 5.10 uses a different parameter
> than on 5.15. On 5.10, alloc_page is called with q->bounce_gfp
> whereas on 5.15 it's called with GFP_NOIO.
> 
> Version 5.4 is also affected, and I intend to submit a backport
> there as well.
> 
>  block/blk-map.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/block/blk-map.c b/block/blk-map.c
> index 21630dccac62..ede73f4f7014 100644
> --- a/block/blk-map.c
> +++ b/block/blk-map.c
> @@ -488,7 +488,7 @@
>  		if (bytes > len)
>  			bytes = len;
>  
> -		page = alloc_page(q->bounce_gfp | gfp_mask);
> +		page = alloc_page(q->bounce_gfp | __GFP_ZERO | gfp_mask);
>  		if (!page)
>  			goto cleanup;
>  
> -- 
> 2.36.0.464.gb9c8b46e94-goog
> 

Both now queued up, thanks.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux