mm/mempolicy: fix get_nodes out of bound access
[ Upstream commit 000eca5d044d1ee23b4ca311793cf3fc528da6c6 ] When user specified more nodes than supported, get_nodes will access nmask array out of bounds. Link: https://lkml.kernel.org/r/20220601093211.2970565-1-tianyu.li@arm.com Fixes: e130242dc351 ("mm: simplify compat numa syscalls") Signed-off-by: Tianyu Li <tianyu.li@arm.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
02b8b1b5a9
commit
d1b5113674
@ -1388,7 +1388,7 @@ static int get_nodes(nodemask_t *nodes, const unsigned long __user *nmask,
|
||||
unsigned long bits = min_t(unsigned long, maxnode, BITS_PER_LONG);
|
||||
unsigned long t;
|
||||
|
||||
if (get_bitmap(&t, &nmask[maxnode / BITS_PER_LONG], bits))
|
||||
if (get_bitmap(&t, &nmask[(maxnode - 1) / BITS_PER_LONG], bits))
|
||||
return -EFAULT;
|
||||
|
||||
if (maxnode - bits >= MAX_NUMNODES) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user