Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Mar 2026 19:50:29 +0000
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 2353fa1aca55 - main - LinuxKPI: Fix simple_read_from_buffer for zero-size and off-the-end reads
Message-ID:  <69b9b085.3c19d.500e7505@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=2353fa1aca553883141a7b5d0aa54312a4610412

commit 2353fa1aca553883141a7b5d0aa54312a4610412
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-03-17 19:49:01 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-03-17 19:49:01 +0000

    LinuxKPI: Fix simple_read_from_buffer for zero-size and off-the-end reads
    
    I noticed that the buf_size < 0 check can never be true (it's a
    size_t) and decided to check for this condition by an alternate
    expression, and I also noticed that a read_size of 0 would incorrectly
    return -EFAULT.  Instead, return success for both of these cases as
    reading beyond the EOF of a normal file also returns EOF, not EINVAL.
    
    Reviewed by:    bz
    Sponsored by:   AFRL, DARPA
    Differential Revision:  https://reviews.freebsd.org/D55845
---
 sys/compat/linuxkpi/common/include/linux/fs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/fs.h b/sys/compat/linuxkpi/common/include/linux/fs.h
index 40e1b396fe86..7e28be070850 100644
--- a/sys/compat/linuxkpi/common/include/linux/fs.h
+++ b/sys/compat/linuxkpi/common/include/linux/fs.h
@@ -368,8 +368,8 @@ simple_read_from_buffer(void __user *dest, size_t read_size, loff_t *ppos,
 	size_t buf_remain = buf_size - *ppos;
 	ssize_t num_read;
 
-	if (buf_remain < 0 || buf_remain > buf_size)
-		return -EINVAL;
+	if (*ppos >= buf_size || read_size == 0)
+		return (0);
 
 	if (read_size > buf_remain)
 		read_size = buf_remain;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b9b085.3c19d.500e7505>