From nobody Mon Oct 05 22:19:29 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hzDMW0w10z6vVxJ for ; Mon, 05 Oct 2026 22:19:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hzDMV75KMz3H0g for ; Mon, 05 Oct 2026 22:19:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791238775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcQ+hkUe2WMtJHtATbKDJjeMkPdEqhIo3IqXfHFpwpo=; b=O8G2+7E0wdiQVo7OWQVK7hy7wtUdnLGWJL6JlmYo6xMihkBke3+5gd8oCImDu7OCPoVnHz 84QbloY3bx6jG9MUZg079BXeYHmRx7Q4WKwwf+nToibZI3Ypcdtk9yp5fksZYIAyOl59Xy 0h6MSPjzumABuAopAZDRlJmM5i2UtmJoFyKGh8L8B96SC5Mt5JYBsaNOe/7SWm056+Lm6V PdbqPL+3//VIP6EnkpAD6LvC0XE5w/yClObtUyZprIqbrnGnP7MT+lwd57U0SzlHy9XrBK pCxcIbftkhjyR/+mMJ9toWvn4Ri5DGO/KEbeDT27G7Bi918pTYYCX/aiBAlVpg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791238775; b=WXWL9gapwbYrl7InvRdtEdvgRyXZl6PYo0PcWdbOrVdA+Y+wrtaqYmYf19lhQEPLCqpl0A rYy6Bro8LLH465QqW4r8twcmkB6c9adR6Qd99XfSImb2oVcYU9UrIgEpMBMTqaEnIX3wCE wX0mnErcXX3qTNBi40qsUUEYyJX1fR1b1C6NXMXl8KM+0cFpVdwK2Nqtg84AR+g6z2LRYJ cbVT0KB1Rz0pMSMqv+Nj1FgaeQMw0Bpgy1kqXbaLWCfyc3yptxkIVF9a16S2QPy3DIluY4 2drPK1eROw6A8C1Yhm2CEdG/AI9wQIzLh9WoEMSt0B65Vl6W+4KVZqQLtCZxEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791238775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcQ+hkUe2WMtJHtATbKDJjeMkPdEqhIo3IqXfHFpwpo=; b=bbh1dDxvFOCs87dnwkevT4hOnNIv9BcdxKM1nrUoy8tBStdRLLhdRtYhbg5UtA3XCXxljG rWOAAUC/SZELtahnqKpovNbjTN7znzGRexIbn2Gmnr7u97TXANAdOdSEcHNJj9Vbu/QyQr 5i/I+FQaEwTzkzhXh02USUXpolYu7M6UlszUKz3Gb8uVrT/xmAnIN9DaPwjQsQEMg70HIM 6haOUMOouL0M3KbA+Lb3QUDpiP2/qHfqYUMI6+VoZOd5qdW3LXjbSqrWuVmQQvr4H3r8fv fa2JjXw9Y4oq2YqQDnirgKtWna9LWFCxkNYY9Z75mcyUFYJDFau+KYi3lvfjKQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hzDMV5SBczgSq for ; Mon, 05 Oct 2026 22:19:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 224c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 05 Oct 2026 22:19:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: 850d4562928e - main - cdevsw: add D_NONPASSABLE flag List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 850d4562928ea9308dd9188d5014bcabe7049938 Auto-Submitted: auto-generated Date: Mon, 05 Oct 2026 22:19:29 +0000 Message-Id: <6ac42271.224c8.2994af20@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=850d4562928ea9308dd9188d5014bcabe7049938 commit 850d4562928ea9308dd9188d5014bcabe7049938 Author: Konstantin Belousov AuthorDate: 2026-10-04 00:50:23 +0000 Commit: Konstantin Belousov CommitDate: 2026-10-05 21:56:53 +0000 cdevsw: add D_NONPASSABLE flag to make the opened device files non-passable. Reviewed by: markj Tested by: pho (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D60285 --- sys/fs/devfs/devfs_vnops.c | 27 +++++++++++++++++++++++++-- sys/sys/conf.h | 2 ++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index d594b1584757..cd6cd1959d6b 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -67,6 +67,7 @@ static struct vop_vector devfs_vnodeops; static struct vop_vector devfs_specops; static const struct fileops devfs_ops_f; +static const struct fileops devfs_ops_nonpassable_f; #include #include @@ -1344,8 +1345,11 @@ devfs_open(struct vop_open_args *ap) if (fp == NULL) return (error); #endif - if (fp->f_ops == &badfileops) - finit(fp, fp->f_flag, DTYPE_VNODE, dev, &devfs_ops_f); + if (fp->f_ops == &badfileops) { + finit(fp, fp->f_flag, DTYPE_VNODE, dev, + (dsw->d_flags & D_NONPASSABLE) == 0 ? &devfs_ops_f : + &devfs_ops_nonpassable_f); + } return (error); } @@ -2096,6 +2100,25 @@ static const struct fileops devfs_ops_f = { .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE }; +static const struct fileops devfs_ops_nonpassable_f = { + .fo_read = devfs_read_f, + .fo_write = devfs_write_f, + .fo_truncate = devfs_truncate_f, + .fo_ioctl = devfs_ioctl_f, + .fo_poll = devfs_poll_f, + .fo_kqfilter = devfs_kqfilter_f, + .fo_stat = devfs_stat_f, + .fo_close = devfs_close_f, + .fo_chmod = vn_chmod, + .fo_chown = vn_chown, + .fo_sendfile = vn_sendfile, + .fo_seek = vn_seek, + .fo_fill_kinfo = vn_fill_kinfo, + .fo_mmap = devfs_mmap_f, + .fo_cmp = devfs_cmp_f, + .fo_flags = DFLAG_SEEKABLE +}; + /* Vops for non-CHR vnodes in /dev. */ static struct vop_vector devfs_vnodeops = { .vop_default = &default_vnodeops, diff --git a/sys/sys/conf.h b/sys/sys/conf.h index a6713ee91190..bf626298c05f 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -177,6 +177,8 @@ typedef int dumper_hdr_t(struct dumperinfo *di, struct kerneldumpheader *kdh); #define D_GIANTOK 0x00200000 /* suppress warning about using Giant */ #define D_NEEDGIANT 0x00400000 /* driver want Giant */ #define D_NEEDMINOR 0x00800000 /* driver uses clone_create() */ +#define D_NONPASSABLE 0x01000000 /* file is not passable with + SCM_RIGHTS or fork(2) */ /* * Version numbers.