Message ID | 20230104095049.59043-1-ppbuk5246@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | memblock: Fix return sizeless candidate on __memblock_find_range_top_down. | expand |
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 >
> 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.
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.
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.
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; }
__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(-)