| From f5f7ab168b9a60e12a4b8f2bb6fcc91321dc23c1 Mon Sep 17 00:00:00 2001 |
| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Date: Sun, 4 Oct 2020 19:04:22 +0100 |
| Subject: 9P: Cast to loff_t before multiplying |
| |
| From: Matthew Wilcox (Oracle) <willy@infradead.org> |
| |
| commit f5f7ab168b9a60e12a4b8f2bb6fcc91321dc23c1 upstream. |
| |
| On 32-bit systems, this multiplication will overflow for files larger |
| than 4GB. |
| |
| Link: http://lkml.kernel.org/r/20201004180428.14494-2-willy@infradead.org |
| Cc: stable@vger.kernel.org |
| Fixes: fb89b45cdfdc ("9P: introduction of a new cache=mmap model.") |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Signed-off-by: Dominique Martinet <asmadeus@codewreck.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/9p/vfs_file.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/fs/9p/vfs_file.c |
| +++ b/fs/9p/vfs_file.c |
| @@ -612,9 +612,9 @@ static void v9fs_mmap_vm_close(struct vm |
| struct writeback_control wbc = { |
| .nr_to_write = LONG_MAX, |
| .sync_mode = WB_SYNC_ALL, |
| - .range_start = vma->vm_pgoff * PAGE_SIZE, |
| + .range_start = (loff_t)vma->vm_pgoff * PAGE_SIZE, |
| /* absolute end, byte at end included */ |
| - .range_end = vma->vm_pgoff * PAGE_SIZE + |
| + .range_end = (loff_t)vma->vm_pgoff * PAGE_SIZE + |
| (vma->vm_end - vma->vm_start - 1), |
| }; |
| |