2023-01-04 10:04:25

by levi.yun

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

__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 <[email protected]>
---
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


2023-01-04 10:33:21

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

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 <[email protected]>
> ---
> 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.

2023-01-04 10:46:39

by levi.yun

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

> 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.

2023-01-04 11:22:19

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

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.

2023-01-04 21:40:33

by levi.yun

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] memblock: Fix return sizeless candidate on __memblock_find_range_top_down.

I've got possessed by something... Sorry to make noise again :) Thanks!

On Wed, Jan 4, 2023 at 7:46 PM Mike Rapoport <[email protected]> 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.