]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
netfs: Fix potential uninitialised var in netfs_extract_user_iter()
authorDavid Howells <dhowells@redhat.com>
Tue, 12 May 2026 12:33:45 +0000 (13:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 May 2026 11:03:36 +0000 (13:03 +0200)
commit 7e3d8db899d54af39fafb2eb3392b0cdae9973b5 upstream.

In netfs_extract_user_iter(), if it's given a zero-length iterator, it will
fall through the loop without setting ret, and so the error handling
behaviour will be undefined, depending on whether ret happens to be
negative.  The value of ret then propagates back up the callstack.

Fix this by presetting ret to 0.

Fixes: 85dd2c8ff368 ("netfs: Add a function to extract a UBUF or IOVEC into a BVEC iterator")
Closes: https://sashiko.dev/#/patchset/20260414082004.3756080-1-dhowells%40redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260512123404.719402-9-dhowells@redhat.com
cc: Paulo Alcantara <pc@manguebit.org>
cc: Matthew Wilcox <willy@infradead.org>
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/netfs/iterator.c

index ccd199aadeaca1b2aee99cc99ff609645ffc22ca..781ea403498e36834c1ccf7e237d1a740f2ed80d 100644 (file)
@@ -43,7 +43,7 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
        unsigned int max_pages;
        unsigned int npages = 0;
        unsigned int i;
-       ssize_t ret;
+       ssize_t ret = 0;
        size_t count = orig_len, offset, len;
        size_t bv_size, pg_size;