summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2026-06-25 15:06:24 +0100
committerChristian Brauner <brauner@kernel.org>2026-07-01 15:26:28 +0200
commit70531f4f3a143f81baf549da7f59a24a9f87a65c (patch)
treea9196364cfa8d1d54546e409ba61866f5c8ecca6 /lib
parent55f4bb9373ca4a521f3b0119366db92715a39b81 (diff)
downloadlinux-70531f4f3a143f81baf549da7f59a24a9f87a65c.tar.gz
linux-70531f4f3a143f81baf549da7f59a24a9f87a65c.zip
iov_iter: Fix missing alloc fail check in iov_iter_extract_bvec_pages()
Fix iov_iter_extract_bvec_pages() to check if want_pages_array() fails and, if so, return -ENOMEM appropriately. Fixes: e4e535bff2bc ("iov_iter: don't require contiguous pages in iov_iter_extract_bvec_pages") Link: https://sashiko.dev/#/patchset/20260608145432.681865-1-dhowells%40redhat.com Signed-off-by: David Howells <dhowells@redhat.com> Link: https://patch.msgid.link/20260625140640.3116900-7-dhowells@redhat.com Reviewed-by: Christoph Hellwig <hch@lst.de> cc: Ming Lei <ming.lei@redhat.com> cc: Paulo Alcantara <pc@manguebit.org> cc: Matthew Wilcox <willy@infradead.org> cc: Christoph Hellwig <hch@infradead.org> cc: Jens Axboe <axboe@kernel.dk> cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/iov_iter.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 0f320b4e82a8..3dfad70328eb 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -1637,6 +1637,8 @@ static ssize_t iov_iter_extract_bvec_pages(struct iov_iter *i,
bi.bi_bvec_done = skip;
maxpages = want_pages_array(pages, maxsize, skip, maxpages);
+ if (!maxpages)
+ return -ENOMEM;
while (bi.bi_size && bi.bi_idx < i->nr_segs) {
struct bio_vec bv = bvec_iter_bvec(i->bvec, bi);