Skip to content

Commit b36b701

Browse files
Pu Lehuiakpm00
authored andcommitted
mm: expose abnormal new_pte during move_ptes
When executing move_ptes, the new_pte must be NULL, otherwise it will be overwritten by the old_pte, and cause the abnormal new_pte to be leaked. In order to make this problem to be more explicit, let's add WARN_ON_ONCE when new_pte is not NULL. [[email protected]: s/WARN_ON_ONCE/VM_WARN_ON_ONCE/] Link: https://lkml.kernel.org/r/[email protected] Suggested-by: Oleg Nesterov <[email protected]> Signed-off-by: Pu Lehui <[email protected]> Reviewed-by: Lorenzo Stoakes <[email protected]> Cc: Jann Horn <[email protected]> Cc: Liam Howlett <[email protected]> Cc: "Masami Hiramatsu (Google)" <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Vlastimil Babka <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 2b12d06 commit b36b701

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

mm/mremap.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ static int move_ptes(struct pagetable_move_control *pmc,
237237

238238
for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE,
239239
new_pte++, new_addr += PAGE_SIZE) {
240+
VM_WARN_ON_ONCE(!pte_none(*new_pte));
241+
240242
if (pte_none(ptep_get(old_pte)))
241243
continue;
242244

0 commit comments

Comments
 (0)