Commit ba17101b authored by Eric Dumazet's avatar Eric Dumazet Committed by Linus Torvalds

[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: default avatarEric Dumazet <dada1@cosmosbay.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 690dbe1c
...@@ -443,7 +443,7 @@ asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask, ...@@ -443,7 +443,7 @@ asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
struct mempolicy *new; struct mempolicy *new;
DECLARE_BITMAP(nodes, MAX_NUMNODES); DECLARE_BITMAP(nodes, MAX_NUMNODES);
if (mode > MPOL_MAX) if (mode < 0 || mode > MPOL_MAX)
return -EINVAL; return -EINVAL;
err = get_nodes(nodes, nmask, maxnode, mode); err = get_nodes(nodes, nmask, maxnode, mode);
if (err) if (err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment