[PATCH] Make sure interleave masks have at least one node set
Otherwise a bad mem policy system call can confuse the interleaving code into referencing undefined nodes. Originally reported by Doug Chapman I was told it's CVE-2005-3358 (one has to love these security people - they make everything sound important) Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
abe842eb98
Коммит
8f493d797b
|
@ -161,6 +161,10 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
|
|||
switch (mode) {
|
||||
case MPOL_INTERLEAVE:
|
||||
policy->v.nodes = *nodes;
|
||||
if (nodes_weight(*nodes) == 0) {
|
||||
kmem_cache_free(policy_cache, policy);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
break;
|
||||
case MPOL_PREFERRED:
|
||||
policy->v.preferred_node = first_node(*nodes);
|
||||
|
|
Загрузка…
Ссылка в новой задаче