[PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

Levi Yun posted 1 patch 2 years, 8 months ago
mm/memblock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.
Posted by Levi Yun 2 years, 8 months ago
__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(-)

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
Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.
Posted by Mike Rapoport 2 years, 8 months ago
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
> 

-- 
Sincerely yours,
Mike.
Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.
Posted by Yun Levi 2 years, 8 months ago
> 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.
Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.
Posted by Mike Rapoport 2 years, 8 months ago
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.
Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.
Posted by Yun Levi 2 years, 8 months ago
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.