mmap: Fix remap_file_pages() regression

Message ID 20221025161222.2634030-1-Liam.Howlett@oracle.com
State New
Headers
Series mmap: Fix remap_file_pages() regression |

Commit Message

Liam R. Howlett Oct. 25, 2022, 4:12 p.m. UTC
  When using the VMA iterator, the final execution will set the variable
'next' to NULL which causes the function to fail out.  Restore the break
in the loop to exit the VMA iterator early without clearing NULL fixes
the issue.

Link: https://lore.kernel.org/lkml/29344.1666681759@jrobl/
Fixes: 763ecb035029 (mm: remove the vma linked list)
Reported-by: "J. R. Okajima" <hooanon05g@gmail.com>
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
---
 mm/mmap.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

J. R. Okajima Oct. 26, 2022, 12:24 a.m. UTC | #1
Liam Howlett:
> When using the VMA iterator, the final execution will set the variable
> 'next' to NULL which causes the function to fail out.  Restore the break
> in the loop to exit the VMA iterator early without clearing NULL fixes
> the issue.

Thaks, it passed the test.


J. R. Okajima
  

Patch

diff --git a/mm/mmap.c b/mm/mmap.c
index 22010e13f1a1..ff670e88b6d0 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2851,6 +2851,9 @@  SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
 			if (next->vm_flags != vma->vm_flags)
 				goto out;
 
+			if (start + size <= next->vm_end)
+				break;
+
 			prev = next;
 		}