]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[PATCH] sys_mbind sanity checking
authorChris Wright <chrisw@sous-sol.org>
Fri, 17 Feb 2006 21:59:36 +0000 (13:59 -0800)
committerChris Wright <chrisw@sous-sol.org>
Wed, 1 Mar 2006 22:36:35 +0000 (14:36 -0800)
Make sure maxnodes is safe size before calculating nlongs in
get_nodes().

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[chrisw: fix units, pointed out by Andi]
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mm/mempolicy.c

index 72f402cc9c9af77f6d6c765c166e35d0bb4764ae..6e870ba707c7e1b514bde2c7b4020405dbfa91af 100644 (file)
@@ -524,6 +524,8 @@ static int get_nodes(nodemask_t *nodes, unsigned long __user *nmask,
        nodes_clear(*nodes);
        if (maxnode == 0 || !nmask)
                return 0;
+       if (maxnode > PAGE_SIZE*BITS_PER_BYTE)
+               return -EINVAL;
 
        nlongs = BITS_TO_LONGS(maxnode);
        if ((maxnode % BITS_PER_LONG) == 0)