memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

Message ID 20230104095049.59043-1-ppbuk5246@gmail.com
State New
Headers
Series memblock: Fix return sizeless candidate on __memblock_find_range_top_down. |

Commit Message

Levi Yun Jan. 4, 2023, 9:50 a.m. UTC
  __memblock_find_range_top_down can return start address of free region
which sizeless then user speicified.
To prevent the above case, add size check on candidate free region.

Signed-off-by: Levi Yun <ppbuk5246@gmail.com>
---
 mm/memblock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Mike Rapoport Jan. 4, 2023, 10:24 a.m. UTC | #1
On Wed, Jan 04, 2023 at 06:50:49PM +0900, Levi Yun wrote:
> __memblock_find_range_top_down can return start address of free region
> which sizeless then user speicified.
> To prevent the above case, add size check on candidate free region.

Did you see an actual issue or it's solely based on code inspection?
 
> Signed-off-by: Levi Yun <ppbuk5246@gmail.com>
> ---
>  mm/memblock.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 511d4783dcf1..710e2ef8d67d 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -262,7 +262,7 @@ __memblock_find_range_top_down(phys_addr_t start, phys_addr_t end,
>  			continue;
>  
>  		cand = round_down(this_end - size, align);
> -		if (cand >= this_start)
> +		if (cand >= this_start && this_end - cand >= size)
>  			return cand;
>  	}
>  
> -- 
> 2.35.1
>
  
Levi Yun Jan. 4, 2023, 10:33 a.m. UTC | #2
> Did you see an actual issue or it's solely based on code inspection?

Based on code inspection. I haven't seen the actual issue yet :)

Thanks.

--
Sincerely,
Levi.
  
Mike Rapoport Jan. 4, 2023, 10:46 a.m. UTC | #3
On Wed, Jan 04, 2023 at 07:33:25PM +0900, Yun Levi wrote:
> > Did you see an actual issue or it's solely based on code inspection?
> 
> Based on code inspection. I haven't seen the actual issue yet :)

I don't see a problem there. Do you have an example how this could happen?
 
> Thanks.
> 
> --
> Sincerely,
> Levi.
  
Levi Yun Jan. 4, 2023, 9:13 p.m. UTC | #4
I've got possessed by something... Sorry to make noise again :) Thanks!

On Wed, Jan 4, 2023 at 7:46 PM Mike Rapoport <rppt@kernel.org> wrote:
>
> On Wed, Jan 04, 2023 at 07:33:25PM +0900, Yun Levi wrote:
> > > Did you see an actual issue or it's solely based on code inspection?
> >
> > Based on code inspection. I haven't seen the actual issue yet :)
>
> I don't see a problem there. Do you have an example how this could happen?
>
> > Thanks.
> >
> > --
> > Sincerely,
> > Levi.
>
> --
> Sincerely yours,
> Mike.
  

Patch

diff --git a/mm/memblock.c b/mm/memblock.c
index 511d4783dcf1..710e2ef8d67d 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -262,7 +262,7 @@  __memblock_find_range_top_down(phys_addr_t start, phys_addr_t end,
 			continue;
 
 		cand = round_down(this_end - size, align);
-		if (cand >= this_start)
+		if (cand >= this_start && this_end - cand >= size)
 			return cand;
 	}