[PATCH] sys_set_mempolicy() doesnt check if mode < 0
A kernel BUG() is triggered by a call to set_mempolicy() with a negative first argument. This is because the mode is declared as an int, and the validity check doesnt check < 0 values. Alternatively, mode could be declared as unsigned int or unsigned long. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
690dbe1ced
Коммит
ba17101b41
|
@ -443,7 +443,7 @@ asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
|
|||
struct mempolicy *new;
|
||||
DECLARE_BITMAP(nodes, MAX_NUMNODES);
|
||||
|
||||
if (mode > MPOL_MAX)
|
||||
if (mode < 0 || mode > MPOL_MAX)
|
||||
return -EINVAL;
|
||||
err = get_nodes(nodes, nmask, maxnode, mode);
|
||||
if (err)
|
||||
|
|
Загрузка…
Ссылка в новой задаче