Skip to content

Commit 38ce7c9

Browse files
compudjakpm00
authored andcommitted
mm/mempolicy: fix memory leak in set_mempolicy_home_node system call
When encountering any vma in the range with policy other than MPOL_BIND or MPOL_PREFERRED_MANY, an error is returned without issuing a mpol_put on the policy just allocated with mpol_dup(). This allows arbitrary users to leak kernel memory. Link: https://lkml.kernel.org/r/[email protected] Fixes: c6018b4 ("mm/mempolicy: add set_mempolicy_home_node syscall") Signed-off-by: Mathieu Desnoyers <[email protected]> Reviewed-by: Randy Dunlap <[email protected]> Reviewed-by: "Huang, Ying" <[email protected]> Reviewed-by: Aneesh Kumar K.V <[email protected]> Acked-by: Michal Hocko <[email protected]> Cc: Aneesh Kumar K.V <[email protected]> Cc: Dave Hansen <[email protected]> Cc: Feng Tang <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Andrea Arcangeli <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Mike Kravetz <[email protected]> Cc: Randy Dunlap <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Dan Williams <[email protected]> Cc: Huang Ying <[email protected]> Cc: <[email protected]> [5.17+] Signed-off-by: Andrew Morton <[email protected]>
1 parent 6f12be7 commit 38ce7c9

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

mm/mempolicy.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,6 +1540,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le
15401540
* the home node for vmas we already updated before.
15411541
*/
15421542
if (new->mode != MPOL_BIND && new->mode != MPOL_PREFERRED_MANY) {
1543+
mpol_put(new);
15431544
err = -EOPNOTSUPP;
15441545
break;
15451546
}

0 commit comments

Comments
 (0)