[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