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

From: Levi Yun
Date: Wed Jan 04 2023 - 04:52:09 EST


__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@xxxxxxxxx>
---
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