NFS: Prevent integer overflow in nfs_scan_list()
Also ensure that nfs_inode ncommit and npages are large enough to represent
all possible values for the number of pages.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index ad90cbe..68f6bf1 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -425,6 +425,8 @@
req->wb_index, tag);
nfs_list_add_request(req, dst);
res++;
+ if (res == INT_MAX)
+ goto out;
}
}
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index a942054..750708c 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -158,7 +158,7 @@
spinlock_t req_lock;
struct radix_tree_root nfs_page_tree;
- unsigned int ncommit,
+ unsigned long ncommit,
npages;
/* Open contexts for shared mmap writes */