Re: [PATCH 6.1 133/591] ocfs2: Fix use of slab data with sendpage

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

 



Noticing this patch only here rather than the original post, sorry.

On Sun, Jul 16, 2023 at 09:44:32PM +0200, Greg Kroah-Hartman wrote:
> From: David Howells <dhowells@xxxxxxxxxx>
> 

 ...

> [ Upstream commit 86d7bd6e66e9925f0f04a7bcf3c92c05fdfefb5a ]
> -	o2net_hand = kzalloc(sizeof(struct o2net_handshake), GFP_KERNEL);
> -	o2net_keep_req = kzalloc(sizeof(struct o2net_msg), GFP_KERNEL);
> -	o2net_keep_resp = kzalloc(sizeof(struct o2net_msg), GFP_KERNEL);
> -	if (!o2net_hand || !o2net_keep_req || !o2net_keep_resp)
> +	folio = folio_alloc(GFP_KERNEL | __GFP_ZERO, 0);
> +	if (!folio)
>  		goto out;
>  
> +	p = folio_address(folio);
> +	o2net_hand = p;
> +	p += sizeof(struct o2net_handshake);
> +	o2net_keep_req = p;
> +	p += sizeof(struct o2net_msg);
> +	o2net_keep_resp = p;

Do we care that we aren't validating sizes here?  The original code
allocates the structures by size.  This code grabs an order 0 folio and
assumes the total size of these structures is smaller than a page.  But
while we "know" today that the handshake messages have no payload,
`o2net_msg.buf` could theoretically be filled by more data.  What if
someone decided to change the code to put some payload in
`o2net_keep_resp.buf`?  Yes, we would hope they would think to add the
appropriate allocation.  But should we be validating this with some kind
of safety check?

Thanks,
Joel

-- 

"I almost ran over an angel
 He had a nice big fat cigar.
 'In a sense,' he said, 'You're alone here
 So if you jump, you'd best jump far.'"

			http://www.jlbec.org/
			jlbec@xxxxxxxxxxxx



[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