git: 48fddba63787 - stable/14 - devfs: Return early from sysctl_devname() if no input is given

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Sun, 06 Apr 2025 22:51:07 UTC
The branch stable/14 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=48fddba63787167f7cdc718d39c99efedb0790f4

commit 48fddba63787167f7cdc718d39c99efedb0790f4
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-03-20 01:34:10 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-04-06 13:54:03 +0000

    devfs: Return early from sysctl_devname() if no input is given
    
    Otherwise we end up searching for a device using an uninitialized key,
    tripping up KMSAN.
    
    MFC after:      2 weeks
    
    (cherry picked from commit 48d6b52add36cc09e7fb1fbec44ab66c0742f320)
---
 sys/fs/devfs/devfs_devs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/fs/devfs/devfs_devs.c b/sys/fs/devfs/devfs_devs.c
index db879efe803a..c6dcd4fc7646 100644
--- a/sys/fs/devfs/devfs_devs.c
+++ b/sys/fs/devfs/devfs_devs.c
@@ -86,6 +86,9 @@ sysctl_devname(SYSCTL_HANDLER_ARGS)
 	struct cdev_priv *cdp;
 	struct cdev *dev;
 
+	if (req->newptr == NULL)
+		return (EINVAL);
+
 #ifdef COMPAT_FREEBSD11
 	if (req->newlen == sizeof(ud_compat)) {
 		error = SYSCTL_IN(req, &ud_compat, sizeof(ud_compat));