From nobody Mon May 18 09:27:39 2026 X-Original-To: dev-commits-src-branches@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 4gJssS0VZTz6f3Jd for ; Mon, 18 May 2026 09:27:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gJssR6mZqz40kV for ; Mon, 18 May 2026 09:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096460; 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=60m77MrJjB0VgBoDRNP7DhBNN7eyEIRuES9xccsFHQw=; b=W5604TB0p3anIgZtq6WvUftx+8zaN39sNYHe6mQe7otPwSR7GfGt2Fqtq2rmMkPkMMNYB8 27Vagq9z+1VWH8SSkWdbiUxbr/WXbJPXiodjiTO7Fz1h2M1nolfkpGlqHm1vmqKHeZhQ1x WiDRgIaxJMJnwNswPm1fLYRMIOt5Y9DQ64ttAvnntlQFlzvMbsp3ZIVnPwfZ0Q8BHq02/5 tVpwS0bmYiK48bthehaEGiG2t0v7pWiDnUCz7XNLELU+75MI63L/utXvrKPfP/AzQbFECu L/S2J9f/cseP0sbMyQvHWhSvZmMxKakBKHJSQf/0tFccskG3mjzEbvM9derzwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779096460; a=rsa-sha256; cv=none; b=vX76xkgAJz3JYRAX7i1XMYTuKOuSKfuVHyj8ZKr59aNqCTvGPAXA3iKfGdajZJKewARQ9T /0miI6hBoFJ3D1PINPyU2JpPkWjOhyFpgaar1TLrO7fymACpioAtiG869XmgV+4X5YlDBZ wV09PAsYsbAKXSb/yk4KN8jqizoni/4HeaG4AEjC84KIn7avC4yJZPZ65Vqku7iD/LGEHZ 7F7wUqWk+h+h0ZcSVhccLjuHacxdejJH2xj9IEW/oOXcp/r2xCzMJ6ne0rnmoENU8JjQ6u lR5rCrmeBp8EmMUKw2vfnHbp1PMf41zgUF7VJW0ZwC4lAzUrrBtE3WC1JygwqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096460; 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=60m77MrJjB0VgBoDRNP7DhBNN7eyEIRuES9xccsFHQw=; b=POkl4+rYKCA2mGfaE5FXxyzti8uRimcGIBJqKQLwYaROr3jW0f2Idv6dfTwg6KTfaCE5oD tCWaAw/Nhaba5qxc31YR8wwKYDhO0skmkTt8LRfwfpDzrqn3a+WTdTLJFbJGD7F9b4aNdi DlXXekW35qZC6xdTSO7nF6r4sY2c2e3veHA7Z2qcZE0rmnp8BA1bdU/lfxX4PBjHweUMoG vCPCSuLyZ4q8kprgW5Auj7D8876PHLky0a4ItjQfMu2RlLTsoL8RJQu1520bEaC68e9M+y G0YqkzACRJRyyeVzysavjCv2mRFQKzM0tBJeCYzNotO0TFnYT/gfKY8QMbhIyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gJssR5xbvz6Y8 for ; Mon, 18 May 2026 09:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d52a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 09:27:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 1987f9cb625b - stable/14 - bhyve.8: Fix formatting of -G's "w" prefix List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1987f9cb625b6fe560df902131f88c899a8e4d88 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 09:27:39 +0000 Message-Id: <6a0adb8b.3d52a.2bb6e554@gitrepo.freebsd.org> The branch stable/14 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=1987f9cb625b6fe560df902131f88c899a8e4d88 commit 1987f9cb625b6fe560df902131f88c899a8e4d88 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-15 09:48:43 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 09:26:13 +0000 bhyve.8: Fix formatting of -G's "w" prefix "w" is a command modifier, not an argument. Use Cm. Fixes: 2cdff9918e79 byhve: add option to specify IP address for gdb MFC after: 3 days (cherry picked from commit 7abddbb3cdeeff0d4d991aee52e92382e847e8a2) --- usr.sbin/bhyve/bhyve.8 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 124948de3761..c8adfb6a8947 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 30, 2025 +.Dd May 15, 2026 .Dt BHYVE 8 .Os .Sh NAME @@ -58,7 +58,7 @@ .Oo .Sm off .Fl G\~ -.Oo Ar w Oc +.Oo Cm w Oc .Oo Ar bind_address Cm \&: Oc .Ar port .Sm on @@ -175,7 +175,7 @@ If a is specified, bhyve reads the file and adds the file content as fw_cfg data. .It Fl G Xo .Sm off -.Oo Ar w Oc +.Oo Cm w Oc .Oo Ar bind_address Cm \&: Oc .Ar port .Sm on @@ -189,7 +189,7 @@ and to listen for debugger connections. Only a single debugger may be attached to the debug server at a time. If the option begins with -.Sq w , +.Cm w , .Nm will pause execution at the first instruction waiting for a debugger to attach. .It Fl H From nobody Mon May 18 09:27:41 2026 X-Original-To: dev-commits-src-branches@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 4gJssT5Pgjz6f3P7 for ; Mon, 18 May 2026 09:27:41 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gJssT446Wz4111 for ; Mon, 18 May 2026 09:27:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096461; 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=diExRZcbrgmghA6sgni1+Jw1H/Jd7qoRO1iijg+xRUY=; b=h3hpL1oEXSLsGXoQBLC1g10w0pEOSiax1Iu0a+6qtzxd+ggUR3sMF/mWINJ6yXUtHKZ5ts Q3HjoUguNjASPWKyRkeusAmRoxr1w1BlCAliPWqDmcplq9QX2So1rUTRpWWz3o+OSqx6mo Xwei1Msdksiw21xOEDzYRq0cG/J+ciLrjTDYdXJtf0z4piP2x/r0OIhpfsKmfXmQSRs2qr bTHD3xiFdwHfOBOIuAPepCg6ctDTIDsYiVZiSAskbIlkBsL42qvOY+Lr+pfuXECP35isqE 16hBXfEqFKIcIYI+CzzuA1CAHvWxwI3rnh0kuGdrhH8r3jAdyFLSI0TLUk9GFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779096461; a=rsa-sha256; cv=none; b=gZX/bAWJKYQaJDYeL4kSYRSSMhjQqiOhayb8+ofTUfpGBnOfWaZ3OSyXVr777ic5V/NBo3 uRfJy9TxZRvax3tAQg0NIjsquOmWKWLkNgr33/GBOL3jCGl7rOBf19W33chMMSpZgIAuPS 8+AS6gtWHpbPgozF9x6hzQLE3Ak7Qx4aS7bBIJN0ONyFXdPrlRy6QUQ8vixDfOJwn0yAfu gcv+tKxSTPCqX9Sln1bZoop34538lHcJ8Ld3v+y/efGRLS/TXThgeucBYV9aPGEx+DS8n5 UdYA81OZBdbXN073MA7PfXOcuoWqYwqaZSy36kz4Du93DjGw1uxOfK1uXjyWAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096461; 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=diExRZcbrgmghA6sgni1+Jw1H/Jd7qoRO1iijg+xRUY=; b=kdrN9oBCZd8I0VKXLkAlFcAe6sM402aAjNEzycxqUez//30UTm7zNVvNiw5zY4N3orjl8E uuuaCdmitKzFBK/zXq9pbL6CbLv5v5K9nRD7IvpygRYMfhVaXx6MbqUXpoVHeite4n3rGl +AgAdYwRx0y/pL4NyGS0P5KMTb5KMzDYNkDXNjD0JZ1EgT5TQNSJZkNMol391jmHIO/L1h ZNlzJOgcZLlg8ejTSXeQPQlJtAC0wpzn3rf58H4YJvBVaT+iZeOApZgJ69dgaLU4F5GjbL zo9SUM/Ji6w8u0slqkhTbbOY4xHzhOgLGwSLEbJjTNN/b+tPtAQkZ6Q33ws6cw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gJssT2SbLz5wG for ; Mon, 18 May 2026 09:27:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cfc8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 09:27:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: b5cd337f69bf - stable/15 - p9fs.4: Cross-reference mount(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b5cd337f69bf8033994b5f5736e13bfaab47c028 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 09:27:41 +0000 Message-Id: <6a0adb8d.3cfc8.7ef05805@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=b5cd337f69bf8033994b5f5736e13bfaab47c028 commit b5cd337f69bf8033994b5f5736e13bfaab47c028 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-15 10:11:29 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 09:23:20 +0000 p9fs.4: Cross-reference mount(8) MFC after: 3 days (cherry picked from commit ae0fd05a333b0ab9e6f020b07a0e483e6f85538a) --- sbin/mount/mount.8 | 3 ++- share/man/man4/p9fs.4 | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/sbin/mount/mount.8 b/sbin/mount/mount.8 index 877001727a8f..b651fb53bf2c 100644 --- a/sbin/mount/mount.8 +++ b/sbin/mount/mount.8 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 28, 2025 +.Dd May 15, 2026 .Dt MOUNT 8 .Os .Sh NAME @@ -584,6 +584,7 @@ support for a particular file system might be provided either on a static .Xr ext2fs 4 , .Xr ffs 4 , .Xr mac 4 , +.Xr p9fs 4 , .Xr procfs 4 , .Xr tarfs 4 , .Xr tmpfs 4 , diff --git a/share/man/man4/p9fs.4 b/share/man/man4/p9fs.4 index a49053d461d4..c50720b6ebc8 100644 --- a/share/man/man4/p9fs.4 +++ b/share/man/man4/p9fs.4 @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 7, 2024 +.Dd May 15, 2026 .Dt P9FS 4 .Os .Sh NAME @@ -104,7 +104,8 @@ or .Pa /var/tmp have the expected semantics. .Sh SEE ALSO -.Xr fstab 5 +.Xr fstab 5 , +.Xr mount 8 .Sh HISTORY The 9P protocol first appeared in the Plan 9 operating system. More recently, the protocol has been widely used with virtual machines From nobody Mon May 18 09:27:42 2026 X-Original-To: dev-commits-src-branches@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 4gJssV55Fwz6f3dC for ; Mon, 18 May 2026 09:27:42 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gJssV3hyQz413j for ; Mon, 18 May 2026 09:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096462; 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=oIZQl98ikWKiErE3yf3kYwz6mHvGuEdC/b9bHGWuAN4=; b=IsS3QzjPhkmexaoJZ38YD2HcmQPdusgnMnOMb2oGoCyQdjqZKw89ve3bKEdncQC5etcoPp xillSd1ZvCmOggvoZ9iD+aB8UG5hEKOcaB3xL+s/Afc+XKm+/DMS7VKcwkWrkYfpXjdrpM kE0LCSvcFG18K7rD5RuUiQJyzQ+9ODHvCKsFkOfP8gGtq4gMV4QhLxmsudBKOMX5C/0m0c Rxm8ZcAa2cvDhJ8jHKRzoLbRMLqje9FnOrFUScC/VFL1i1ooV0eiOxR4a9BpW7RGD0eg39 N5XIAUrbCyCXIKIoGV2cQK0w9lxvLDDDopAJxIC5wI0iIhcJ3/3KpVceiJZDmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779096462; a=rsa-sha256; cv=none; b=Al7FNmYOP/dm2vhWK1ldZFCFTgvyGXMr2pY0MDjSJEzPm8ruQPqg+pHtdn0IGSWAB9aYJZ d0wE6dhJOJJn80EZeBk85gizJnIpbuUj+TJcD7zpOSepzmccD6aC1fsgFd6kM515Bwv/CV AeZ+ruZezhS2Kp/sa7fsI/zT4h+e9vPdiIxAFCCc/0V8l0iVMxHjOpNg/1CtAyLG36AY3n JEKJOqgFy17+KDvYB8o82LIzZL4rqIW760d701zqDpCi6Ilf54UEr7AgPKi0CzYUz0V48i 5oXlXqmybcyZ5ZlJqjYbm4gFpU5i1p2SMr+Qh2ieq0V9SoE1ePRmH0SAJl0dbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779096462; 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=oIZQl98ikWKiErE3yf3kYwz6mHvGuEdC/b9bHGWuAN4=; b=i0rSXHMudEpRDYytZqkH6iuxrlkchXgNMZaAHmlLZyUhig3Ja8JZys3M8ijIxwtBg0H5tZ neHmteuA7511eLdzH9fOG1tRQ/R/bUmXiaPFiqB7+iuJheidT1d5CeKreNzWmZSRid7N3T GplcYxQxt8xlx8zIQY+NA9fI9CKFzGjMidI4d7hU1RhYnlUcjuQOUelI39iCdaCPI6iqU9 Tds+E6Jln8h3Qmx/3btjezYyqUb5TFj3V7AHKVHky1sJ15QRYbRDR4tSd+4VYTK8veEN4c nsRw4eYCAlI9OwzwYzpgRvOiPrpWe6bIMkJMNY43l9iCFyVIJenzo+GEYED28A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gJssV3Dvhz6Jy for ; Mon, 18 May 2026 09:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3aed6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 09:27:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: eb4d18601783 - stable/15 - bhyve.8: Fix formatting of -G's "w" prefix List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: eb4d18601783b969c55b42773d33078671f994c1 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 09:27:42 +0000 Message-Id: <6a0adb8e.3aed6.6efb796@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=eb4d18601783b969c55b42773d33078671f994c1 commit eb4d18601783b969c55b42773d33078671f994c1 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-15 09:48:43 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 09:25:43 +0000 bhyve.8: Fix formatting of -G's "w" prefix "w" is a command modifier, not an argument. Use Cm. Fixes: 2cdff9918e79 byhve: add option to specify IP address for gdb MFC after: 3 days (cherry picked from commit 7abddbb3cdeeff0d4d991aee52e92382e847e8a2) --- usr.sbin/bhyve/bhyve.8 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index d0237bad19a8..4efa936f437e 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 5, 2026 +.Dd May 15, 2026 .Dt BHYVE 8 .Os .Sh NAME @@ -58,7 +58,7 @@ .Oo .Sm off .Fl G\~ -.Oo Ar w Oc +.Oo Cm w Oc .Oo Ar bind_address Cm \&: Oc .Ar port .Sm on @@ -179,7 +179,7 @@ If a is specified, bhyve reads the file and adds the file content as fw_cfg data. .It Fl G Xo .Sm off -.Oo Ar w Oc +.Oo Cm w Oc .Oo Ar bind_address Cm \&: Oc .Ar port .Sm on @@ -193,7 +193,7 @@ and to listen for debugger connections. Only a single debugger may be attached to the debug server at a time. If the option begins with -.Sq w , +.Cm w , .Nm will pause execution at the first instruction waiting for a debugger to attach. .It Fl H From nobody Mon May 18 17:01:27 2026 X-Original-To: dev-commits-src-branches@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 4gK3x36Wkzz6ffSN for ; Mon, 18 May 2026 17:01:27 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gK3x35ptkz41jt for ; Mon, 18 May 2026 17:01:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779123687; 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=3aglUOj73JP45cEEOnHe59jYssy6l1ikm+a4AFNcvOE=; b=msUCMCDBnuy4KZ/ahfxl7B8HE1txa71PyvKsIcp8qakg2qlTgreoDrwpnc8WTcFF+h8KE4 QXGtf3QXRHwrI3T46omP0EIc9EHjSqUl5dNrtUU4RjEaLWNYNtT7P5nJno5ZJaW/hujKDa ijODYUgK/86ThwCoHrvtqJoOIvMLeaDa35Iddn2QcN9FqDdfc0Y4kWhbHHkscTVr+cDab8 tgK4Z+Iq6QxAsutfXjoaQbdDROy9z+DqNaPN7az9/lA4aYfIfpFVbYow7BhJWDWg/OwPm/ ewRJHsqDF3e9t4r6ZjBlNbxIDPRR8rECUyMQNmRJkt9wHyb4ze64kKE1NoXU1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779123687; a=rsa-sha256; cv=none; b=nAWjT1+JQ0NtiKTB9jFsnGAi7rXoqsABcSX6nT5qxqugCrUnOSctJrNbLSTVJS+Qz2UTot wRYKtq9tERsVhLZWirY2vl9WFTZe4lfUxL57MmMIg7+nCbwFBgHyvpZhxG0RjF31vIQhEo k0eyqoSzYu96fPotFiGzEKnRNZYOoCm9U04yOkBAvUYAAgyHNEETbUAQq2npxE+R53H8+t vcwbkUoLZzXpKQN2wInZ7/SVpo+WBfV08hnyEodsxeCnapcb7rbMzcPNl41VC7xS7bLWVU oWVpf7viaXuZDmlK14TWSrNJ2KnA2ucx+3QXI9Oxo4ZZe70VQSEb5xa2WKhfiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779123687; 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=3aglUOj73JP45cEEOnHe59jYssy6l1ikm+a4AFNcvOE=; b=vP5RJn9MCSQdvuhiFB0haLzs5isiuX0bHxSdrOOP5RaJ8//KHcqKzxyEBuutBc2ThR63Um PiUsma+o0YHlFVJbP8k8/5jw3xU4zJ6md17KyfAFyw+cYW7PRL4u88B+5PBtGQQ8YRgic9 4mPE63vmBWgdxwHWRR8jPauMIN12AraJ0ggz1R3M1Jd87FnHkZVVv76WZbN3p+Jr26o5Hu NUOwed205B0qEm7NbDaVnLK3aj9xl0pYeRW76l3DcCUMmQtQyULIp8ctI7GKrPgWg6Jg5M dMVOvnMkkInwsPMEtBe4eS2R8qy5THztwjoU+KyMyHyDh3bqYCzpSst8MVWEWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gK3x35CMRzd0R for ; Mon, 18 May 2026 17:01:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1df34 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 17:01:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c391efcf28b4 - stable/15 - u3g: Add Telit LM960A18 LTE modem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c391efcf28b4759497411306fd90ca180731c469 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 17:01:27 +0000 Message-Id: <6a0b45e7.1df34.38f29c60@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c391efcf28b4759497411306fd90ca180731c469 commit c391efcf28b4759497411306fd90ca180731c469 Author: Ed Maste AuthorDate: 2026-05-12 19:52:16 +0000 Commit: Ed Maste CommitDate: 2026-05-18 17:01:11 +0000 u3g: Add Telit LM960A18 LTE modem The patch in the PR failed to apply, so I manually applied the same changes. PR: 295231 Submitted by: Mike Tancsa Reviewed by: emaste (cherry picked from commit eacf4f50bfb19aa0278db5e8982d73c6d77ca24c) --- sys/dev/usb/serial/u3g.c | 2 ++ sys/dev/usb/usbdevs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/dev/usb/serial/u3g.c b/sys/dev/usb/serial/u3g.c index 0fc774d83ee1..6e3d9395359b 100644 --- a/sys/dev/usb/serial/u3g.c +++ b/sys/dev/usb/serial/u3g.c @@ -624,6 +624,8 @@ static const STRUCT_USB_HOST_ID u3g_devs[] = { U3G_DEV(TCTMOBILE, X080S, U3GINIT_TCT), U3G_DEV(TELIT, UC864E, 0), U3G_DEV(TELIT, UC864G, 0), + U3G_DEV(TELIT, LM960, 0), + U3G_DEV(TELIT, LM960_ECM, 0), U3G_DEV(TLAYTECH, TEU800, 0), U3G_DEV(TOSHIBA, G450, 0), U3G_DEV(TOSHIBA, HSDPA, 0), diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index e8eee7f330c5..28d6e84e723c 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -4794,6 +4794,8 @@ product TELEX MIC1 0x0001 Enhanced USB Microphone /* Telit products */ product TELIT UC864E 0x1003 UC864E 3G modem product TELIT UC864G 0x1004 UC864G 3G modem +product TELIT LM960 0x1040 LM960A18 LTE modem (RNDIS) +product TELIT LM960_ECM 0x1042 LM960A18 LTE modem (ECM) /* Ten X Technology, Inc. */ product TENX UAUDIO0 0xf211 USB audio headset From nobody Mon May 18 21:28:16 2026 X-Original-To: dev-commits-src-branches@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 4gK9rx0Kfwz6cqJS for ; Mon, 18 May 2026 21:28:17 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gK9rw6xnvz3gfK for ; Mon, 18 May 2026 21:28:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139697; 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=+zQmh0kzrr2SXSwulffPTnanJhEWevFQ3S+11VJoIZg=; b=tWLFesKs+v9gbYmQvQit9okF4rv3X72PlIzM1HYig/6xQEdJZUUwwuZcgcelIM28hPs/Ku igKGRynyKb0ObRUu9CGQN4GhVDYsUPkIgl1Z1PTTlEzCd5UmDDxdAYoL57psnhnP7XD5NZ Cya8JFmG+k2OFoYi5Tw7h/BqZZZpndXzg+ayoeQ/fd+fQS4ZCAljeR2oFL5meVZ6rrOIXg 4MUirKk+mqQNa0bDZenyjQAOqi3iLiFWUzHyRGQ7+Vigz+l46vvXSu/fzk0jvpSlznROkk qc6jziZbomvvK5cxO/yOH+CxGC/NMEBt/YPlHDi3vlW0kqiisoT7Bz/QZ/nrRA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779139697; a=rsa-sha256; cv=none; b=Gb2NqjI82rj+T8XlYB9BhLqjOpL91uVaIE8yk2ZZsY/DX7IntQ1NB5f+SHr5lBjElWXOIY Klx+shNq8OgUjv1si6oA/mXMctbrHNkHOUy93LOkM3aJ4i5DC+jbG6qIvVe8lm1tmvflEt pnTx7G2EP7ZNksn+5Bdq6FtL5xxqBdzVa0Q6wBL81cHpHetHZ3BxGByni8X6EUKc4HjtXG uS1NAcLOunAi1n4tiXW81ynYWiw0M9zsbVs4yU9r65BlR3jP29CKlcaxuhaOUfyRyUs4FV cn3CCfoD72VuaYLlsu16BCuDxTCvnAYdkXE2uiy4bdYiR0nzWA1B8X3R2E/3zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139697; 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=+zQmh0kzrr2SXSwulffPTnanJhEWevFQ3S+11VJoIZg=; b=SJvVWUXLLFWt2SFOl+LQjCt+uufu77VAJ/L53Q5RSnXctRU1FVjE/I6g2YmuR1FEc4Oajl q85l26/bvaktIxoOUJatlYdMTxMQhbFGj1E3PdgJbDXMZgOZx/rxy/Ifbl6surU5nqjviC fxSEjDLoNosmgvh6WWWyKPVFyXhbgJTLnoa1tk1uigZxoa/P3p+HK77S/tdaNOXcbmz2kt wwUun9Xl2w/5Dkp+WDyoA4dF11s3XaZj87aNiHG715jsE0f6jKZCvTYm8QKYeIC16HJNfl e0IY0YUjwM8D+2pcYf6tEyg5bRFnGRVljWWhjUjV5x63OnE1gj5xsCZkirltsA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gK9rw6TnhzlqJ for ; Mon, 18 May 2026 21:28:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41929 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 21:28:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 544c3ee47504 - stable/15 - dtrace: Document the syscall provider List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 544c3ee47504dd3439e95cf801e7a69959db0b21 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 21:28:16 +0000 Message-Id: <6a0b8470.41929.5bde40aa@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=544c3ee47504dd3439e95cf801e7a69959db0b21 commit 544c3ee47504dd3439e95cf801e7a69959db0b21 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-05 12:57:53 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 21:28:03 +0000 dtrace: Document the syscall provider MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56831 (cherry picked from commit 242050278a377f5ca6906545ddc924b60ad8aa58) --- cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 | 3 +- lib/libsys/intro.2 | 5 +- share/man/man4/Makefile | 1 + share/man/man4/dtrace_syscall.4 | 87 ++++++++++++++++++++++++++++ share/man/man4/linux.4 | 3 +- 5 files changed, 95 insertions(+), 4 deletions(-) diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 index 786c3d6e50d1..db44d89adb39 100644 --- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 +++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 @@ -20,7 +20,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 30, 2025 +.Dd May 7, 2026 .Dt DTRACE 1 .Os .Sh NAME @@ -1309,6 +1309,7 @@ in .Xr dtrace_profile 4 , .Xr dtrace_sched 4 , .Xr dtrace_sctp 4 , +.Xr dtrace_syscall 4 , .Xr dtrace_tcp 4 , .Xr dtrace_udp 4 , .Xr dtrace_udplite 4 , diff --git a/lib/libsys/intro.2 b/lib/libsys/intro.2 index 008936b278ae..33dfecf648c5 100644 --- a/lib/libsys/intro.2 +++ b/lib/libsys/intro.2 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 19, 2024 +.Dd May 7, 2026 .Dt INTRO 2 .Os .Sh NAME @@ -756,7 +756,8 @@ during a system boot. .El .Sh SEE ALSO .Xr intro 3 , -.Xr perror 3 +.Xr perror 3 , +.Xr dtrace_syscall 4 .Sh HISTORY The .Nm Ns Pq 2 diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 23057e016f7d..d5c1c85eb33d 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1021,6 +1021,7 @@ _dtrace_provs= dtrace_audit.4 \ dtrace_profile.4 \ dtrace_sched.4 \ dtrace_sctp.4 \ + dtrace_syscall.4 \ dtrace_tcp.4 \ dtrace_udp.4 \ dtrace_udplite.4 \ diff --git a/share/man/man4/dtrace_syscall.4 b/share/man/man4/dtrace_syscall.4 new file mode 100644 index 000000000000..e154e4c6046b --- /dev/null +++ b/share/man/man4/dtrace_syscall.4 @@ -0,0 +1,87 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2026 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.Dd May 7, 2026 +.Dt DTRACE_SYSCALL 4 +.Os +.Sh NAME +.Nm dtrace_syscall +.Nd a DTrace provider for system calls +.Sh SYNOPSIS +.Nm syscall Ns Cm \&: Ns Ar abi Ns Cm \&: Ns Ar syscall Ns Cm :entry +.Nm syscall Ns Cm \&: Ns Ar abi Ns Cm \&: Ns Ar syscall Ns Cm :return +.Sh DESCRIPTION +The +.Nm syscall +provider provides entry and return probes for system calls. +.Pp +The module in the probe's description is +.Ar abi , +which indicates what system call ABI a +.Ar syscall +belongs to. +.Nm +supports the following system call ABIs: +.Pp +.Bl -tag -offset indent -width freebsd32 -compact +.It Cm freebsd +Native ABI. +.It Cm freebsd32 +Non-native, 32-bit ABI. +.It Cm linux +Refer to +.Xr linux 4 . +.It Cm linux32 +Refer to +.Xr linux 4 . +.El +.Pp +The arguments to the +.Cm entry +probes are the arguments passed to the system call. +.Pp +The +.Cm return +probe stores the system call's return value in both +.Fa arg0 +and +.Fa arg1 . +.Pp +Inspect the +.Xr d 7 Ap s +.Va errno +variable to check if a system call failed. +.Sh EXAMPLES +.Ss Example 1 : Count Up System Calls +The following script traces all system calls and counts them for every process +on the system. +.Bd -literal -offset 2n +syscall:::entry { + @[execname, pid] = count(); +} +.Ed +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr intro 2 , +.Xr tracing 7 +.Rs +.%B The illumos Dynamic Tracing Guide +.%O Chapter syscall Provider +.%D 2008 +.%U https://illumos.org/books/dtrace/chp-syscall.html +.Re +.Rs +.%A Brendan Gregg +.%A Jim Mauro +.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD +.%I Prentice Hall +.%O Chapter Syscall Provider +.%P pp. 315\(en327 +.%D 2011 +.%U https://www.brendangregg.com/dtracebook/ +.Re +.Sh AUTHORS +This manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . diff --git a/share/man/man4/linux.4 b/share/man/man4/linux.4 index 711ac11e8fce..ec8342efe705 100644 --- a/share/man/man4/linux.4 +++ b/share/man/man4/linux.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 19, 2024 +.Dd May 7, 2026 .Dt LINUX 4 .Os .Sh NAME @@ -179,6 +179,7 @@ Linux kernel objects file system, see .El .Sh SEE ALSO .Xr brandelf 1 , +.Xr dtrace_syscall 4 , .Xr fdescfs 4 , .Xr linprocfs 4 , .Xr linsysfs 4 , From nobody Mon May 18 21:28:17 2026 X-Original-To: dev-commits-src-branches@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 4gK9ry28Fnz6cqPk for ; Mon, 18 May 2026 21:28:18 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gK9ry14sDz3glw for ; Mon, 18 May 2026 21:28:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139698; 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=yan8K2q26++jxbqPOJRhaKnsuR1ZjgegkbVsZWYBrck=; b=bTowhsXLlTpCpyyn104h3IKoU39DKLnMtSdbhR6kQhG+BiQnX66uDF+g6XpdXts/KNnDj4 GbjeQWmFdAGsKoNoZm/v9zWa+eHmDPVD1gv5AsLCnZNGreeNrdRyweI2qRCvUNlWbsMfwj WZLfpnXd1IoqEDUw07mh6MMVzOkrkBNnwJE0neX2DDWwoIVf4IwNcriyfWAhjvrkO1h+0R uW3+N/eUAt388gWNVd0DqtFnO13DdBt+/w5hZqmOToE6Q7mkM27gACuNYSlj4oWzheoMfm +3alnhyfpue8vd/dFR0e3j9QjMSR+PaSEQ7PlERs7GA7ScgVB/I0wyVq/JygjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779139698; a=rsa-sha256; cv=none; b=TiOCV7lCMvXiqo4FgaV5fFwWXT1H0TcTJNPX92O6cTyHLRytZt3SO6bhtvUmpgei4WsGxO IVqUxJ8DzbZssUrQWbYQj3A7y8MvRpxeghbN8OVQ8Xc+RfEniJrVveZrsiIZ2EAk/sHpfz KEqwc+VMLBz8D1VbklwySa1oF5uGPR5ytdyULmk4qXgrF2JSfAl/3/W1kKzFJx10r83tz/ yZvHZySOLk8Qe9CxxCln7OSwNWWmaIy9zA7ohAUeXHAGVzlL8Eg8mUgtg39FAM/zwqUgYM tYV6jjzDaAXjwSAduDnEBLsyanC4mY/kIhY+KNhKbZFO84ALTmgzQ90+fN633w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139698; 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=yan8K2q26++jxbqPOJRhaKnsuR1ZjgegkbVsZWYBrck=; b=MJn+h3JR6UZSJZ3gNZxH2wl9os3HoBzO+QD9kJ64Jtn4A58XfwFlzqGiH12qRv8dDBFu5z HGxnd2Qp4q0+OW4c3+NkScYpbi6EgbsJftoDW+bt6pSeZa2lknE+p/9uF/LvQ+1gIwcZZZ 6JzHxlSyx4JTv5zGdzQsWc+WHzk8to4sBBJkxLnWZNfp/B6TKdEzxY5UGwA+hKYFa7bPHe /anZUike5esMdF5LVBmHTWE2WQYBMIeW8wlMfEGHjCcV2a1tXeRGm7lAHxopuvZfzICfwG gn+cN6zng3L8Yo8/BLPCwaiu9Cuk4D83xnMgdfbaSFa2ZCcfKBSCDCz/WvmBwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gK9rx6y61zmL2 for ; Mon, 18 May 2026 21:28:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40777 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 21:28:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 457fbd523d8d - stable/15 - d.7: Document macro variables List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 457fbd523d8d0db5e0e5cccb8ba725c5b4014434 Auto-Submitted: auto-generated Date: Mon, 18 May 2026 21:28:17 +0000 Message-Id: <6a0b8471.40777.428890d5@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=457fbd523d8d0db5e0e5cccb8ba725c5b4014434 commit 457fbd523d8d0db5e0e5cccb8ba725c5b4014434 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-07 14:20:46 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 21:28:03 +0000 d.7: Document macro variables MFC after: 1 week (cherry picked from commit 2b9301a22bc677239d3c0dc783d970f17e7ca294) --- share/man/man7/d.7 | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/share/man/man7/d.7 b/share/man/man7/d.7 index 59b3389b121b..792f6d36ce73 100644 --- a/share/man/man7/d.7 +++ b/share/man/man7/d.7 @@ -1,9 +1,9 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" Copyright (c) 2025-2026 Mateusz Piotrowski <0mp@FreeBSD.org> .\" -.Dd October 28, 2025 +.Dd May 7, 2026 .Dt D 7 .Os .Sh NAME @@ -39,6 +39,41 @@ This manual page serves as a short reference of the language. Refer to books listed in .Sx SEE ALSO for a complete reference. +.Sh MACRO VARIABLES +.Bl -column "$1, $2, $3, ..." "Syntax" +.It Sy Name Ta Sy Description +.It Va $1 , $2 , $3 , .\&.\&. Ta Macro arguments +.It Va $egid Ta Effective group ID Pq Xr getegid 2 +.It Va $euid Ta Effective user ID Pq Xr geteuid 2 +.It Va $gid Ta Real group ID Pq Xr getgid 2 +.It Va $pid Ta Process ID Pq Xr getpid 2 +.It Va $pgid Ta Process group ID Pq Xr getpgrp 2 +.It Va $ppid Ta Parent process ID Pq Xr getppid 2 +.It Va $sid Ta Session ID Pq Xr getsid 2 +.It Va $target Ta Target process ID of the process +specified via the +.Fl p +flag or created via the +.Fl c +flag. +.It Va $uid Ta Real user ID Pq Xr getuid 2 +.El +.Pp +The macro arguments correspond to the command-line operands. +They expand to an integer, identifier, or string depending on the context. +Prepending a macro argument with an extra dollar sign +.Pq Ql $ +forces string expansion. +.Pp +For example, +.Bd -literal -compact -offset indent +dtrace -n 'syscall::fstatat: /execname == $$1/ {}' -- ls +.Ed +uses +.Va $$1 +instead of +.Va $1 +to expand to a string instead rather than to a global variable identifier. .Sh PROBE'S DESCRIPTION A probe's description consists of four elements: .Sm off @@ -411,3 +446,10 @@ variable which typically provides the current working directory is not supported on .Fx at the moment. +.Pp +Macro variables +.Va $projid +and +.Va $taskid +are always 0 on +.Fx . From nobody Mon May 18 21:28:19 2026 X-Original-To: dev-commits-src-branches@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 4gK9rz33mDz6cqLH for ; Mon, 18 May 2026 21:28:19 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gK9rz0qH1z3grj for ; Mon, 18 May 2026 21:28:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139699; 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=mVjQ4Fh0NQw2sx0F5nqJ5km00+ZO9Lgp5yRrtj07AOQ=; b=Ih3M6dqUqdQvohF/nM0Ndh1t8Mz153/1OI3CEO1itvMTx6ukmgvMkcsqZf7QO5CNZCJMuA EJnYQLTMCs8jpbXeo/uRZ69Ttd7bTNVBRTNGum90RBuvD8vhpyC51ZQD7smkaEi6IbKRYh UWTggQPuSVlCk3Imd0CrHDsTracvyWsrNrnqwMA1tVzTNzxLIu7F0bhi4OvYuIrdjA5tUd eu5LxXZGxXidftJufrTD41dgzq6vGdMz1Vcj8VOKISo9MIusX8NprB8nRIGNro80e9Gp89 KkajZH0YLUR+CU2M6SfMOkCVpkfiKnbt0mm2JgPKbJhbtWLe9ObxCNCQ7WCkRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779139699; a=rsa-sha256; cv=none; b=PCsevPyDbN4HDl4fray/awyWiLXP0QOjNG+8k7RZr/STNyghCYkpznkm7u2N6es2bb2/eY 6tzmcrNcGJJBTxTf2C6eBIJJ3z0lsWM0GU/GZHIAG6GfBghCIGEKkFCGYCwKT0y8uvwUuW 1FKIUF5+AdXW3K8+Z2Dn+Bb0fPX++DjZFsBdTJqlXsZGKfs0gZWbhqI+/B35/4JB1tJMf6 +F89CmsGW8c6P4n0fyOAkTKKk1M/ZzG+fmPNvgUHgxeawsudGdzbgD8szxFHXZt3ujVcB6 +s8lUyfETVAsR34VA1poXjsyWDBbndu8g6Q3f4KqDSZqdBtUscbYxWBNao+DiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139699; 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=mVjQ4Fh0NQw2sx0F5nqJ5km00+ZO9Lgp5yRrtj07AOQ=; b=vr/vtomJW73ZY8AbDav28vz1TQqbzBfCnO1DEjbMlM4iPq2/7fcahQ8TPNPdtSYVWQeAIg q4qbPTM8ZtvfDGP2kr5NObG1yq4KfFsGfshlKfa+1mSGjvqN7bUHtBxEB13rYkEdA/Cq7Y pdSCy3VBju75LnlxwVWkv8KDSurvhJ2IRZeips1QMhscTrdoWiDL4l90dE3MAWC4hFcR24 sozBl6sGlPi+GYulqEtRb2lSxuTKqhaCZIaqJpk0wshbnXehu1uyZOlP5thcOdAbU32qh2 lpA8DH/ArVMzm5Orj05R6MObiQDwmzMDF0g7dJKyh5nRVQNmWs9gvAu2oBiLsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gK9rz0PvdzmJ3 for ; Mon, 18 May 2026 21:28:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4192a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 21:28:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 10edaa6eda89 - stable/15 - dtrace_mib.4: Document the DTrace MIB provider List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 10edaa6eda89dfcd394f91688e33bbf42d7e4fcc Auto-Submitted: auto-generated Date: Mon, 18 May 2026 21:28:19 +0000 Message-Id: <6a0b8473.4192a.3a5852f1@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=10edaa6eda89dfcd394f91688e33bbf42d7e4fcc commit 10edaa6eda89dfcd394f91688e33bbf42d7e4fcc Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2025-07-18 15:46:25 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 21:28:03 +0000 dtrace_mib.4: Document the DTrace MIB provider Reviewed by: kp MFC after: 1 week Obtained from: 60d8dbbef075 netinet: add a probe point for IP, IP6, ICMP, ICMP6, UDP and TCP stats counters Differential Revision: https://reviews.freebsd.org/D53709 (cherry picked from commit ef19cae25337e7449f338914650bbfab0fbea99f) --- cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 | 1 + sbin/sysctl/sysctl.8 | 3 +- share/man/man4/Makefile | 1 + share/man/man4/dtrace_ip.4 | 3 +- share/man/man4/dtrace_mib.4 | 123 +++++++++++++++++++++++++++ share/man/man4/dtrace_tcp.4 | 3 +- share/man/man4/icmp.4 | 3 +- share/man/man4/icmp6.4 | 3 +- share/man/man4/ifmib.4 | 3 +- share/man/man4/ip.4 | 3 +- share/man/man4/ipsec.4 | 3 +- share/man/man4/tcp.4 | 3 +- share/man/man4/udp.4 | 3 +- share/man/man7/stats.7 | 5 +- 14 files changed, 149 insertions(+), 11 deletions(-) diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 index db44d89adb39..34d7f7d32394 100644 --- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 +++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 @@ -1303,6 +1303,7 @@ in .Xr dtrace_ip 4 , .Xr dtrace_kinst 4 , .Xr dtrace_lockstat 4 , +.Xr dtrace_mib 4 , .Xr dtrace_pid 4 , .Xr dtrace_proc 4 , .Xr dtrace_priv 4 , diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 index e0e35f075a78..b97bce320898 100644 --- a/sbin/sysctl/sysctl.8 +++ b/sbin/sysctl/sysctl.8 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 31, 2025 +.Dd May 7, 2026 .Dt SYSCTL 8 .Os .Sh NAME @@ -336,6 +336,7 @@ The option has been deprecated and is silently ignored. .Sh SEE ALSO .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr loader.conf 5 , .Xr sysctl.conf 5 , .Xr security 7 , diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index d5c1c85eb33d..d81a6064c171 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1015,6 +1015,7 @@ _dtrace_provs= dtrace_audit.4 \ dtrace_ip.4 \ dtrace_kinst.4 \ dtrace_lockstat.4 \ + dtrace_mib.4 \ dtrace_priv.4 \ dtrace_pid.4 \ dtrace_proc.4 \ diff --git a/share/man/man4/dtrace_ip.4 b/share/man/man4/dtrace_ip.4 index e9fbdfa3cf43..6faeb305ffc5 100644 --- a/share/man/man4/dtrace_ip.4 +++ b/share/man/man4/dtrace_ip.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 14, 2015 +.Dd May 7, 2026 .Dt DTRACE_IP 4 .Os .Sh NAME @@ -266,6 +266,7 @@ This provider is compatible with the providers found in Solaris and Darwin. .Sh SEE ALSO .Xr dtrace 1 , +.Xr dtrace_mib 4 , .Xr dtrace_tcp 4 , .Xr dtrace_udp 4 , .Xr ip 4 , diff --git a/share/man/man4/dtrace_mib.4 b/share/man/man4/dtrace_mib.4 new file mode 100644 index 000000000000..e8c2dd3a6f05 --- /dev/null +++ b/share/man/man4/dtrace_mib.4 @@ -0,0 +1,123 @@ +.\" +.\" Copyright (c) 2025-2026 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 7, 2026 +.Dt DTRACE_MIB 4 +.Os +.Sh NAME +.Nm dtrace_mib +.Nd a DTrace provider for Management Information Base +.Sh SYNOPSIS +.Cm mib: Ns Ar module Ns Cm \&:count: Ns Ar counter +.Pp +In +.Xr config 5 : +.Cd "options KDTRACE_MIB_SDT" +.Sh DESCRIPTION +The +.Nm mib +provider allows tracing of Management Information Base stats counters. +.Pp +The list of instrumented +.Ar module Ns s +includes: +.Bl -tag -offset indent -width ipcomp -compact +.It Cm ah +IP Authentication Header (RFC 2402), +.Xr ipsec 4 +.It Cm esp +IP Encapsulating Security Payload (RFC 1827, RFC 2406), +.Xr ipsec 4 +.It Cm icmp +.Xr icmp 4 +.It Cm icmp6 +.Xr icmp6 4 +.It Cm ip +.Xr ip 4 +.It Cm ip6 +.Xr ip6 4 +.It Cm ipcomp +IP Payload Compression Protocol, +.Xr ipsec 4 +.It Cm ipsec +.Xr ipsec 4 +.It Cm tcp +.Xr tcp 4 +.It Cm udp +.Xr udp 4 +.El +.Pp +The +.Cm mib: Ns Ar module Ns Cm \&:count: Ns Ar counter +probes fire when the +.Ar counter +in +.Ar module Ns s +increases. +.Pp +The first probe argument, +.Vt uint64_t Va args[0] , +is the increment that the +.Ar counter +will increase by. +.Pp +Note that some probes like +.Cm mib:esp:count:esps_hist +or +.Cm mib:icmp6:count:icp6s_outhist +provide additional probe-specific arguments. +.Sh EXAMPLES +.Ss Example 1 : Tracing IP Stats Counters +When debugging network issues one common clue is an unexpectedly +incrementing error counter. +This is helpful, in that it gives us an +idea of what might be going wrong, but often these counters may be +incremented in different functions. +.Pp +Trace all +.Nm mib +probes in the +.Xr ip 4 +module and print the current count and a stack trace: +.Pp +.Bd -literal -offset 2n +# dtrace -n 'mib:ip:count: { printf("%d", arg0); stack(); }' +dtrace: description 'mib:ip:count: ' matched 29 probes +CPU ID FUNCTION:NAME + 7 98784 count:ips_localout 1 + kernel`ip_output+0x17a2 + kernel`udp_send+0xaca + kernel`sosend_dgram+0x315 + kernel`sousrsend+0x79 + kernel`kern_sendit+0x1be + kernel`sendit+0x1ab + kernel`sys_sendmsg+0x5b + kernel`amd64_syscall+0x169 + kernel`0xffffffff81094b8b +.Ed +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr dtrace_ip 4 , +.Xr dtrace_tcp 4 , +.Xr dtrace_udp 4 , +.Xr tracing 7 , +.Xr sysctl 8 +.Sh STANDARDS +The probe descriptions in +the +.Fx +.Nm mib +provider are not compatible with those in the Solaris/illumos mib provider. +.Sh AUTHORS +.An -nosplit +The +.Nm mib +provider was added to +.Fx +by +.An Kristof Provost Aq Mt kp@FreeBSD.org . +.Pp +This manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . diff --git a/share/man/man4/dtrace_tcp.4 b/share/man/man4/dtrace_tcp.4 index af57f6e94a63..5570dd965706 100644 --- a/share/man/man4/dtrace_tcp.4 +++ b/share/man/man4/dtrace_tcp.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 2, 2023 +.Dd May 7, 2026 .Dt DTRACE_TCP 4 .Os .Sh NAME @@ -501,6 +501,7 @@ provider in Solaris. .Sh SEE ALSO .Xr dtrace 1 , .Xr dtrace_ip 4 , +.Xr dtrace_mib 4 , .Xr dtrace_sctp 4 , .Xr dtrace_udp 4 , .Xr dtrace_udplite 4 , diff --git a/share/man/man4/icmp.4 b/share/man/man4/icmp.4 index c8c92a794e24..493d2d218cec 100644 --- a/share/man/man4/icmp.4 +++ b/share/man/man4/icmp.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 11, 2024 +.Dd May 7, 2026 .Dt ICMP 4 .Os .Sh NAME @@ -264,6 +264,7 @@ exists. .Xr recv 2 , .Xr send 2 , .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man4/icmp6.4 b/share/man/man4/icmp6.4 index 8730e3fefacb..d9a8bd34a81a 100644 --- a/share/man/man4/icmp6.4 +++ b/share/man/man4/icmp6.4 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 1, 2018 +.Dd May 7, 2026 .Dt ICMP6 4 .Os .Sh NAME @@ -243,6 +243,7 @@ structure as the option value. .Xr setsockopt 2 , .Xr socket 2 , .Xr getprotobyname 3 , +.Xr dtrace_mib 4 , .Xr inet6 4 , .Xr ip6 4 , .Xr netintro 4 diff --git a/share/man/man4/ifmib.4 b/share/man/man4/ifmib.4 index 20b5613b6873..48e79c1f9411 100644 --- a/share/man/man4/ifmib.4 +++ b/share/man/man4/ifmib.4 @@ -25,7 +25,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 26, 2020 +.Dd May 7, 2026 .Dt IFMIB 4 .Os .Sh NAME @@ -165,6 +165,7 @@ and implements a superset of the MIB for Ethernet-like networks. .Sh SEE ALSO .Xr sysctl 3 , +.Xr dtrace_mib 4 , .Xr intro 4 , .Xr ifnet 9 .\" .Xr ethermib 4 , diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4 index c52715a43380..3d2de96d9798 100644 --- a/share/man/man4/ip.4 +++ b/share/man/man4/ip.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 9, 2021 +.Dd May 7, 2026 .Dt IP 4 .Os .Sh NAME @@ -907,6 +907,7 @@ field was not equal to the length of the datagram written to the socket. .Xr byteorder 3 , .Xr CMSG_DATA 3 , .Xr sourcefilter 3 , +.Xr dtrace_mib 4 , .Xr icmp 4 , .Xr igmp 4 , .Xr inet 4 , diff --git a/share/man/man4/ipsec.4 b/share/man/man4/ipsec.4 index 9fd6207c2f14..0c60e0e3c121 100644 --- a/share/man/man4/ipsec.4 +++ b/share/man/man4/ipsec.4 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 4, 2025 +.Dd May 7, 2026 .Dt IPSEC 4 .Os .Sh NAME @@ -336,6 +336,7 @@ routines from looking into the IP payload. .Xr socket 2 , .Xr ipsec_set_policy 3 , .Xr crypto 4 , +.Xr dtrace_mib 4 , .Xr enc 4 , .Xr icmp6 4 , .Xr if_ipsec 4 , diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 3c9f4ff83f3d..4c01daf4e14e 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -31,7 +31,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 5, 2025 +.Dd May 7, 2026 .Dt TCP 4 .Os .Sh NAME @@ -1098,6 +1098,7 @@ when trying to use a TCP function block that is not available; .Xr stats 3 , .Xr sysctl 3 , .Xr blackhole 4 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man4/udp.4 b/share/man/man4/udp.4 index b1dbff56154f..db9d0e0ae2c7 100644 --- a/share/man/man4/udp.4 +++ b/share/man/man4/udp.4 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 20, 2025 +.Dd May 7, 2026 .Dt UDP 4 .Os .Sh NAME @@ -175,6 +175,7 @@ exists. .Xr send 2 , .Xr socket 2 , .Xr blackhole 4 , +.Xr dtrace_mib 4 , .Xr inet 4 , .Xr intro 4 , .Xr ip 4 , diff --git a/share/man/man7/stats.7 b/share/man/man7/stats.7 index 0b57d525522c..f81c2fef0155 100644 --- a/share/man/man7/stats.7 +++ b/share/man/man7/stats.7 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 28, 2025 +.Dd May 7, 2026 .Dt STATS 7 .Os .Sh NAME @@ -44,6 +44,8 @@ are currently included in the base system, with more appearing periodically. Show Bluetooth socket information .It Nm ctlstat CAM Target Layer statistics utility +.It Nm dtrace_mib +Access the MIB stats counters with DTrace .It Nm dwatch Watch processes as they trigger a particular DTrace probe .It Nm fstat @@ -99,6 +101,7 @@ Report ZFS I/O statistics .Xr sockstat 1 , .Xr stat 1 , .Xr systat 1 , +.Xr dtrace_mib 4 , .Xr intro 7 , .Xr tuning 7 , .Xr ctlstat 8 , From nobody Mon May 18 21:28:20 2026 X-Original-To: dev-commits-src-branches@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 4gK9s04byQz6cqJW for ; Mon, 18 May 2026 21:28:20 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gK9s01WSmz3ghY for ; Mon, 18 May 2026 21:28:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139700; 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=4Cg73CODKtfd9c6vDuurpobVL8c1h/k6kcoYwzF6q5s=; b=IfB3KQwgjeGM7lPzh7WqDyBN3D2et8S8rpB5AIw0vIr10ItghiXbuLthdRngtJMpL44FvS LU5sMo41JWhXJSE/RDG2ZJRR18yCDCfBrcM6YPVRLXl8ZNV2lMwVBQa+vKS0zmiKrwWXhr OYSBq4ZuV0iblqa1MPENlaGvobpZDPq7+M68Jcl0mfZdYiIxzykuNeTmC+lU6pAoJZ9AXw qy5F4PzUEzrEjSvi/vYxs4CunOU5wkgJEof+h92t2ZRvTPwuYGqEpaH/LnsYFh7pu2q9B7 HrAaUwWpX/0bvH6nUtR1mI5MtSYAreWFOehCk7jC5cewFHEZ9no7uGHZzSQgaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779139700; a=rsa-sha256; cv=none; b=qs0KR0gnNeKJoqp/H0Fq7QbFGA0PQH7RrCvIAZl98B6iSGSOvKW88NEJajW/WNBpGO0oMF 12iTu3BcRcptiiOCIaFwIjFVOTP128/IsGa2rjxRNdNShoImtZuV2Un/S8orlvzLRFOJpS uEoF4b3t48OIrQ9FXbocw/BVII67blThvMw2jktjo2M+zhvlpTgms1X0R9v1QWfh4dAZv1 hiGiYBfk49FmzTtFtd1ZCEKLJHN3a7E4/f+H88bBhh02gYfLZBIYyFqsh42BfY4OnKCnj7 s7PtiPkyTj2YBcw9iP6GVGh+2IuntZbwNpm9ALxZ1QOdKMrrhwMMvXTxjHGzIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779139700; 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=4Cg73CODKtfd9c6vDuurpobVL8c1h/k6kcoYwzF6q5s=; b=QN8+2dW0VQN3+bOIETk9O9N3ySerKj1BzMUrC70eWo8mLkc3tGN6cSwk4VJEt/klMW2nOK Q+kr3IEq6xO1xPooglz3PBCETbGRoj1akJBjaaB2OmTNxjH85yeZFHoNfEmPv7m/Crfsss DMj8ltfxxACqLAHqEILUkmtSbcmIJB+E6C6RsKwZmJzUlTcRcbNSd7uiVEt3NmDJGM/GcL KOaU9G46LjpdVwItU8DzhlHNSWbszo/r2c4Y0otTZhgJUMzP/56MYLrtdNaZaT1GUWwCJR EuFV1fPV6itIvE8znxtYm1htuaoLbsDQcFJdYilTWGvG98KUOsXU/Jq4G7KsQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gK9s0137Fzm5y for ; Mon, 18 May 2026 21:28:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41208 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 18 May 2026 21:28:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 3ae682909950 - stable/15 - uio.9: Document uiomove_fromphys() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3ae6829099507245f6d7a661fe1500451716a09b Auto-Submitted: auto-generated Date: Mon, 18 May 2026 21:28:20 +0000 Message-Id: <6a0b8474.41208.6a94426b@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=3ae6829099507245f6d7a661fe1500451716a09b commit 3ae6829099507245f6d7a661fe1500451716a09b Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-03-20 07:52:28 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-18 21:28:03 +0000 uio.9: Document uiomove_fromphys() Reviewed by: kib Discussed with: markj, royger MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D54070 (cherry picked from commit 076e44839160f74f96fda83fa81c3acb41b9ebc8) --- share/man/man9/Makefile | 1 + share/man/man9/uio.9 | 45 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 2ecc511c8523..0bdb66f32c65 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -2324,6 +2324,7 @@ MLINKS+=uidinfo.9 uifind.9 \ uidinfo.9 uihold.9 MLINKS+=uio.9 uiomove.9 \ uio.9 uiomove_frombuf.9 \ + uio.9 uiomove_fromphys.9 \ uio.9 uiomove_nofault.9 MLINKS+=unr.9 alloc_unr.9 \ unr.9 alloc_unrl.9 \ diff --git a/share/man/man9/uio.9 b/share/man/man9/uio.9 index b143eb6e8e62..a7563125a351 100644 --- a/share/man/man9/uio.9 +++ b/share/man/man9/uio.9 @@ -23,13 +23,14 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 22, 2025 +.Dd May 7, 2026 .Dt UIO 9 .Os .Sh NAME .Nm uio , .Nm uiomove , .Nm uiomove_frombuf , +.Nm uiomove_fromphys , .Nm uiomove_nofault .Nd device driver I/O routines .Sh SYNOPSIS @@ -37,25 +38,29 @@ .In sys/uio.h .Bd -literal struct uio { - struct iovec *uio_iov; /* scatter/gather list */ - int uio_iovcnt; /* length of scatter/gather list */ - off_t uio_offset; /* offset in target object */ - ssize_t uio_resid; /* remaining bytes to copy */ - enum uio_seg uio_segflg; /* address space */ - enum uio_rw uio_rw; /* operation */ - struct thread *uio_td; /* owner */ + struct iovec *uio_iov; /* scatter/gather list */ + int uio_iovcnt; /* length of scatter/gather list */ + off_t uio_offset; /* offset in target object */ + ssize_t uio_resid; /* remaining bytes to process */ + enum uio_seg uio_segflg; /* address space */ + enum uio_rw uio_rw; /* operation */ + struct thread *uio_td; /* owner */ }; .Ed +.Pp .Ft int .Fn uiomove "void *buf" "int howmuch" "struct uio *uiop" .Ft int .Fn uiomove_frombuf "void *buf" "int howmuch" "struct uio *uiop" .Ft int +.Fn uiomove_fromphys "vm_page_t ma[]" "vm_offset_t offset" "int howmuch" "struct uio *uiop" +.Ft int .Fn uiomove_nofault "void *buf" "int howmuch" "struct uio *uiop" .Sh DESCRIPTION The functions .Fn uiomove , .Fn uiomove_frombuf , +.Fn uiomove_fromphys , and .Fn uiomove_nofault are used to transfer data between buffers and I/O vectors that might @@ -152,10 +157,27 @@ When .Va uio_offset is greater than or equal to the buffer size, the result is success with no bytes transferred, effectively signaling EOF. +.Pp +The +.Fn uiomove_fromphys +function provides a machine-independent way to copy memory +to and from the physical address space. +The +.Fa "ma[]" +argument is an array of physical pages. +Every physical page address in the array provides +a page-sized chunk of the physical space. +The +.Fa "offset" +argument is the offset into the +.Fa "ma[]" +array. +In particular, the offset does not have to lie within the first page. .Sh RETURN VALUES On success .Fn uiomove , .Fn uiomove_frombuf , +.Fn uiomove_fromphys , and .Fn uiomove_nofault will return 0; on error they will return an appropriate error code. @@ -168,7 +190,7 @@ will not work (the buffer pointer is not being advanced in case of a partial read), it is just here to demonstrate the .Nm handling. -.Bd -literal +.Bd -literal -offset 2n /* MIN() can be found there: */ #include @@ -200,7 +222,8 @@ fooread(struct cdev *dev, struct uio *uio, int flag) } .Ed .Sh ERRORS -.Fn uiomove +.Fn uiomove , +.Fn uiomove_fromphys and .Fn uiomove_nofault will fail and return the following error code if: @@ -211,7 +234,7 @@ The invoked or .Xr copyout 9 returned -.Er EFAULT +.Er EFAULT . .El .Pp In addition, From nobody Tue May 19 00:42:56 2026 X-Original-To: dev-commits-src-branches@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 4gKG9X3Wdvz6d7vR for ; Tue, 19 May 2026 00:42:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKG9X31dMz4CvJ for ; Tue, 19 May 2026 00:42:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151376; 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=Rxoyyav/N7GsqDMoEmnYWzQwR1nTmsXeOPbbkFRiiPg=; b=M2Ev6qF6NrFaqCoHakHr/GcOW6trObcpE70V2gWv8OSIO+e1bchlH+pg89KpbcEM/m5VIc 9yYxpRatCH/EbxVZPtGM+dL4tqVCOcX4kDzuTRNtyJ5FfdphjRBRR03qAH8B74w+xRgENA dIURoPplTIk9aMnalJnmCLKwjP+2j/Idh75II7deudwSKV/O6IjDmgYcwtNFLB/nFfBhnm lZFoFErYffpVXhqyFEFdyG0MkaEaUWLAoLe0vmGUfu2PmhEHmfXPBABKcauiRz9QHqZoYY xidRfePVBf+2n8JxFcrpJyqqKkFLUpp6HwDRWdWvZuo8+hw+mFejRFIRgeLILg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151376; a=rsa-sha256; cv=none; b=OQ/nWozLudwDznNUzFkgVD8nRcw2NTQ412/wokD+DZt+0DpZwuss0jM0pq7f9oBRtg/1Qk 3Yb1nIIVcluK1DIoNAH7KtQp1ZyGJvEayXRWeV55ZlJFye+CrAgC+LwM74frB8D3xF7+DA 91v9Y42SpYEIWozScpex7YaZr5CXhdrHJTWQ9j/kp4u/hhjhjmVwFZNEt+lvxqL3mXxm7i P5N7XE6qWoSmeRW6qPu6gZVrcw+zomlXwoOkO3e8mAbf32Eu7IgcAiMtqBkXUeIIAxUTld dhWPVnY/3XkvD0mGJLPbAaBpXXCgo+YFXQuh7n2iuwCU8fctNcGcBEhVnqEQmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151376; 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=Rxoyyav/N7GsqDMoEmnYWzQwR1nTmsXeOPbbkFRiiPg=; b=tCFC76W4TBXF8awG9G46tU1viBVUBYcc2C6w61wQHXhFAZdJ00r13Ri4Zelgvo6xmDaU83 anrQvkxsqlxhZ/Jl5AMRtzQs49k0zhBbmOlMhu/WtsrghzZxkKCPuEHXiEAzLVNNfgJ2tZ 2VfnhHI9M5ezGY+za5yA4M558ke0ngOB49JAOGpXLZH8nhrmm+Xa7owEhXeYRV+y6pZ7yo /zXakvCWmQWS8PJeps/gxwigLCdLz2tEX3GSB/IWOmTpowj/qH4wEDM2wdQN1aZbfo42RY qQHKacOF61ZyA0607fxQVVRj7m6zPQNocI9RjQpT5e0tJEW8bCVX7O6IZER+Rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKG9X2YKZzs2g for ; Tue, 19 May 2026 00:42:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 245fd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:42:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: a9e71a2e1ade - stable/15 - EC2: Don't enable firstboot_pkgs in small flavour List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a9e71a2e1ade6f0ce4a59f3a1a2153e1c0eb29b0 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:42:56 +0000 Message-Id: <6a0bb210.245fd.1004e4e6@gitrepo.freebsd.org> The branch stable/15 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=a9e71a2e1ade6f0ce4a59f3a1a2153e1c0eb29b0 commit a9e71a2e1ade6f0ce4a59f3a1a2153e1c0eb29b0 Author: Colin Percival AuthorDate: 2026-05-16 18:58:13 +0000 Commit: Colin Percival CommitDate: 2026-05-19 00:42:30 +0000 EC2: Don't enable firstboot_pkgs in small flavour The EC2 "base" flavour installs the devel/py-awscli package at boot time by default; we don't do this in the "small" flavour, so the default behaviour was to update the FreeBSD-ports repository and then do nothing with it. Turn off firstboot_pkgs by default; if someone is using the "small" flavour of AMIs and wants to install packages at instance launch time, they simply need to add 'firstboot_pkgs_enable="YES"' to /etc/rc.conf (which they must already be editing via user-data, in order to provide the list of packages they want installed). Sponsored by: Amazon MFC after: 3 days MFC to: stable/15 Relnotes: EC2 "small" images now have firstboot_pkgs_enable="NO". (cherry picked from commit 61df4be487cfbfd27b0959e1eb66ef0d8f84562f) --- release/tools/ec2-small.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf index f5904d5ea4ba..6da4444bc835 100644 --- a/release/tools/ec2-small.conf +++ b/release/tools/ec2-small.conf @@ -33,7 +33,7 @@ export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} ec2-scripts \ # Services to enable in rc.conf(5). export VM_RC_LIST="${VM_RC_LIST} ec2_configinit ec2_ephemeral_swap \ - ec2_fetchkey ec2_loghostkey firstboot_pkg_upgrade firstboot_pkgs \ + ec2_fetchkey ec2_loghostkey firstboot_pkg_upgrade \ growfs sshd" vm_extra_pre_umount() { From nobody Tue May 19 00:43:32 2026 X-Original-To: dev-commits-src-branches@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 4gKGBF1NJ8z6d7v4 for ; Tue, 19 May 2026 00:43:33 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBD6vxgz4DNc for ; Tue, 19 May 2026 00:43:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151413; 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=96BhgOmD0GYyVm3TiP/qf7onmMVMy4xNXVK95o3jKmE=; b=p0GvwTXqsDctlL+LVdDnC7LFllmKQe29z+3oqA8Irlobfj8tNk97KcLo/y+kyY1LVMVTE2 9zrqoLN1XWyLDKXTvXBEWrVlv+8bc/g6VKKuRFlPsPekTZVpdpFtGiTpdNxFosPTwlDMUn +lEjhkmAqbQ7b1VPvYEyTqXtRlOSg+HlST4XhfY6XFbesGnhXMUbXjlmmOYQHVzhPgeoBv S0oPYgLxZOXEr8ehdNN2GiFEqbcMGR0zm/5i6+1vBHgUVhHHsO2JhjDKZYm4DNNv1UXBdR 4sU4QcQXvl9ldbveSCazwje3auAO5joWs4DR3opdLjkMEtt16p4F60sboW20IQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151413; a=rsa-sha256; cv=none; b=JpWqSpl9YmINaiLxcqwRuyF+IzCpq1INKaCkkPeuQs625Cj+7IQny5D9nV/QICrB19LTUd 1BY55AIQEAzyEpFrr+irUSigr9/FpEbQdPEoKnpLmDOMrUhwW8GR1w+2MKI0/NMkRB8Qw7 0gWjCNjW5bmrua6RzeXUciXpSqh+XC4hliD4fM8YAoRZc2+AY57BxY737KG89JqNpUYCJw PbTzoK1lBGIvoZn/Qbb6fEYN69uBDwmYz7byoDmHuYrfqRfLDr6OK8uhWWmOciGP5sXtCz 5PKdlFv4DfBA9CnP/SG7HJJhS4Exhd3jnXNYMf4/ib7Fnsqw6Wes8D1H/lsWHg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151413; 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=96BhgOmD0GYyVm3TiP/qf7onmMVMy4xNXVK95o3jKmE=; b=mi43Lr20G8zkPiYQ43Ro9+iUO8UeV3J5Xz5EXQW/gulqG7oBwLJSX6m6ScFLPi/E1FyZ6s aeIUa0QJ/1x80A1PR7qQ79scDAY5euOQJ0qLhFg+KzQxKZgvKf6tWliRlsdr6lqofjSjGh RVvqC+x+JUIGGqwBmMTolkLZiG7llOI7YEOCMy+Sf++PITSdcxZoEn9MixbsyfGqlK2yTh TYK5XaGfZzwDL0+Nucqu3iA9a9Hlo1+9+7cMn+49v+UztrW7rupipW0opeJuxoEs6W3cga Y2L6l0pWsqkIWRxb9vcQwK4gvXoCqmf4k0GQEgHhYANTDsUjqj4MGs8DTh8Viw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBD6VJ8zryy for ; Tue, 19 May 2026 00:43:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26f88 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 85afe03ac3de - stable/15 - Remove -fms-extensions throughout the tree List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 85afe03ac3de79a29973ff9d5e5a96bc05db251c Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:32 +0000 Message-Id: <6a0bb234.26f88.4d25d996@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=85afe03ac3de79a29973ff9d5e5a96bc05db251c commit 85afe03ac3de79a29973ff9d5e5a96bc05db251c Author: Bjoern A. Zeeb AuthorDate: 2026-02-03 01:51:40 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:13 +0000 Remove -fms-extensions throughout the tree During a discussion about using -fms-extensions jhb pointed out that we have them enabled in the kernel for gcc by default (even multiple times in one part). I had missed all that and clang still failed on my use case (needing another option). The original cause for enabling them for our tree back then was that we needed to support C11 anonymous struct/unions. Our in-tree gcc 4.2.1, despite later patches, needed the -fms-extensions to support these even though this was not the expected use case for that option ( cc4a90c445aa0 enabled it globally for the kernel). clang at that time (or at least when it became default for 10.0) already was fine (with C11). Any later gcc (4.6.0 onwards) did not need that option anymore, even when compiled for -std=iso9899:1990 (which does not support anonymous structs/unions) unless one would add -pedantic (see gcc git 4bdd0a60b27a). This is also the reason why userland cddl sources now compile with the option removed despite CSTD=c99. The only driver which needed the option recently was ccp, but that was fixed in 8d3f41dbcb2a by jhb. So cleanup all uses cases of -fms-extensions for the moment as they are no longer needed given all compilers currently supported seem to be fine without them and gcc-4.2.1 was removed from the tree in stable/13 in 2020 (a9854bc3812b). Reported by: jhb (all this but possibly the world CDDL parts) Sponsored by: The FreeBSD Foundation Reviewed by: emaste (earlier), imp, jhb, glebius Differential Revision: https://reviews.freebsd.org/D55072 (cherry picked from commit 93d301d95ab230ea159b21b5412aac2ce5362ac5) --- cddl/lib/libzpool/Makefile | 1 - cddl/usr.bin/ztest/Makefile | 1 - cddl/usr.sbin/zdb/Makefile | 1 - sys/conf/kern.pre.mk | 3 +-- sys/conf/kmod.mk | 1 - sys/modules/iser/Makefile | 1 - sys/modules/pms/Makefile | 1 - sys/powerpc/conf/dpaa/config.dpaa | 2 +- 8 files changed, 2 insertions(+), 9 deletions(-) diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile index 82ec0e890d56..407159a85255 100644 --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile @@ -283,7 +283,6 @@ CFLAGS+= -DWANTS_MUTEX_OWNED CFLAGS+= -I${SRCTOP}/lib/libpthread/thread CFLAGS+= -I${SRCTOP}/lib/libpthread/sys CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include -CFLAGS.gcc+= -fms-extensions LIBADD= md pthread z spl icp nvpair avl umem diff --git a/cddl/usr.bin/ztest/Makefile b/cddl/usr.bin/ztest/Makefile index ef4bd561b41a..cb51b5110f03 100644 --- a/cddl/usr.bin/ztest/Makefile +++ b/cddl/usr.bin/ztest/Makefile @@ -29,7 +29,6 @@ CSTD= c99 # Since there are many asserts in this program, it makes no sense to compile # it without debugging. CFLAGS+= -g -DDEBUG=1 -Wno-format -DZFS_DEBUG=1 -CFLAGS.gcc+= -fms-extensions HAS_TESTS= SUBDIR.${MK_TESTS}+= tests diff --git a/cddl/usr.sbin/zdb/Makefile b/cddl/usr.sbin/zdb/Makefile index 7d1e41e1690e..ad6e63f428a3 100644 --- a/cddl/usr.sbin/zdb/Makefile +++ b/cddl/usr.sbin/zdb/Makefile @@ -25,7 +25,6 @@ CFLAGS+= \ LIBADD= nvpair umem uutil zdb zfs_core zfs spl avl zutil zpool crypto -CFLAGS.gcc+= -fms-extensions # Since there are many asserts in this program, it makes no sense to compile # it without debugging. CFLAGS+= -g -DDEBUG=1 -DZFS_DEBUG=1 diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 0251486247da..5bbd1ec70cd3 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -78,10 +78,9 @@ CFLAGS= ${COPTFLAGS} ${DEBUG} CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h CFLAGS_PARAM_INLINE_UNIT_GROWTH?=100 CFLAGS_PARAM_LARGE_FUNCTION_GROWTH?=1000 -CFLAGS.gcc+= -fms-extensions -finline-limit=${INLINE_LIMIT} +CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} CFLAGS.gcc+= --param inline-unit-growth=${CFLAGS_PARAM_INLINE_UNIT_GROWTH} CFLAGS.gcc+= --param large-function-growth=${CFLAGS_PARAM_LARGE_FUNCTION_GROWTH} -CFLAGS.gcc+= -fms-extensions .if defined(CFLAGS_ARCH_PARAMS) CFLAGS.gcc+=${CFLAGS_ARCH_PARAMS} .endif diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index b5e30d48fff1..b466dca4f0e4 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -139,7 +139,6 @@ CFLAGS+= -include ${.OBJDIR}/opt_global.h CFLAGS+= -I. -I${SYSDIR} -I${SYSDIR}/contrib/ck/include CFLAGS.gcc+= -finline-limit=${INLINE_LIMIT} -CFLAGS.gcc+= -fms-extensions CFLAGS.gcc+= --param inline-unit-growth=100 CFLAGS.gcc+= --param large-function-growth=1000 diff --git a/sys/modules/iser/Makefile b/sys/modules/iser/Makefile index 615199ec97a3..fadb0894ac85 100644 --- a/sys/modules/iser/Makefile +++ b/sys/modules/iser/Makefile @@ -19,7 +19,6 @@ CFLAGS+= -I${SYSDIR}/ofed/include/uapi CFLAGS+= ${LINUXKPI_INCLUDES} CFLAGS+= -DCONFIG_INFINIBAND_USER_MEM CFLAGS+= -DINET6 -DINET -CFLAGS+= -fms-extensions CFLAGS+=-DICL_KERNEL_PROXY diff --git a/sys/modules/pms/Makefile b/sys/modules/pms/Makefile index 8bd21fc4b502..81599e0a3ceb 100644 --- a/sys/modules/pms/Makefile +++ b/sys/modules/pms/Makefile @@ -17,7 +17,6 @@ ${SRCTOP}/sys/dev/pms/freebsd/driver/common CFLAGS+=-fno-builtin -CFLAGS+=-fms-extensions CFLAGS+=-Wredundant-decls CFLAGS+=-Wunused-variable diff --git a/sys/powerpc/conf/dpaa/config.dpaa b/sys/powerpc/conf/dpaa/config.dpaa index 6a923baed894..0b7c8fcf3b29 100644 --- a/sys/powerpc/conf/dpaa/config.dpaa +++ b/sys/powerpc/conf/dpaa/config.dpaa @@ -2,7 +2,7 @@ files "dpaa/files.dpaa" makeoptions DPAA_COMPILE_CMD="${LINUXKPI_C} ${DPAAWARNFLAGS} \ - -Wno-cast-qual -Wno-unused-function -Wno-init-self -fms-extensions \ + -Wno-cast-qual -Wno-unused-function -Wno-init-self \ -include $S/contrib/ncsw/build/dflags.h \ -Wno-error=missing-prototypes \ -I$S/contrib/ncsw/build/ \ From nobody Tue May 19 00:43:34 2026 X-Original-To: dev-commits-src-branches@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 4gKGBG28xnz6d7Ym for ; Tue, 19 May 2026 00:43:34 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBG0rxgz4DNg for ; Tue, 19 May 2026 00:43:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151414; 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=mJtx2h7VyQo4zjaC7gioQ3qojlbcIjvPGVlbjs04YL0=; b=rq431XeTfef3+mEHhBwO3+tmvunWPDValI0+is6/qHdg+4MKg5wL28penQ4ruGrhhd4tDI rWxeyJr84XyPz6YAA+f/i01IYxJlTSEjPiiax0EfFi8dxNvmML02CaJk3qr98TWIAxfgIA oXrIg/sl/ICY4jKOkD0ARSEKvHLWORPJgrcXzfi+k357HKg/GP+EUDv8xuBDpeU+yygLDa eqpluc4ilfSNdc4Sho5TuItWExkJe43Iv88QyUmyY7HRQjzBAVxXOr0+3bUG+4KaQDv62w 5AoqYTh45QZyfrBfhTW631bgBwllU3cnlQDNBj9vz/TQSjpn1Rkp6NcE1pm+BA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151414; a=rsa-sha256; cv=none; b=wzyn1ghjqJhWiPSqIlNvZRtBNpbOxLfXoWH8bd1T+Gu+02Mvr6tVimnOsUIQaHXXUrAmhc /KlnZkD14LktOzw99bW94lDgMrdL6wm+x6p+8CY09+m4ZFJdlnJDkykXn8DogvnDIVYL8n UrkS55Jk7yzsYCJD3cg+RLGTI151odFhrtOjgargb6eNqUqRVP/qgNIBxBOW5TBXvAfwjh FIdIq/8PeA/ak7mbc3xP/9dStnkTZLuaIRsM3DSMno8PR7K+hH1xxRs9669J9zAh3RiaLj mqdzFBPASXEKhM94Cq1Rk7LR5SX5rX43MOoE3jJPXa63CoCcjBhlCbDlTXMQpQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151414; 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=mJtx2h7VyQo4zjaC7gioQ3qojlbcIjvPGVlbjs04YL0=; b=BC8+XSNb/t8J/AJu68lKFK9ShQuLisSscNZ5vu16YYvGnDT/DFpITGTw1ViDFUVQeplxpk nBpY769m+R3MgZd6I4ZgGH7ZlmRsCOWvOVSik4wISSFpi59kymJiBWDILe8SQ819DToC5G 0jeReJAekavQ9zLGxgqwYfzn/DQRVvaQvDqtJQX5DRrYkApo4CsAItysDWvJ8yD5PKNPWV TLxgoBgrgYfq0gloFXuY3DNa+XPdOOsPKj4zKPdewx8ysHKNAjFG4mpBXOC+Rb+MbBH5hS 6jNJ124c1KozXqGFADoRadGAxD+Rs5i2shHsC5rKC3qAcsEP8FjGTkkPk0aMsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBG0DyTzs00 for ; Tue, 19 May 2026 00:43:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2702f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 6adb27eec8a6 - stable/15 - man: iwlwifi/rtw88/rtw89: update man pages for Linux v7.0 based updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6adb27eec8a6ba07aedb3c0fd9a52116f37d3e07 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:34 +0000 Message-Id: <6a0bb236.2702f.32521991@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6adb27eec8a6ba07aedb3c0fd9a52116f37d3e07 commit 6adb27eec8a6ba07aedb3c0fd9a52116f37d3e07 Author: Bjoern A. Zeeb AuthorDate: 2026-05-15 16:29:48 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:14 +0000 man: iwlwifi/rtw88/rtw89: update man pages for Linux v7.0 based updates For all: - harmonize Copyright/license section according to style.9 and used SPDX only. - mention that the current generation of the driver is based on Linux version 7.0. - make linuxkpi.4 and linuxkpi_wlan.4 .Xr as the man pages do exist these days. iwlwifi: update the card/chipset names supported (while we still can) iwlwififw: leave a comment only that we can no longer update the man page and it will be removed in the future. rtw88: update supported chipsets and add note to BUGS sections rtw89: update supported chipsets and add note to BUGS sections Sponsored by: The FreeBSD Foundation Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D57019 (cherry picked from commit 0a2f7683bf0cbd57d7cdba0713a3e30b24cbf9b4) --- share/man/man4/iwlwifi.4 | 154 +++++++++++++++++++++------------------------ share/man/man4/iwlwififw.4 | 28 ++------- share/man/man4/rtw88.4 | 27 +++++--- share/man/man4/rtw89.4 | 26 +++++--- 4 files changed, 116 insertions(+), 119 deletions(-) diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 411af54be9fb..71825507f7c7 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -1,33 +1,12 @@ .\" -.\" SPDX-License-Identifier: BSD-2-Clause -.\" -.\" Copyright (c) 2021-2025 The FreeBSD Foundation +.\" Copyright (c) 2021-2026 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd August 19, 2025 +.Dd May 15, 2026 .Dt IWLWIFI 4 .Os .Sh NAME @@ -62,7 +41,7 @@ The driver provides support for Intel Wireless network devices. .Pp .Nm -is derived from Intel's Linux iwlwifi driver. +is derived from Intel's Linux iwlwifi driver based on Linux version 7.0. The .Xr iwm 4 and @@ -72,7 +51,7 @@ driver. .Pp In addition .Nm -already supports Intel's Linux iwlwifi/mld chipsets. +supports the chipsets based on Intel's Linux iwlwifi/mld driver. .Pp .Nm still complements the @@ -83,10 +62,9 @@ Intel's Linux iwlwifi/dvm, which does not support. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -147,117 +125,129 @@ Intel(R) Wireless N 7260 .It Intel(R) Dual Band Wireless AC 3160 .It +Intel(R) Wireless N 3160 +.It Intel(R) Dual Band Wireless N 3160 .It -Intel(R) Wireless N 3160 +Intel(R) Dual Band Wireless-AC 3165 .It -Intel(R) Dual Band Wireless AC 3165 +Intel(R) Dual Band Wireless-AC 3168 .It -Intel(R) Dual Band Wireless AC 3168 +Intel(R) Dual Band Wireless-AC 7265 .It -Intel(R) Dual Band Wireless AC 7265 +Intel(R) Dual Band Wireless-N 7265 .It -Intel(R) Wireless N 7265 +Intel(R) Wireless-N 7265 .It -Intel(R) Dual Band Wireless N 7265 +Intel(R) Dual Band Wireless-AC 8260 .It -Intel(R) Dual Band Wireless AC 8260 +Intel(R) Dual Band Wireless-N 8260 .It -Intel(R) Dual Band Wireless N 8260 +Intel(R) Dual Band Wireless-AC 4165 .It -Intel(R) Dual Band Wireless AC 4165 +Intel(R) Dual Band Wireless-AC 8265 .It -Intel(R) Dual Band Wireless AC 8265 +Intel(R) Dual Band Wireless-AC 8275 .It -Intel(R) Dual Band Wireless AC 8275 +Killer(R) Wireless-AC 1435i Wireless Network Adapter (8265D2W) .It -Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz +Killer(R) Wireless-AC 1435-KIX Wireless Network Adapter (8265NGW) .It -Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) +Intel(R) Wireless-AC 9461 160MHz .It -Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) +Intel(R) Wireless-AC 9461 .It -Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz +Intel(R) Wireless-AC 9462 160MHz .It -Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz +Intel(R) Wireless-AC 9462 .It -Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) +Intel(R) Wireless-AC 9260 160MHz .It -Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) +Intel(R) Wireless-AC 9260 +.It +Intel(R) Wireless-AC 9560 160MHz +.It +Intel(R) Wireless-AC 9560 +.It +Intel(R) Wi-Fi 6 AX201 160MHz .It -Intel(R) Wireless-AC 9260-1 +Intel(R) Wi-Fi 6 AX101 +.It +Intel(R) Wi-Fi 6 AX203 .It Intel(R) Wi-Fi 6 AX200 160MHz .It -Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W) +Intel(R) Wi-Fi 6E AX211 160MHz .It -Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) +Intel(R) Wi-Fi 6E AX411 160MHz .It -Intel(R) Wi-Fi 6 AX201 160MHz +Intel(R) Wi-Fi 6E AX210 160MHz .It -Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) +Killer(R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz .It -Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) +Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz +.It +Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz .It -Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) +Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) .It -Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) +Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) .It -Intel(R) Wi-Fi 6E AX211 160MHz +Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211D2W) .It -Intel(R) Wi-Fi 6 AX210 160MHz +Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) .It Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W) .It Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW) .It -Intel(R) Wi-Fi 6E AX411 160MHz +Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) .It -Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) +Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) .It -Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) +Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W) .It -Intel(R) Wireless-AC 9461 160MHz +Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) .It -Intel(R) Wireless-AC 9461 +Intel(R) Wi-Fi 7 BE201 320MHz .It -Intel(R) Wireless-AC 9462 160MHz +Intel(R) Wi-Fi 7 BE401 320MHz .It -Intel(R) Wireless-AC 9462 +Intel(R) Wi-Fi 7 BE200 320MHz .It -Intel(R) Wireless-AC 9560 160MHz +Intel(R) Wi-Fi 7 BE202 160MHz .It -Intel(R) Wireless-AC 9560 +Killer(R) Wi-Fi 7 BE1750s 320MHz Wireless Network Adapter (BE201D2W) .It -Intel(R) Wireless-AC 9270 160MHz +Killer(R) Wi-Fi 7 BE1750i 320MHz Wireless Network Adapter (BE201NGW) .It -Intel(R) Wireless-AC 9270 +Killer(R) Wi-Fi 7 BE1790s 320MHz Wireless Network Adapter (BE401D2W) .It -Intel(R) Wireless-AC 9162 160MHz +Killer(R) Wi-Fi 7 BE1790i 320MHz Wireless Network Adapter (BE401NGW) .It -Intel(R) Wireless-AC 9162 +Killer(TM) Wi-Fi 7 BE1750w 320MHz Wireless Network Adapter (BE200D2W) .It -Intel(R) Wireless-AC 9260 160MHz +Killer(TM) Wi-Fi 7 BE1750x 320MHz Wireless Network Adapter (BE200NGW) .It -Intel(R) Wireless-AC 9260 +Intel(R) Wi-Fi 7 BE211 320MHz .It -Intel(R) Wi-Fi 6 AX101 +Intel(R) Wi-Fi 6E AX221 160MHz .It -Intel(R) Wi-Fi 6 AX203 +Intel(R) Wi-Fi 7 BE213 160MHz .It -Intel(R) Wi-Fi 6E AX231 160MHz +Intel(R) Wi-Fi 8 BN201 .It -Intel(R) Wi-Fi 7 BE201 320MHz +Intel(R) Wi-Fi 7 BE223 .It -Intel(R) Wi-Fi 7 BE200 320MHz +Intel(R) Wi-Fi 8 BN203 .It -Intel(R) Wi-Fi 7 BE202 160MHz +Killer(R) Wi-Fi 7 BE1775s 320MHz Wireless Network Adapter (BE211D2W) .It -Intel(R) TBD Sc device +Killer(R) Wi-Fi 7 BE1775i 320MHz Wireless Network Adapter (BE211NGW) .It -Intel(R) TBD Sc2 device +Killer(R) Wi-Fi 8 BN1850w2 320MHz Wireless Network Adapter (BN201.D2W) .It -Intel(R) TBD Sc2f device +Killer(R) Wi-Fi 8 BN1850i 320MHz Wireless Network Adapter (BN201.NGW) .\" -------------------------------------------------------------------- .El .Sh LOADER TUNABLES @@ -318,6 +308,8 @@ directory. .Xr iwm 4 , .Xr iwn 4 , .Xr iwx 4 , +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4 index 45ee0e757c07..32c9e974b60d 100644 --- a/share/man/man4/iwlwififw.4 +++ b/share/man/man4/iwlwififw.4 @@ -1,31 +1,15 @@ .\" -.\" SPDX-License-Identifier: BSD-2-Clause -.\" -.\" Copyright (c) 2021-2025 The FreeBSD Foundation +.\" Copyright (c) 2021-2026 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. +.\" NOTE: this man page is obsolete and will be removed in future versions +.\" of FreeBSD as there is (easy) no way to extract the information anymore +.\" from the driver. We do leave it currently for completeness until the +.\" next generation of cards start shipping. .\" .Dd May 12, 2025 .Dt IWLWIFIFW 4 diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4 index e01f508ef80e..6f60861cf623 100644 --- a/share/man/man4/rtw88.4 +++ b/share/man/man4/rtw88.4 @@ -1,9 +1,13 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2022-2026 Bjoern A. Zeeb +.\" Copyright (c) 2026 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb +.\" under sponsorship from the FreeBSD Foundation. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd February 10, 2026 +.Dd May 15, 2026 .Dt RTW88 4 .Os .Sh NAME @@ -28,7 +32,7 @@ It is not possible to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Realtek's Linux rtw88 driver. +driver is derived from Realtek's Linux rtw88 driver based on Linux version 7.0. .Pp This driver requires firmware to be loaded before it will work. The package @@ -45,10 +49,9 @@ One can use to install the correct firmware package. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -64,6 +67,8 @@ driver supports PCIe devices with the following chipsets: .It Realtek 802.11n wireless 8723de (RTL8723DE) .It +Realtek 802.11ac wireless 8814ae (RTL8814AE) +.It Realtek 802.11ac wireless 8821ce (RTL8821CE) .It Realtek 802.11ac wireless 8822be (RTL8822BE) @@ -84,6 +89,8 @@ for network buffer memory to the lower 32bit of physical memory and make the driver work. .El .Sh SEE ALSO +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -95,14 +102,16 @@ The driver first appeared in .Fx 13.2 . .Sh BUGS -Certainly. -.Pp Does not seem to work (reliably) on machines with more than 4GB of main memory. See in the .Sx LOADER TUNABLES section above. .Pp +At least the 8821CE and 8822BE chipsets have trouble associating, +which seems to be due to the software scan fallback, the chandef emulation, +and net80211 interactions, along with a 6s timeout observed in the driver. +.Pp While .Nm supports 802.11a/b/g/n/ac modes, diff --git a/share/man/man4/rtw89.4 b/share/man/man4/rtw89.4 index 8c7132673db5..95d75781f995 100644 --- a/share/man/man4/rtw89.4 +++ b/share/man/man4/rtw89.4 @@ -1,9 +1,13 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2023-2025 Bjoern A. Zeeb +.\" Copyright (c) 2026 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb +.\" under sponsorship from the FreeBSD Foundation. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd June 13, 2025 +.Dd May 15, 2026 .Dt RTW89 4 .Os .Sh NAME @@ -28,7 +32,7 @@ It is not possible to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Realtek's Linux rtw89 driver. +driver is derived from Realtek's Linux rtw89 driver based on Linux version 7.0. .Pp This driver requires firmware to be loaded before it will work. The package @@ -45,10 +49,9 @@ One should use to install the correct firmware package. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -68,6 +71,8 @@ Realtek 8852AE Wi-Fi 6 (RTL8852AE) .It Realtek 8852BE Wi-Fi 6 (RTL8852BE) .It +Realtek 8852BTE Wi-Fi 6 (RTL8852BE-VT) +.It Realtek 8852CE Wi-Fi 6E (RTL8852CE) .It Realtek 8922AE Wi-Fi 7 (RTL8922AE) @@ -86,6 +91,8 @@ for network buffer memory to the lower 32bit of physical memory and make the driver work. .El .Sh SEE ALSO +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -105,6 +112,11 @@ See in the .Sx LOADER TUNABLES section above. .Pp +We observe various stability issues leading up to driver crashes and +kernel panics with the current set of chipsets at least in combination +with +.Xr linuxkpi_wlan 4 . +.Pp While .Nm supports 802.11a/b/g/n/ac/ax modes, From nobody Tue May 19 00:43:35 2026 X-Original-To: dev-commits-src-branches@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 4gKGBH30KXz6d7dV for ; Tue, 19 May 2026 00:43: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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBH1ZZdz4DLV for ; Tue, 19 May 2026 00:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151415; 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=WykWasZNk1hWy/uFw5O/ArKSvvo46wmlqIBqKata8Yw=; b=shNq7kE0ox6d8hb1/itwZDTNzyYYvX1ijfeZpUc6hAZFm4kCcRr3lqwnv7fa0IaVng6TQc n/Mukr5d6CzuuBp1mU52gmXus913KMeYxeLjml/ISbBXIXoBTMW0LYt9NV+ApxNj05NV2/ Jm/9kCu75totJYQxHbRwJ1zDIlexQ/zyG989tb4+tY9IZqHpNbckyxuJ2qst/6fRGHiWE1 /YULMp+RUaYKWCbYhBHNfibbHYx1/60tr+jzZluU2blCjAyF4ic7IO7hZEdViO7eF3jPzT Od4E93qOUzcMTvbXIFQJSYFmtBqIkgfKDtPZZCwJhPgmx+R4mHeeNH5gEBx2zA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151415; a=rsa-sha256; cv=none; b=oSKHVvOiDryT0N6HBrXh1bmf7AAKBoICJpIaYwIAv/BvGe081fqklkJsR6U1qOK4imM475 sSbJ0SasJHSlHR6au/xyiF3skeBCaSu5602ITVn2SENniZ2ErkOc3shkmpTQM5qPXWNkh+ xV3kgvFNAskoQ1loFABQ8udJq+vucLjIT1MGYVde3qxuZkiiaO6vDOp5Eh72sgY6jesG68 n3LNWhyoz31KPeP1DzsmN8dDJV9QB9+WEt/Z7dtsumIWYDCIadFAiAh8BDjH83tqA1s/cg LL5ylHFt7gYAE4R+CseqWo3JSOEmr3Uk03GX6OsbB+OO4Cf57eE6/5N68e+M8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151415; 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=WykWasZNk1hWy/uFw5O/ArKSvvo46wmlqIBqKata8Yw=; b=sFJ9zgwKdUuIZw4b5Ju8oy3nnQmNe97sUxHhd0gHzQjcBaTUMnskzOZZXukKOpHWnXnF06 qgdAnunct+6TkIP+VW1N80Z0/cu2gsNI75aJ5JOsk42uYG7w2bqUhY1dK8pO/u8ppNJZgq Qzb9ktRMmcV8h7/7OKkzNCFDqADXs6KB/TPuDsKVnGwz+X1Y//DszF5cIcipO93ODY9DVO UH4LxhQI+dlFIbEU1E3EqpqTFI3PFr2gSTYfORwzmpVxwgVx4LqLOxSlGSYhkGSfR1sTpq UI8tfGBYmF53Q+gztj5quAqYyKLVCbI8bkS3KFxGgR4wuo37n5aB0EM5DsBVLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBH13fWzs5Q for ; Tue, 19 May 2026 00:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26158 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: db505345e32e - stable/15 - rtw89: firmware: extend script to extract fwget entries List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: db505345e32e1d5c9ffa2ed75b688a88dbe5c59e Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:35 +0000 Message-Id: <6a0bb237.26158.7a80922c@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=db505345e32e1d5c9ffa2ed75b688a88dbe5c59e commit db505345e32e1d5c9ffa2ed75b688a88dbe5c59e Author: Bjoern A. Zeeb AuthorDate: 2026-05-17 23:16:33 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:14 +0000 rtw89: firmware: extend script to extract fwget entries The so far so consistent (file)names got an outlier so add the one character longer pattern as well to catch that. Sponsored by: The FreeBSD Foundation (cherry picked from commit 56460a6a420a066ea6eeadc3725bfdaf49f8142b) --- sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh b/sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh index 4ee0ab7a6fd1..a1f655f7dc71 100644 --- a/sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh +++ b/sys/contrib/dev/rtw89/zzz_fw_ports_fwget.sh @@ -51,7 +51,7 @@ fi # list_fw() { - for f in `ls -1 rtw?????.c rtw?????e.c`; do + for f in `ls -1 rtw?????.c rtw?????e.c rtw?????te.c`; do l=$(cpp ${f} 2>&1 | awk '/^MODULE_FIRMWARE\(/ { gsub(/"/, ""); gsub("__stringify\\(", ""); gsub("\\);$", ""); gsub("\\)", ""); gsub("^MODULE_FIRMWARE\\(", ""); gsub(" ", ""); printf "%s\n", $0; }' | sort -n | uniq) if test "${l}" == ""; then @@ -134,7 +134,7 @@ fi fwgetfile=$(mktemp -p /tmp ${DRIVER}-fwget.XXXXXX) :> ${fwgetfile} -for f in `ls -1 rtw?????.c rtw?????e.c`; do +for f in `ls -1 rtw?????.c rtw?????e.c rtw?????te.c`; do # Ports FLAVOR names are [a-z0-9_]. If needed add more mangling magic here. n=${f%.c}; From nobody Tue May 19 00:43:36 2026 X-Original-To: dev-commits-src-branches@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 4gKGBK0GZdz6d844 for ; Tue, 19 May 2026 00:43:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBJ2SgXz4DNs for ; Tue, 19 May 2026 00:43:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151416; 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=JmpcS8pSeulXXsstHWLLilqaH2Q2d+b+mpl/VBbG4i8=; b=qizdSv7utGaCasduM/MTosB+UDrirpleIBrZ5y7as8WTgnGAopDVmIwvPsm/7TUUEEl2NU NuNefEsaWx3ul+kE5uIW17+JD4Hu93IylAzIQS33H7Y45vIRzKNVcYjYIOV3KWRmFvAYz/ 9hRMDUt9Sqm+ECporeifa4EIInPb70FWaQjnveAY3GjhiomfdBZZv2EpDuAMbpTPsRz5wv Qp5VxGrj2BJ0kuXZNNFL3PdrLrXBHYVrJQXHdHLDvX+TPoVatWm85Z32g7cKlRrNHK7Yk7 xno1XOp1nX8PbtoXgxp0Hh2g/aztRq0s7DWaKPpNRikDZ2ucNeFkniQUWbBtaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151416; a=rsa-sha256; cv=none; b=FJ5dovGx9WP4ljvNvev+t8s7mSk1aCO0A5soKv874TovaxxSiTKKrUldFUEJuK3vxGir4i xOkh4b9RNJ3LAhieLNAiUhK/+HzNjbb01GpW2OfFo5QtO1DdcqOpIY8Z8shhXqUnO3pTjL UDVF7l5w/s7Y6o4O1X2T/4Ke6WcCuctisldl+dxntbLMRgYwgk+s1cdlJjHtAudPopyqql ho1H2T2HA3Suc+T1hm6PDciGLOfn2xj/cbODTuPqRzRJCxQYhRKcearDmaGffgew8lq/tE 2QIwrJ/P/5xyJm9Rkm0EhEVFraDCbgNJ11D2DtM+hryuMLxZZZkhe6HMnw7zeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151416; 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=JmpcS8pSeulXXsstHWLLilqaH2Q2d+b+mpl/VBbG4i8=; b=t8UsCx377KOgu5BEuBqnl5JvlOAS19exNklbCoM2WRE5416vv0pzljUbp8BNe6oXGHS5W1 31g8iElkCKYb82F+t5YLpJdxmMzI4SDRjL4gBsxJZoaxkfMILyzmyFToZ++LNY4phArwq4 uRs1PDoor/l8Rx+zuLiO1GdN0U23fDOlsKZEDQl0h9U51ivh68WTUWkEtbBO/MhxiUXgPC EV12lS7kEAvv5p1hE3GD5KPduCkQqtlfr1P4dDhNyoPquqoPgnpKQFQ9x/MO7O4/8CQTY+ uUCf+lLcm/uqyjGKC5uW2SweOD9xZgnZIpENyOYy7GG70RgEyicC+rO+Lvg39g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBJ1wQNzs2k for ; Tue, 19 May 2026 00:43:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25df4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 31c97d270796 - stable/15 - iwlwifi: firmware: reduce script to extract fwget information List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 31c97d270796ef0626b2cd9e979553ebc61007f1 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:36 +0000 Message-Id: <6a0bb238.25df4.23dea94f@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=31c97d270796ef0626b2cd9e979553ebc61007f1 commit 31c97d270796ef0626b2cd9e979553ebc61007f1 Author: Bjoern A. Zeeb AuthorDate: 2026-05-17 23:25:21 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:14 +0000 iwlwifi: firmware: reduce script to extract fwget information Due to driver changes it is no longer feasible to extract the full PCI ID / firmware / card type information in one go as we used to be able to. We have already changed the way we extract firmware information for ports and marked the iwlwififw.4 man page as obsolete. Reduce the script to simply extarct the fwget(8) information and, compared to the old times, sort each section so diffs will be easier to see in the future. This was particular helpful this time to make sure we do not lose entries with the change of technique. We also keep the script in the best perl spirit to do the job but not to win a price, especially given it seems we have to change matters every (other) year. Given we can no longer extract firmware information for the PCI IDs, we need to "manually" check against the ports that names match. Ideally we will simplify things for everything "mld-only" one day to only have a single firmware package for these (even if size increases slightly). Sponsored by: The FreeBSD Foundation (cherry picked from commit 4f6c60c3d3c44aa3df23f280f2fe247f7a930efa) --- sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh | 444 +++++--------------------- 1 file changed, 85 insertions(+), 359 deletions(-) diff --git a/sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh b/sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh index afbd52b9fa40..c817aff071bf 100644 --- a/sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh +++ b/sys/contrib/dev/iwlwifi/zzz_fw_ports_fwget.sh @@ -2,376 +2,102 @@ #- # SPDX-License-Identifier: BSD-2-Clause # -# Copyright (c) 2024-2025 The FreeBSD Foundation +# Copyright (c) 2024-2026 The FreeBSD Foundation # # This software was developed by Björn Zeeb # under sponsorship from the FreeBSD Foundation. # # This is neither efficient nor elegant but we need it few times -# a year and it does the job. -# -# -# USAGE: please check out the correct tag/hash for ports in the -# linux-firmware.git repository you point this script to. -# -# USAGE: please make sure to pre-load if_iwlwifi.ko so that we -# have access to the sysctl. You do not need to have a supported -# card in the system. -# In case that is not possible you can save the results to a file -# and provide that locally. It will be renamed at the end of the -# run. +# a year and it does the job. And it turns out there is a lot of +# churn so keep the solutions quick and dirty. # set -e -# sysctl -n compat.linuxkpi.iwlwifi_pci_ids_name > iwlwifi_pci_ids_name.txt -PCI_IDS_FILE=iwlwifi_pci_ids_name.txt -D_PCI_IDS_FILE=`pwd`/${PCI_IDS_FILE} - -################################################################################ -# -# Check pre-reqs -# -if [ $# -ne 1 ]; then - printf "USAGE: %s /path/to/linux-firmware.git\n" $0 >&2 - exit 1 -fi - -if [ ! -d cfg/ -o ! -e cfg/bz.c ]; then - printf "ERROR: run from iwlwifi driver directory; no cfg/bz.c here\n" >&2 - exit 1 -fi - -LFWDIR=${1} -if test ! -d ${LFWDIR} -o ! -e ${LFWDIR}/WHENCE; then - printf "ERROR: cannot find linux-firmware.git at '%s'\n" ${LFWDIR} >&2 - exit 1 -fi - -if test -r ${D_PCI_IDS_FILE}; then - printf "NOTICE: using proovided ${D_PCI_IDS_FILE}\n" >&2 -else - - kldstat -n if_iwlwifi.ko > /dev/null 2>&1 - rc=$? - case ${rc} in - 0) ;; - *) printf "ERROR: please pre-load if_iwlwifi.ko (you do not need a device)\n" >&2 - exit 1 - ;; - esac - - sysctl -N compat.linuxkpi.iwlwifi_pci_ids_name > /dev/null 2>&1 - rc=$? - case ${rc} in - 0) sysctl -n compat.linuxkpi.iwlwifi_pci_ids_name > ${D_PCI_IDS_FILE} - ;; - *) printf "ERROR: cannot get compat.linuxkpi.iwlwifi_pci_ids_name\n" >&2 - exit 1 - ;; - esac -fi - -# We need to be in the config directory for simplicity. -cd cfg - -################################################################################ - -# Get a list of all device/firmware flavors as seen/supported by the driver. -flavors=$(awk -F\\t '{ - if (/^$/) { next; } - if ($5 == "undefined") { next; } - print tolower($5); -}' ${D_PCI_IDS_FILE} | sort -V | uniq) - -################################################################################ -# -# Helper functions. -# - -# -# This uses a hack (cpp) to expand some macros for us and parses out the result -# which is the firmware name with the maximum FW version supported for that -# firmware. -# We then go and check that said firmware actually exists in linux-firmware.git. -# We try to find a lower version number if the "MAX" version given from the cpp -# output does not (yet) publicly exist. -# .pnvm files are now properly listed as MODULE_FIRMWARE so no more magic needed -# for them. -# Given the filename matches a "flavor" at this point, we then group all the -# available firmware files from this flavor together and print it as a ports -# Makefile variable. -# -# We also print some other meta-data that callers will filter out depending on -# their needs to generate other lists and mappings. -# +unsortedf=$(mktemp -p /tmp iwlwifi-fwget-unsorted.XXXXXX) +sortedf=$(mktemp -p /tmp iwlwifi-fwget-sorted.XXXXXX) +:> ${unsortedf} +:> ${sortedf} -# For each get a list of firmware names we know. -list_fw() -{ - for f in ${flavors}; do - #echo "==> ${f}" - #awk -F \\t -v flav=${f} '{ - # if ($5 != flav) { next; } - # # No firmwre; skip. - # if ($3 ~ /^$/) { next; } - # if ($3 == "(null)") { next; }; - # print $3; - #}' ${D_PCI_IDS_FILE} | sort | uniq - - # For now the flavor names and the file names are 1:1 which makes this - # a lot easier (given some sysctl/file entries are not able to list - # their firmware but we know their "flavor". - l=$(cpp ${f}.c 2>&1 | awk ' - /^MODULE_FIRMWARE\(/ { - gsub(/"/, ""); - gsub("__stringify\\(", ""); - gsub("\\);$", ""); - gsub("\\)", ""); - gsub("^MODULE_FIRMWARE\\(", ""); - gsub(" ", ""); - printf "%s\n", $0; - }' | sort -V | uniq) - #echo "${l}" - - lx="" - for fx in ${l}; do - if test -e ${LFWDIR}/${fx}; then - lx="${lx} ${fx}" - - # Check for matching .pnvm file. - # They are now properly listed in MODULE_FIRMWARE() as well so no more magic. - #px=$(echo ${fx} | awk '{ gsub("-[[:digit:]]*.ucode", ".pnvm"); print; }') - #if test -e ${LFWDIR}/${px}; then - # lx="${lx} ${px}" - #fi - else - case "${fx}" in - *.pnvm) - printf "NOTICE: pnvm file not found for '%s'\n" ${fx} >&2 - ;; - *.ucode) - # Try lowering the version number. - bn=$(echo ${fx} | awk '{ gsub("-[[:digit:]]*.ucode", ""); print; }') - vn=$(echo ${fx} | awk '{ gsub(".ucode$", ""); gsub("^.*-", ""); print; }') - #echo "BN ${bn} VN ${vn}" - # Single digits are not zero-padded so just ${i} will be fine. - for i in `jot ${vn} ${vn} 1`; do - xn="${bn}-${i}.ucode" - if test -e ${LFWDIR}/${xn}; then - lx="${lx} ${xn}" - break - fi - done - ;; - *) - printf "NOTICE: file for unknown firmware type not found for '%s'\n" ${fx} >&2 - ;; - esac - fi - done - - # Get a count so we can automatically add \\ apart from the last line. - fn=$(echo "${lx}" | wc -w | awk '{ print $1 }') - - #echo "==> ${f} :: ${fn} :: ${lx}" - - if test ${fn} -gt 0; then - - # Ports FLAVOR names are [a-z0-9_]. If needed add more mangling magic here. - flav=`echo ${f} | awk '{ printf "%s", tolower($0); }'` - - echo "FWS ${flav}" - echo "DISTFILES_${flav}= \\" - for fz in ${lx}; do echo "${fz}"; done | \ - awk -v fn=$fn -v fwg=${flav} '{ - if (FNR == fn) { x="" } else { x=" \\" }; - printf "\t%s${DISTURL_SUFFIX}%s\n", $0, x; - fwn=$0; - gsub("-[[:digit:]]*\.ucode$", "", fwn); - printf "FWGET %s %s\n", fwg, fwn; - }' - fi - - done +cpp -DCONFIG_IWLMVM -DCONFIG_IWLMLD \ + -I../../../compat/linuxkpi/common/include pcie/drv.c 2> /dev/null | \ +grep __builtin_choose_expr | \ +awk 'BEGIN { + lt="" } - -################################################################################ -# -# Generate the PORTS file template. -# - -fwsl=$(list_fw | grep ^FWS | awk '{ print $2 }') -# Get a count so we can automatically add \\ apart from the last line. -fn=$(echo "${fwsl}" | wc -w | awk '{ print $1 }') - -if test ${fn} -gt 0; then - - portsfile=$(mktemp -p /tmp iwlwifi-fwport.XXXXXX) - - :> ${portsfile} - ( - echo "FWSUBS= \\" - for sz in ${fwsl}; do echo "${sz}"; done | \ - awk -v fn=$fn '{ if (FNR == fn) { x="" } else { x=" \\" }; printf "\t%s%s\n", $0, x; }' - - echo - echo "# Do not prefix with empty \${FWSUBDIR}/!" - list_fw | grep -v ^FWS | grep -v ^FWGET - - echo - echo "DISTFILES_\${FWDRV}= \\" - for sz in ${fwsl}; do echo "${sz}"; done | \ - awk -v fn=$fn '{ if (FNR == fn) { x="" } else { x=" \\" }; printf "\t${DISTFILES_%s}%s\n", $0, x; }' - echo "DISTFILES_\${FWDRV}_lic=" - ) >> ${portsfile} - - printf "INFO: wifi-firmware-iwlwifi-kmod template at %s\n" ${portsfile} >&2 -fi - -################################################################################ -# -# Generate a temporary firmware -> flavor mapping table for fwget generation. -# - -mapfile=$(mktemp -p /tmp iwlwifi-mapfile.XXXXXX) -:> ${mapfile} - -fwgl=$(list_fw | grep FWGET) -# Get a count so we can automatically add \\ apart from the last line. -fn=$(echo "${fwgl}" | wc -w | awk '{ print $1 }') -if test ${fn} -gt 0; then - - ( - list_fw | grep FWGET | grep -v '.pnvm' | \ - while read x flav fw; do - printf "%s\t%s\n" ${fw} ${flav} - done | \ - sort -n | uniq - ) >> ${mapfile} -fi - -################################################################################ -# -# Try to generate the PCI ID -> port flavor mapping -# -# We get PCI ID, description, firmware base from the sysctl and can work our -# way back from fw name base to flavor via the mapping table file. -# - -fwgetfile=$(mktemp -p /tmp iwlwifi-fwget.XXXXXX) -:> ${fwgetfile} - -awk 'BEGIN { FS="\t"; } { - # Skip empty lines. - if (/^$/) { next; } - # Skip "undefined" flavors as we have no idea what chipset. - if ($5 == "undefined") { next; } - - # No firmware name; do not skip! - # All we need is the flavor, which we now always have. - #if ($3 == "(null)") { next; }; - - FLAV=tolower($5); - - split($1, i, "/"); - gsub("\t.*$", "", i[4]); - - # Not an Intel Vednor ID; skip. - if (i[1] != "0x8086") { next; }; - - # No defined device ID; skip. - if (i[2] == "0xffff") { next; }; - - # Adjust wildcards or a ill-printed 0. - if (i[3] == "0xffffffff") { i[3] = "*"; }; - if (i[4] == "000000") { i[4] = "0x0000"; }; - if (i[4] == "0xffffffff") { i[4] = "*"; }; - if (i[4] == "0xffff") { i[4] = "*"; }; - - printf "%s\t%s/%s/%s\n", FLAV, i[2], i[3], i[4]; -}' ${D_PCI_IDS_FILE} | \ -sort -V | uniq | \ -while read flav match; do - - #flav=$(awk -v fw=$fw '{ if ($1 == fw) { print $2; } }' ${mapfile}) - #echo "${fw} :: ${match} :: ${flav}" - - if test "${flav}" != ""; then - printf "${flav}\t${match}\t${flav}\n" - else - #echo "NO FLAV ${fw} ${match}" >&2 - fi - -done | \ -awk 'BEGIN { FS="\t"; FWN=""; } -{ - FW=$1; - if (FWN != FW) { printf "\n\t# %s\n", FW; FWN=FW; }; - - printf "\t%s) addpkg \"wifi-firmware-iwlwifi-kmod-%s\"; return 1 ;;\n", $2, $3; -} END { - printf "\n"; -}' >> ${fwgetfile} - -printf "INFO: fwget pci_network_intel template at %s\n" ${fwgetfile} >&2 - -################################################################################ -# -# Try to build the iwlwififw.4 bits too. -# - -dl=$(grep -v ^$ ${D_PCI_IDS_FILE} | uniq | \ -awk ' -{ - # Sourt out duplicate lines. - if (dup[$0]++) { next; } - - split($0, a, "\t"); - ids=a[1]; - name=a[2]; - fw=a[3]; - flavor=a[5]; - - #my ($v, $d, $sv, $sd) = split("/", $ids); - split(ids, i, "/"); - gsub("^0xffff+", "any", i[1]); - gsub("^0xffff+", "any", i[2]); - gsub("^0xffff+", "any", i[3]); - gsub("^0xffff+", "any", i[4]); - - if (name == "") { name="(unknown)"; } - if (fw == "") { fw="(unknown)"; } - if (flavor == "") { flavor="iwlwifi"; } - if (flavor == "undefined") { flavor="iwlwifi"; } - - # iwlwififw.4 - printf ".It \"\"\n.It %s\n.It %s Ta %s Ta %s Ta %s Ta %s Ta %s\n", name, i[1], i[2], i[3], i[4], flavor, fw; - - # wiki - # XXX TODO possibly quote some in `` to avoid automatic linking? - # || PCI IDs || Chipset Name || Firmware prefix || Comment || - printf "WIKI || %s / %s / %s / %s || %s || %s || ||\n", i[1], i[2], i[3], i[4], name, fw; - if ((FNR % 25) == 0) { printf "WIKI \n"; } -}') - -manfwfile=$(mktemp -p /tmp iwlwifi-iwlwififw4.XXXXXX) -:> ${manfwfile} -echo "${dl}" | grep -v ^WIKI >> ${manfwfile} -printf "INFO: share/man/man4/iwlwififw.4 template at %s\n" ${manfwfile} >&2 - -wikifile=$(mktemp -p /tmp iwlwifi-wiki.XXXXXX) -:> ${wikifile} -echo "${dl}" | awk '/^WIKI / { gsub("^WIKI ", ""); print; }' >> ${wikifile} -printf "INFO: WIKI template at %s\n" ${wikifile} >&2 - - -################################################################################ -# -# Cleanup -# -rm ${mapfile} -mv -f ${D_PCI_IDS_FILE} ${D_PCI_IDS_FILE}.old + if (!/.vendor = 0x8086,/) { + printf "ERROR: %s\n", $0; + exit + } + + d=$6; + sv=$9; + sd=$12; + t=$15; + + + gsub("\\(", "", d); + gsub(")", "", d); + gsub(",", "", d); + + gsub("\\(", "", sv); + gsub(")", "", sv); + gsub(",", "", sv); + + gsub("\\(", "", sd); + gsub(")", "", sd); + gsub(",", "", sd); + + gsub("-1U", "*", d); + gsub("-1U", "*", sv); + gsub("-1U", "*", sd); + + gsub("^.*\\(", "", t); + gsub(")", "", t); + gsub(",", "", t); + gsub("^iwl_", "", t); + gsub("^iwl", "", t); + gsub("_mac_cfg$", "", t); + gsub("_.*$", "", t); + + t=tolower(t) + if (t != lt) { + printf "\n\t# %s\n", t; + lt = t; + } + if (t == "9560") { t = "9000"; } + if (t == "ax200") { t = "22000"; } + if (t == "qu") { t = "22000"; } + if (t == "cc") { t = "22000"; } + if (t == "ma") { t = "ax210"; } + if (t == "so") { t = "ax210"; } + if (t == "ty") { t = "ax210"; } + if (t == "gl") { t = "bz"; } + if (t != "7000" && t != "8000" && t != "9000" && t != "22000" && t != "ax210" && t != "bz" && t != "sc") { + printf "ERROR: invalid flavor '%s': %s\n", t, $0; + exit + } + + printf "\t%s/%s/%s) addpkg \"wifi-firmware-iwlwifi-kmod-%s\"; return 1 ;;\n", tolower(d), tolower(sv), tolower(sd), t; + +}' > ${unsortedf} + +( for f in \ + 7000 \ + 8000 \ + 9000 \ + 22000 \ + ax210 \ + bz \ + sc ; do + + printf "\n\t# %s\n" ${f} + grep "wifi-firmware-iwlwifi-kmod-${f}" ${unsortedf} | sort -n + +done; echo ) > ${sortedf} + +rm -f ${unsortedf} +printf "INFO: fwget(8) template at %s\n" ${sortedf} >&2 # end From nobody Tue May 19 00:43:38 2026 X-Original-To: dev-commits-src-branches@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 4gKGBL6lFDz6d7h6 for ; Tue, 19 May 2026 00:43:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBL4Wtfz4DQX for ; Tue, 19 May 2026 00:43:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151418; 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=lQeqeq7vjunFF4gh+A/pvc39Ag/NO/6VLd4hf9qrncw=; b=TeN+9cbMugOkorOA/TYSIHp2KjVpEKYNLIrU6KzF0RsTSqPuzKlzhYqrEPTjIsJjgrTtDx cyHrX5iYqPv9YupnNW6DR0J5o8pZApPK12u3NC/rXCrcWFs3iuowCMNI6WvK/CCNru7/Sj kbZzCsQ/hzhFQoM8MloCAwS+6JKgYUjAye6O2L5PD848A19Qt/OPIVdvE/qLPYtfc80zST G6CI7ThD/xBmy1j4vpZIXceLWm52zc2iJf/DZWBftaSSVr3WE4G3uP2uaQZjMxdBwmJ25f L3/XWPgb6GC5KT5T8klTb4/MKnHPa18o6I/RtrebI5YChZD4vszcEc/gcyzsJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151418; a=rsa-sha256; cv=none; b=rgk3atjDeAK2ROF5NDqcyZgt9Fb27THtl+W/mxl3tgCyIk+8v0KuSHX9/uTUIptsVx17PZ f/2x5vlT9Vi9QdmLglV3v8n1p2NixXUFc8wN841bTEkEIriqGP1tfII3jLHT4ADpNm2J6J OceRo8tfYOrQelCycjwMzsLFffECMSCQIWxaHMA/RVoJNOM3CJzMR2+/oIC/OFmn5qv09j QCJq8tkXiwt5CGtsnoq2DZA2NZlT7PIjVrNKpf34kxiFByMMfUehrJw4sURGiFmy1P1HJg TxlXvFxP9kmS3aiLaF0sD3j2vRVi3qamWxbKexhcm/rd4e5n/5Rh/48NQPHSaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151418; 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=lQeqeq7vjunFF4gh+A/pvc39Ag/NO/6VLd4hf9qrncw=; b=peLOCCsHIz4VlS0+FHQXjT1UKdtZi6cLNOdHzrY+FdM5dphdaXIuTV17OhLtixoAOUMT9G /CQPswhKZlxgDEHe0sUm7Z6aOnR5Bgs2b/jwzCMW6ejQE4hLyvsbMQKS7hRF1TRAVecLxI AfSS0B0mIyyMjbAAPM4pjH0X+97Q/w9Orz/5bhk8rHLlRRfXJ8Q54xATCyMP2dkeQX2vff agnYE9CLy7L768hNv1PaW6V0PplJGVDfn61HLwCgzi1CsQYmQ6X/hvQaR2xBaSzUotIjAa fCJf4D8xgaeZdfvTf8toBS9rDvJDUy+esNGaS7Hjhl80EiTUl/XKzWvQb7KvyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBL3XZYzrjG for ; Tue, 19 May 2026 00:43:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26aa1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7e74f27a5af8 - stable/15 - wtap: use typed rssi and noise floor values List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7e74f27a5af86c0e2ff23f8ca52a226b8907865c Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:38 +0000 Message-Id: <6a0bb23a.26aa1.3b95cf72@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7e74f27a5af86c0e2ff23f8ca52a226b8907865c commit 7e74f27a5af86c0e2ff23f8ca52a226b8907865c Author: Bjoern A. Zeeb AuthorDate: 2026-05-13 21:14:39 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:15 +0000 wtap: use typed rssi and noise floor values Adjust the rssi and nf arguments to typed int8_t and adjust the maths for rssi to be consistant with what net80211 expects. Sponsored by: The FreeBSD Foundation Reviewed by: lwhsu, adrian Differential Revision: https://reviews.freebsd.org/D57020 (cherry picked from commit d201e4e8491901d1de6bcaeb581a0bf958bf86f2) --- sys/dev/wtap/if_wtap.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sys/dev/wtap/if_wtap.c b/sys/dev/wtap/if_wtap.c index dd332c538c8f..376b63e38f2b 100644 --- a/sys/dev/wtap/if_wtap.c +++ b/sys/dev/wtap/if_wtap.c @@ -495,6 +495,7 @@ wtap_rx_proc(void *arg, int npending) struct mbuf *m; struct ieee80211_node *ni; struct wtap_buf *bf; + int8_t rssi, nf; #if 0 DWTAP_PRINTF("%s\n", __func__); @@ -528,6 +529,15 @@ wtap_rx_proc(void *arg, int npending) ieee80211_dump_pkt(ic, mtod(m, caddr_t), 0,0,0); #endif + /* + * Use arbitrary but sane values, and do the correct conversion + * for net80211 using 0.5 dBm values relative to the noise floor. + */ + nf = -95; + rssi = 42; + rssi -= nf; + rssi *= 2; + /* * Locate the node for sender, track state, and then * pass the (referenced) node up to the 802.11 layer @@ -540,10 +550,10 @@ wtap_rx_proc(void *arg, int npending) /* * Sending station is known, dispatch directly. */ - ieee80211_input(ni, m, 1<<7, 10); + ieee80211_input(ni, m, rssi, nf); ieee80211_free_node(ni); } else { - ieee80211_input_all(ic, m, 1<<7, 10); + ieee80211_input_all(ic, m, rssi, nf); } /* The mbufs are freed by the Net80211 stack */ From nobody Tue May 19 00:43:37 2026 X-Original-To: dev-commits-src-branches@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 4gKGBL2ZqQz6d88y for ; Tue, 19 May 2026 00:43:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBK4dhYz4DM0 for ; Tue, 19 May 2026 00:43:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151417; 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=5qLRtpFJ2HJI38EGL3hvaWHnL1Zk0jWGYanepa0NT+Q=; b=GDvRZEVRlmek+savQSXOdF/9VLn/pKHy3ZWSZ3NOnptm1BvYbGwGK/p74gBHGazS5I0D/e x1ws3anmpi1CUgX6uTOeDOaj3oWhM1LEIdAorr4PKhUyC3KqItk5jPtO5lVTn+p2DwydTk EW9Gi645GN1h5YZbR2j4zClUnD4lGLqdyAfecy0Pp/hQISdLBXIEsUV2OqPQXIVqn9ZW2u FdogU0i4UMDNTkwgOUlrrY13lJHaLJtpZy1k7iz+VUhXaSj6okIBlULtu6T6ce2uEWF/VX cWSn9wIX7q5HA+r33ggdS6RxJG99/6kCw/CDCog9SKDnKSSLFPOCUsyDYjyY7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151417; a=rsa-sha256; cv=none; b=ASFp34Mh/ukvR2qv3V2YIbIkKK+8qh/AQMibDwUDnETYYRX5z2Qqwmm9HDmXrhgxF9j69Z K/6YTb+/5uYOxa8SupPZMweLwBPkwcdNQ+3bka6yfevJHAdVgYpySwQW6YA1LykmjTrL6n 1QCE66IyH5P9TsHQNeq4cG4PApLsP+VqvvJMvs/SeDtlkzl4cEfwBLU/LSDrXvLEDsoTaI sVfEmReIDkdeUjKuMyZxQNGb4JEwsE0ajTJO33MgjQb5IkIt9XiyU0u3Zsz20fepFVD+rV 7ZWt5g6KZXkpcNljoOTynhQzUdAJdU38M2uOMDXuuQllr9wcwWjsBKHMbwXyYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151417; 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=5qLRtpFJ2HJI38EGL3hvaWHnL1Zk0jWGYanepa0NT+Q=; b=wneBD+utx65E8BvhFmnBQgynxjxRVfxWV7NrkucKkIitAm7dkFSqcVZtKrRlgeXyRNXzm2 jY352g3tWWqoU0UGavnMg/esJufJ+ElkVqBexskXhk+EhaDxJDsXHbOZQtOnzb0pQl1Hga hXNfgE7EPLKSe8q1wcOM/awYserTI5ACmzU+68qdJihRIIn9nu60LpA+8mt91GnrkcM0ux G7dmitIiFkJjtLj8ImFQxz6TIoPkkurjdBp2IGN4enSASDtJxDgxmUGsPFJCOgV/ttKKsc I//zSZCu3G8qvg0lP3o6+Jusux64yhFd6Y7yDGmuxKvbaFRTD/kpQ6ZD8tn9gA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBK2m7czs2l for ; Tue, 19 May 2026 00:43:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25a72 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3f702b299aa1 - stable/15 - fwget: update realtek and intel pci entries List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3f702b299aa1d7625ee0e520c827e73e355775c9 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:37 +0000 Message-Id: <6a0bb239.25a72.3093ad29@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3f702b299aa1d7625ee0e520c827e73e355775c9 commit 3f702b299aa1d7625ee0e520c827e73e355775c9 Author: Bjoern A. Zeeb AuthorDate: 2026-05-17 23:10:15 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:15 +0000 fwget: update realtek and intel pci entries For Realtek we only add new entries. For Intel the old way of extracting IDs from the driver no longer works. The new list is shortened as we drop more specific entries which were already covered by wildcard entries. The new lists are also sorted within the groups. There are 4 entries the new driver no longer carries but are still present in older versions, so we keep them manually. Sponsored by: The FreeBSD Foundation (cherry picked from commit ca67cfa5237f7ac537ca8611054b5af2098e2d86) --- usr.sbin/fwget/pci/pci_network_intel | 246 ++++++++++----------------------- usr.sbin/fwget/pci/pci_network_realtek | 5 +- 2 files changed, 75 insertions(+), 176 deletions(-) diff --git a/usr.sbin/fwget/pci/pci_network_intel b/usr.sbin/fwget/pci/pci_network_intel index 02d842a2d075..c088d3a57f83 100644 --- a/usr.sbin/fwget/pci/pci_network_intel +++ b/usr.sbin/fwget/pci/pci_network_intel @@ -1,7 +1,7 @@ #- # SPDX-License-Identifier: BSD-2-Clause # -# Copyright (c) 2024 The FreeBSD Foundation +# Copyright (c) 2024-2026 The FreeBSD Foundation # # This software was developed by Björn Zeeb # under sponsorship from the FreeBSD Foundation. @@ -26,18 +26,11 @@ pci_network_intel_iwlwifi() ### >>> # 7000 - 0x08b1/*/0x4a6c) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4a6e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4a70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4c60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4c70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x402a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x406a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x446a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x486e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x402a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x406a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -46,20 +39,27 @@ pci_network_intel_iwlwifi() 0x08b1/*/0x4420) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4460) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4462) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x446a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4472) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4560) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4570) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x486e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4870) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a6c) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a6e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4c60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4c70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0xc02a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0xc06a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0xc02a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0xc06a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -77,18 +77,18 @@ pci_network_intel_iwlwifi() 0x08b1/*/0xc770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xcc60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xcc70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b2/*/0x426a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b2/*/0x426a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4360) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b2/*/0xc26a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b2/*/0xc26a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -116,23 +116,14 @@ pci_network_intel_iwlwifi() 0x08b4/*/0x8270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b4/*/0x8272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b4/*/0x8370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2050) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2150) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x5c10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x5f10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x9e10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x500a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x502a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x900a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5002) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x500a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x502a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5090) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5100) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5102) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -145,7 +136,10 @@ pci_network_intel_iwlwifi() 0x095a/*/0x5490) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5590) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x5c10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x5f10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x900a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -153,9 +147,10 @@ pci_network_intel_iwlwifi() 0x095a/*/0x9400) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9410) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095b/*/0x520a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x9e10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5202) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095b/*/0x520a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5212) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5290) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -164,6 +159,11 @@ pci_network_intel_iwlwifi() 0x095b/*/0x9200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x9210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x9310) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2050) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2150) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -177,10 +177,8 @@ pci_network_intel_iwlwifi() # 8000 0x24f3/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0x01f0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0004) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0x10b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0044) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -188,6 +186,7 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x0130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0x01f0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0250) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0810) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0850) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -197,6 +196,7 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0x10b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -216,11 +216,13 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x9150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xb0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xc030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0xd0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xd010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xd030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xd050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xd0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x1030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x8030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -229,10 +231,7 @@ pci_network_intel_iwlwifi() 0x24f4/*/0xd030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f5/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f6/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x3e01) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x3e02) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x10d0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -247,8 +246,13 @@ pci_network_intel_iwlwifi() 0x24fd/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x10d0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x1431) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x1432) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x3e01) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x3e02) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -258,201 +262,93 @@ pci_network_intel_iwlwifi() 0x24fd/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; # 9000 - 0x9df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x30dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x31dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x2526/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0x271b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0x271c/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x2526/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x30dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x31dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x9df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0xa370/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; # 22000 - 0x02f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x02f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x06f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x2723/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x34f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x3df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x43f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/0x1653) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/0x1654) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x4df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0xa0f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; # ax210 - 0x7a70/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2725/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2729/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x51f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x51f1/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x54f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7a70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7af0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7e40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7f70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7f70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7f70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x1673) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x1674) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x2020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x6020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x6024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0xe020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0xe024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2726/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2726/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2729/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; # bz - 0x4d40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0x272b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0x272d/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0x2727/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0x4d40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0x7740/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0094) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x009c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00c0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e8) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00ec) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x009c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x011c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x40c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x40e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0094) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0100) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0114) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0118) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x011c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1771) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1772) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x1775) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x1776) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1791) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1792) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x40c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x40e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; # sc 0x6e70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; + 0xd240/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xd340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xe340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xe440/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; ### <<< + # Historic values which are removed from a newer driver but are still + # present in at least stable/14. + + # iwl_ax211_killer_1675* + 0x2726/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2726/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + + # bz + 0x2727/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0x272d/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + esac } diff --git a/usr.sbin/fwget/pci/pci_network_realtek b/usr.sbin/fwget/pci/pci_network_realtek index d70470b65244..24e24c498e67 100644 --- a/usr.sbin/fwget/pci/pci_network_realtek +++ b/usr.sbin/fwget/pci/pci_network_realtek @@ -2,7 +2,7 @@ # SPDX-License-Identifier: BSD-2-Clause # # Copyright 2023 Bjoern A. Zeeb -# Copyright (c) 2024 The FreeBSD Foundation +# Copyright (c) 2024-2026 The FreeBSD Foundation # # Portions of this software were developed by Björn Zeeb # under sponsorship from the FreeBSD Foundation. @@ -41,6 +41,7 @@ pci_network_realtek_rtw88() ### >>> 0xd723) addpkg "wifi-firmware-rtw88-kmod-rtw8723d"; return 1 ;; + 0x8813) addpkg "wifi-firmware-rtw88-kmod-rtw8814a"; return 1 ;; 0xb821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xc821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xb822) addpkg "wifi-firmware-rtw88-kmod-rtw8822b"; return 1 ;; @@ -67,8 +68,10 @@ pci_network_realtek_rtw89() 0xa85a) addpkg "wifi-firmware-rtw89-kmod-rtw8852a"; return 1 ;; 0xb852) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;; 0xb85b) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;; + 0xb520) addpkg "wifi-firmware-rtw89-kmod-rtw8852bt"; return 1 ;; 0xc852) addpkg "wifi-firmware-rtw89-kmod-rtw8852c"; return 1 ;; 0x8922) addpkg "wifi-firmware-rtw89-kmod-rtw8922a"; return 1 ;; + 0x892b) addpkg "wifi-firmware-rtw89-kmod-rtw8922a"; return 1 ;; ### <<< esac From nobody Tue May 19 00:43:39 2026 X-Original-To: dev-commits-src-branches@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 4gKGBN5P5gz6d7wh for ; Tue, 19 May 2026 00:43:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGBM4Xktz4DWM for ; Tue, 19 May 2026 00:43:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151419; 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=uXo2mydq1HCKPRxMRFc9L3++el/K5nrOyASweHr62Rw=; b=iXIycpeElY3hLCvVx/Hxr/FtxsrUSSdgC3lSdfri4UqmspAfzgaKKz1T9Wzy0cEjtMsN6h uj2EAbVokIt8rypQom0tqqnY+kD3AUXKlai0b4d2UZwItcLSBir/Ix1BrLppG+tgwuFVg6 QiwDCmF9Ce0QLB/YK8cT45gOka3lu0L5k8Sm/rnV2yzy+Gca7PsOvGC5UVOBGSjTdg4Bfb GA+TVNH7MnFid4Z/9/oQo49KjttoGnPBubfwkWKYWr588eNM39a3LPx6J92+w67bGw8bGQ 5gqyf0Klob0P8eAbgNeN2gOBqNcgA2FRLnU9Xffam+0FZoVPMX/Yp86VTbsnQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779151419; a=rsa-sha256; cv=none; b=pSzua4xrSFYxCf7Ph9XQxY30GjVGnvJDkrjBJ8BPB2ZhfmtHxC/AFBul7lzrUBPmZcANaO 5Dn2VvC2P51nVsepGdX8c5FfRkofEboUbKNUZpB/w40mkGwcIDJJKiIW4M/BnQIarHINrO KBLn/WP3UsrN2LMwKQ/h5sLT9hHDcS/embX7wcu9b5kb/AzfREZzTePlLwCnYKM8EhYoYI Eb9dzjwFzZGXa87AIdO0xt2/P/OtLVzq1Pj8t6Dj8f2QOGEzT0aF+ESWeH73PqcEAbhR3Z e3UACrLnsrWsxp3vmVjbtbY7xwpH2xnVeuHrtYprciYvLZNVT82kgg3JNOaXNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779151419; 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=uXo2mydq1HCKPRxMRFc9L3++el/K5nrOyASweHr62Rw=; b=rM4BV1GiqwCVp3KjUBeQx1N74ITi7YdW2H96kROhBuexxM1ibapd59RzatTzykMV8PTcdP bkH7zerYMcD+OaS2ZfDVk9kofpD19fw8+rlbwnIdest8lDjuUneA7tijxdHDbsakZY8ypV ulEOW3phUVKEm9LLVBjNPurniLyBAzjsMQT2x5/KaskNsQjodbqT8kd4bT2xMt1g5NnA60 Q/zGMnA338fEKzqsommM6uFCHOMc80fJ3oGvVyeLhzNn988YSMFO9dFRQT87lTgfG/kR+n RVNB/KvMr0nxsOgeWSDjzvmI2vs8faraH5eoew7orQ3VRa2rM+alsvwY7fXMZw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGBM45TdzsSX for ; Tue, 19 May 2026 00:43:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26b7d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:43:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: da8f27de4f73 - stable/15 - net80211: define a type for rssi values List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: da8f27de4f73e1e60e80fc4c6b0e80f5bc21ef73 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:43:39 +0000 Message-Id: <6a0bb23b.26b7d.1573da01@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=da8f27de4f73e1e60e80fc4c6b0e80f5bc21ef73 commit da8f27de4f73e1e60e80fc4c6b0e80f5bc21ef73 Author: Bjoern A. Zeeb AuthorDate: 2025-06-19 00:05:27 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-05-19 00:43:15 +0000 net80211: define a type for rssi values Due to net80211 keeping values in 0.5dBm relative to the noise floor an int8_t is not good enough to prevent a double wrap around, which means the reported rssi values can be wrong (see D50928 or likely a commit in the future for more information). In order to address the problem and not break the userspace API, start by defining a type within the kernel and use that. In a next step we will then update the int8_t to int16_t to avoid the problem up to the ioctl code. This will then allow us to work on the the user space API indepedently (see PR 293016 for possible impact outside the base system). No functional changes intended. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D57021 (cherry picked from commit 96eaa6857ffe009c141c5a6dbea88f96efed9b2d) --- sys/dev/ath/if_ath.c | 4 ++-- sys/dev/mwl/if_mwl.c | 4 ++-- sys/net80211/_ieee80211.h | 15 ++++++++++----- sys/net80211/ieee80211_adhoc.c | 4 ++-- sys/net80211/ieee80211_hostap.c | 4 ++-- sys/net80211/ieee80211_ioctl.c | 4 +++- sys/net80211/ieee80211_mesh.c | 4 ++-- sys/net80211/ieee80211_monitor.c | 4 ++-- sys/net80211/ieee80211_node.c | 18 +++++++++--------- sys/net80211/ieee80211_node.h | 4 ++-- sys/net80211/ieee80211_ratectl.h | 2 +- sys/net80211/ieee80211_scan.h | 2 +- sys/net80211/ieee80211_sta.c | 4 ++-- sys/net80211/ieee80211_var.h | 6 +++--- sys/net80211/ieee80211_wds.c | 7 ++++--- 15 files changed, 47 insertions(+), 39 deletions(-) diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 934024ddfbcf..ceb14823e005 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -179,7 +179,7 @@ static struct ieee80211_node *ath_node_alloc(struct ieee80211vap *, static void ath_node_cleanup(struct ieee80211_node *); static void ath_node_free(struct ieee80211_node *); static void ath_node_getsignal(const struct ieee80211_node *, - int8_t *, int8_t *); + net80211_rssi_t *, int8_t *); static void ath_txq_init(struct ath_softc *sc, struct ath_txq *, int); static struct ath_txq *ath_txq_setup(struct ath_softc*, int qtype, int subtype); static int ath_tx_setup(struct ath_softc *, int, int); @@ -3954,7 +3954,7 @@ ath_node_free(struct ieee80211_node *ni) } static void -ath_node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +ath_node_getsignal(const struct ieee80211_node *ni, net80211_rssi_t *rssi, int8_t *noise) { struct ieee80211com *ic = ni->ni_ic; struct ath_softc *sc = ic->ic_softc; diff --git a/sys/dev/mwl/if_mwl.c b/sys/dev/mwl/if_mwl.c index c885968dfe15..279d4e13c27d 100644 --- a/sys/dev/mwl/if_mwl.c +++ b/sys/dev/mwl/if_mwl.c @@ -129,7 +129,7 @@ static struct ieee80211_node *mwl_node_alloc(struct ieee80211vap *, static void mwl_node_cleanup(struct ieee80211_node *); static void mwl_node_drain(struct ieee80211_node *); static void mwl_node_getsignal(const struct ieee80211_node *, - int8_t *, int8_t *); + net80211_rssi_t *, int8_t *); static void mwl_node_getmimoinfo(const struct ieee80211_node *, struct ieee80211_mimo_info *); static int mwl_rxbuf_init(struct mwl_softc *, struct mwl_rxbuf *); @@ -2378,7 +2378,7 @@ mwl_node_drain(struct ieee80211_node *ni) } static void -mwl_node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +mwl_node_getsignal(const struct ieee80211_node *ni, net80211_rssi_t *rssi, int8_t *noise) { *rssi = ni->ni_ic->ic_node_getrssi(ni); #ifdef MWL_ANT_INFO_SUPPORT diff --git a/sys/net80211/_ieee80211.h b/sys/net80211/_ieee80211.h index 566b12befeb3..c970ba6be70d 100644 --- a/sys/net80211/_ieee80211.h +++ b/sys/net80211/_ieee80211.h @@ -374,6 +374,11 @@ struct ieee80211_channel { #define IEEE80211_AID_DEF 128 #define IEEE80211_AID_MIN 16 +/* + * Definitions for (internal, basic) types. + */ +typedef int8_t net80211_rssi_t; + /* * 802.11 rate set. */ @@ -618,14 +623,14 @@ struct ieee80211_rx_stats { uint64_t c_rx_tsf; /* 32 or 64 bit TSF */ /* All DWORD aligned */ - int16_t c_nf_ctl[IEEE80211_MAX_CHAINS]; /* per-chain NF */ - int16_t c_nf_ext[IEEE80211_MAX_CHAINS]; /* per-chain NF */ - int16_t c_rssi_ctl[IEEE80211_MAX_CHAINS]; /* per-chain RSSI */ - int16_t c_rssi_ext[IEEE80211_MAX_CHAINS]; /* per-chain RSSI */ + net80211_rssi_t c_nf_ctl[IEEE80211_MAX_CHAINS]; /* per-chain NF */ + net80211_rssi_t c_nf_ext[IEEE80211_MAX_CHAINS]; /* per-chain NF */ + net80211_rssi_t c_rssi_ctl[IEEE80211_MAX_CHAINS]; /* per-chain RSSI */ + net80211_rssi_t c_rssi_ext[IEEE80211_MAX_CHAINS]; /* per-chain RSSI */ /* 32 bits */ int8_t c_nf; /* global NF */ - int8_t c_rssi; /* global RSSI */ + net80211_rssi_t c_rssi; /* global RSSI */ uint8_t c_chain; /* number of RX chains involved */ uint8_t c_rate; /* legacy; 11n rate code; VHT MCS */ diff --git a/sys/net80211/ieee80211_adhoc.c b/sys/net80211/ieee80211_adhoc.c index 22c28ee4fef9..16f20c0c636b 100644 --- a/sys/net80211/ieee80211_adhoc.c +++ b/sys/net80211/ieee80211_adhoc.c @@ -68,7 +68,7 @@ static void adhoc_vattach(struct ieee80211vap *); static int adhoc_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int adhoc_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *, int, int); + const struct ieee80211_rx_stats *, net80211_rssi_t, int); static void adhoc_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int, int); static void ahdemo_recv_mgmt(struct ieee80211_node *, struct mbuf *, @@ -301,7 +301,7 @@ doprint(struct ieee80211vap *vap, int subtype) */ static int adhoc_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c index 9074878e17e4..3505f7ba66e0 100644 --- a/sys/net80211/ieee80211_hostap.c +++ b/sys/net80211/ieee80211_hostap.c @@ -66,7 +66,7 @@ static void hostap_vattach(struct ieee80211vap *); static int hostap_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int hostap_input(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_rx_stats *, - int rssi, int nf); + net80211_rssi_t rssi, int nf); static void hostap_deliver_data(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); static void hostap_recv_mgmt(struct ieee80211_node *, struct mbuf *, @@ -466,7 +466,7 @@ doprint(struct ieee80211vap *vap, int subtype) */ static int hostap_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index 4c3e5fa94243..09cb39cfcf6f 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -379,6 +379,7 @@ get_sta_info(void *arg, struct ieee80211_node *ni) struct ieee80211_node_txrate tr; struct ieee80211vap *vap = ni->ni_vap; struct ieee80211req_sta_info *si; + net80211_rssi_t rssi; size_t ielen, len; uint8_t *cp; @@ -398,7 +399,8 @@ get_sta_info(void *arg, struct ieee80211_node *ni) si->isi_flags = ni->ni_chan->ic_flags; si->isi_state = ni->ni_flags; si->isi_authmode = ni->ni_authmode; - vap->iv_ic->ic_node_getsignal(ni, &si->isi_rssi, &si->isi_noise); + vap->iv_ic->ic_node_getsignal(ni, &rssi, &si->isi_noise); + si->isi_rssi = rssi; vap->iv_ic->ic_node_getmimoinfo(ni, &si->isi_mimo); si->isi_capinfo = ni->ni_capinfo; si->isi_erp = ni->ni_erp; diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c index 7f2e8bdcb963..900b0c2ad4cd 100644 --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -83,7 +83,7 @@ static void mesh_transmit_to_gate(struct ieee80211vap *, struct mbuf *, static void mesh_forward(struct ieee80211vap *, struct mbuf *, const struct ieee80211_meshcntl *); static int mesh_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *rxs, int, int); + const struct ieee80211_rx_stats *rxs, net80211_rssi_t, int); static void mesh_recv_mgmt(struct ieee80211_node *, struct mbuf *, int, const struct ieee80211_rx_stats *rxs, int, int); static void mesh_recv_ctl(struct ieee80211_node *, struct mbuf *, int); @@ -1525,7 +1525,7 @@ mesh_recv_group_data(struct ieee80211vap *vap, struct mbuf *m, static int mesh_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { #define HAS_SEQ(type) ((type & 0x4) == 0) #define MC01(mc) ((const struct ieee80211_meshcntl_ae01 *)mc) diff --git a/sys/net80211/ieee80211_monitor.c b/sys/net80211/ieee80211_monitor.c index fc262f172f12..c77d67a00d73 100644 --- a/sys/net80211/ieee80211_monitor.c +++ b/sys/net80211/ieee80211_monitor.c @@ -58,7 +58,7 @@ static void monitor_vattach(struct ieee80211vap *); static int monitor_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int monitor_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf); + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf); void ieee80211_monitor_attach(struct ieee80211com *ic) @@ -123,7 +123,7 @@ monitor_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) */ static int monitor_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ifnet *ifp = vap->iv_ifp; diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c index 49ba00299fee..970268851af1 100644 --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -91,8 +91,8 @@ static int node_init(struct ieee80211_node *); static void node_cleanup(struct ieee80211_node *); static void node_free(struct ieee80211_node *); static void node_age(struct ieee80211_node *); -static int8_t node_getrssi(const struct ieee80211_node *); -static void node_getsignal(const struct ieee80211_node *, int8_t *, int8_t *); +static net80211_rssi_t node_getrssi(const struct ieee80211_node *); +static void node_getsignal(const struct ieee80211_node *, net80211_rssi_t *, int8_t *); static void node_getmimoinfo(const struct ieee80211_node *, struct ieee80211_mimo_info *); @@ -1341,7 +1341,7 @@ node_age(struct ieee80211_node *ni) ieee80211_ht_node_age(ni); } -static int8_t +static net80211_rssi_t node_getrssi(const struct ieee80211_node *ni) { uint32_t avgrssi = ni->ni_avgrssi; @@ -1354,7 +1354,7 @@ node_getrssi(const struct ieee80211_node *ni) } static void -node_getsignal(const struct ieee80211_node *ni, int8_t *rssi, int8_t *noise) +node_getsignal(const struct ieee80211_node *ni, net80211_rssi_t *rssi, int8_t *noise) { *rssi = node_getrssi(ni); *noise = ni->ni_noise; @@ -3039,7 +3039,7 @@ get_hostap_rssi(void *arg, struct ieee80211_node *ni) { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + net80211_rssi_t rssi; /* only associated stations */ if (ni->ni_associd == 0) @@ -3056,7 +3056,7 @@ get_adhoc_rssi(void *arg, struct ieee80211_node *ni) { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + net80211_rssi_t rssi; /* only neighbors */ /* XXX check bssid */ @@ -3075,7 +3075,7 @@ get_mesh_rssi(void *arg, struct ieee80211_node *ni) { struct rssiinfo *info = arg; struct ieee80211vap *vap = ni->ni_vap; - int8_t rssi; + net80211_rssi_t rssi; /* only neighbors that peered successfully */ if (ni->ni_mlstate != IEEE80211_NODE_MESH_ESTABLISHED) @@ -3088,7 +3088,7 @@ get_mesh_rssi(void *arg, struct ieee80211_node *ni) } #endif /* IEEE80211_SUPPORT_MESH */ -int8_t +net80211_rssi_t ieee80211_getrssi(struct ieee80211vap *vap) { #define NZ(x) ((x) == 0 ? 1 : (x)) @@ -3126,7 +3126,7 @@ ieee80211_getrssi(struct ieee80211vap *vap) } void -ieee80211_getsignal(struct ieee80211vap *vap, int8_t *rssi, int8_t *noise) +ieee80211_getsignal(struct ieee80211vap *vap, net80211_rssi_t *rssi, int8_t *noise) { if (vap->iv_bss == NULL) /* NB: shouldn't happen */ diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h index f1246dd12419..7b32370c2c54 100644 --- a/sys/net80211/ieee80211_node.h +++ b/sys/net80211/ieee80211_node.h @@ -528,8 +528,8 @@ struct ieee80211_node *ieee80211_add_neighbor(struct ieee80211vap *, const struct ieee80211_scanparams *); void ieee80211_node_join(struct ieee80211_node *,int); void ieee80211_node_leave(struct ieee80211_node *); -int8_t ieee80211_getrssi(struct ieee80211vap *); -void ieee80211_getsignal(struct ieee80211vap *, int8_t *, int8_t *); +net80211_rssi_t ieee80211_getrssi(struct ieee80211vap *); +void ieee80211_getsignal(struct ieee80211vap *, net80211_rssi_t *, int8_t *); /* TX sequence space related routines */ ieee80211_seq ieee80211_tx_seqno_fetch_incr(struct ieee80211_node *, diff --git a/sys/net80211/ieee80211_ratectl.h b/sys/net80211/ieee80211_ratectl.h index 0e5beb5185cb..a52c4a517d77 100644 --- a/sys/net80211/ieee80211_ratectl.h +++ b/sys/net80211/ieee80211_ratectl.h @@ -63,7 +63,7 @@ struct ieee80211_ratectl_tx_status { int final_rate; /* transmission rate */ uint_fast8_t short_retries; /* RTS/CTS retries */ uint_fast8_t long_retries; /* ACK retries */ - int8_t rssi; /* ACK RSSI */ + net80211_rssi_t rssi; /* ACK RSSI */ uint8_t spare[15]; /* for future use */ }; diff --git a/sys/net80211/ieee80211_scan.h b/sys/net80211/ieee80211_scan.h index 1afe767ef052..5336386c8e1d 100644 --- a/sys/net80211/ieee80211_scan.h +++ b/sys/net80211/ieee80211_scan.h @@ -282,7 +282,7 @@ struct ieee80211_scan_entry { uint8_t se_fhindex; /* FH only */ uint8_t se_dtimperiod; /* DTIM period */ uint16_t se_erp; /* ERP from beacon/probe resp */ - int8_t se_rssi; /* avg'd recv ssi */ + net80211_rssi_t se_rssi; /* avg'd recv ssi */ int8_t se_noise; /* noise floor */ uint8_t se_cc[2]; /* captured country code */ uint8_t se_meshid[2+IEEE80211_MESHID_LEN]; diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c index 3522b1b24742..550f837a0013 100644 --- a/sys/net80211/ieee80211_sta.c +++ b/sys/net80211/ieee80211_sta.c @@ -67,7 +67,7 @@ static void sta_vattach(struct ieee80211vap *); static void sta_beacon_miss(struct ieee80211vap *); static int sta_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int sta_input(struct ieee80211_node *, struct mbuf *, - const struct ieee80211_rx_stats *, int, int); + const struct ieee80211_rx_stats *, net80211_rssi_t, int); static void sta_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int rssi, int nf); static void sta_recv_ctl(struct ieee80211_node *, struct mbuf *, int subtype); @@ -530,7 +530,7 @@ doprint(struct ieee80211vap *vap, int subtype) */ static int sta_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 7b45261f59b1..2f11fa7c887f 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -325,9 +325,9 @@ struct ieee80211com { void (*ic_node_age)(struct ieee80211_node *); void (*ic_node_drain)(struct ieee80211_node *); - int8_t (*ic_node_getrssi)(const struct ieee80211_node*); + net80211_rssi_t (*ic_node_getrssi)(const struct ieee80211_node*); void (*ic_node_getsignal)(const struct ieee80211_node*, - int8_t *, int8_t *); + net80211_rssi_t *, int8_t *); void (*ic_node_getmimoinfo)( const struct ieee80211_node*, struct ieee80211_mimo_info *); @@ -543,7 +543,7 @@ struct ieee80211vap { int (*iv_input)(struct ieee80211_node *, struct mbuf *, const struct ieee80211_rx_stats *, - int, int); + net80211_rssi_t, int); void (*iv_recv_mgmt)(struct ieee80211_node *, struct mbuf *, int, const struct ieee80211_rx_stats *, diff --git a/sys/net80211/ieee80211_wds.c b/sys/net80211/ieee80211_wds.c index 1c05a40e632f..75c37e49423a 100644 --- a/sys/net80211/ieee80211_wds.c +++ b/sys/net80211/ieee80211_wds.c @@ -62,7 +62,7 @@ static void wds_vattach(struct ieee80211vap *); static int wds_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int wds_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int, int); + const struct ieee80211_rx_stats *rxs, net80211_rssi_t, int); static void wds_recv_mgmt(struct ieee80211_node *, struct mbuf *, int subtype, const struct ieee80211_rx_stats *, int, int); @@ -101,7 +101,8 @@ wds_flush(struct ieee80211_node *ni) { struct ieee80211com *ic = ni->ni_ic; struct mbuf *m, *next; - int8_t rssi, nf; + net80211_rssi_t rssi; + int8_t nf; m = ieee80211_ageq_remove(&ic->ic_stageq, (void *)(uintptr_t) ieee80211_mac_hash(ic, ni->ni_macaddr)); @@ -404,7 +405,7 @@ wds_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) */ static int wds_input(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_rx_stats *rxs, int rssi, int nf) + const struct ieee80211_rx_stats *rxs, net80211_rssi_t rssi, int nf) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; From nobody Tue May 19 00:56:16 2026 X-Original-To: dev-commits-src-branches@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 4gKGSw4j48z6d8ds for ; Tue, 19 May 2026 00:56:16 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGSw41Sdz4GYk for ; Tue, 19 May 2026 00:56:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779152176; 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=TREsWk8NrS/huFCq5s54y5Av6fjWlIaxnegVJjumWD8=; b=rosS9K2J1Rwn1mZzUE+oKpGUbb6Rpn6Ec6EyDentW+1Ofzxfw5Mqi+IY0XkKxgI06c8A8R 4OcsOLjC/A/1f0gZ0yyMH5N/tdM0VHNNabt1aEx3cjAIMIYmGieY4BHkpXGO6yGPFgEDby AqqfoCZ1X5dc3oHThHNWx0ZhfS7zijNEX/u0Cjz8AAimrmpzrFQZtS8KJfi6e83z76YJfk 5ScJCC7+banjBByv7mRvaJMdO7kcIjkTj2aoEgK0/577SDzaKAjKp7stqmwaIijbECpxTa MPzsZqpCqCLCWLRPQQ9bXlML3CkE8yGPzZSm8BtCYvd5niire8UPQCdwVx88Kg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779152176; a=rsa-sha256; cv=none; b=wrE3yqxOTZBXKtC028EwCPLyIkLgYQFUKhG69t5nyz3temnyRqZs8a2GDVxX/X4B4yBgFX lgdY9fQ5kRSr5NwkvgaSU2u2Fb58UdK0OcYMMLPEcDb6kgylamfUa/YJadslW48lZ2LuEV HwU36SpYM3cCtNsQA5KOGtjA+OISurbz1iZP9Z+aK2iEPlRi0i6dTRZeybuGG1j9egqq8S We2G7XA3zszNZDmf9ehTxNsUtO2R4SJRd913bv3GQq73JDc3joEI346q6Ua6PWkjZKH5HJ GmWNJ46kagFb7m0LXQtzH2I//w2xodjVAkga6rerO+nfqJBy58Yr0Bg6aULOzA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779152176; 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=TREsWk8NrS/huFCq5s54y5Av6fjWlIaxnegVJjumWD8=; b=D9VrFLAdcRE4A3olpwDeTE5exgEQYQqh4nLQOKv/AYEcgHViYCJxjhMlXMz0r9q8sRsmrz 6VClwZ6mFFIPQSsuuwKO/DGC0hFl+zV8uipdIJ2fDJ0b3yDrX+isqtxiwlYqEx+PMVNVIH slGqoKB0XfsxkTJCu7QZImQOlL6uSh3g9IITLufxZaDaaZixqMsRZ2Y4N+bec8NgEUL3ZA z+0wYqb7Z0DFMgvNK6rehSgNmX8v7P+EtPmZqldZvYM318L/89nd7RXMHaaxxw5B7b51g4 1rSLgGVjYjUfmIx4LWQ8G3IAszxjYmJuLdIGDLGBZ5ugxirowKYrtXz5FUIXPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGSw3cjQzsWD for ; Tue, 19 May 2026 00:56:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26767 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:56:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 3414663b2cce - stable/15 - nfs_nfsdserv.c: Clip number of callback slots List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3414663b2ccea7fcf5324dc47501702e238b589e Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:56:16 +0000 Message-Id: <6a0bb530.26767.7fb90c00@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3414663b2ccea7fcf5324dc47501702e238b589e commit 3414663b2ccea7fcf5324dc47501702e238b589e Author: Rick Macklem AuthorDate: 2026-05-05 00:04:00 +0000 Commit: Rick Macklem CommitDate: 2026-05-18 23:54:35 +0000 nfs_nfsdserv.c: Clip number of callback slots The client tells the server how many callback slots it can handle in the callback session. However, the NFSv4.1/4.2 server can only handle a maximum of NFSV4_SLOTS slots. This patch clips the client's value to that, to avoid using too high a slot# for a callback. Fortunately, I do not know of an extant client that specifies a value greater than NFSV4_SLOTS, so this patch is not really needed, as yet. Also, the client rarely uses a slot# above 0 when doing callbacks. (cherry picked from commit 03e9e83f358678bab5e4c1ddf9c9d8faa7183cbb) --- sys/fs/nfsserver/nfs_nfsdserv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/fs/nfsserver/nfs_nfsdserv.c b/sys/fs/nfsserver/nfs_nfsdserv.c index 55bf56c4daf1..41f3c6893378 100644 --- a/sys/fs/nfsserver/nfs_nfsdserv.c +++ b/sys/fs/nfsserver/nfs_nfsdserv.c @@ -4866,6 +4866,14 @@ nfsrvd_createsession(struct nfsrv_descript *nd, __unused int isdgram, *tl++ = txdr_unsigned(sep->sess_cbsess.nfsess_foreslots); *tl++ = txdr_unsigned(1); *tl = txdr_unsigned(0); /* No RDMA. */ + /* + * Although the client accepts slot#s up to + * sess_cbsess.nfsess_foreslots, the server can only use + * a maximum of NFSV4_SLOTS, so clip it to avoid ever using + * too high a slot. + */ + if (sep->sess_cbsess.nfsess_foreslots > NFSV4_SLOTS) + sep->sess_cbsess.nfsess_foreslots = NFSV4_SLOTS; } nfsmout: if (nd->nd_repstat != 0 && sep != NULL) From nobody Tue May 19 00:59:37 2026 X-Original-To: dev-commits-src-branches@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 4gKGXn2b4gz6d9J2 for ; Tue, 19 May 2026 00:59:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKGXn1lS4z4HXc for ; Tue, 19 May 2026 00:59:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779152377; 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=XwUSXKTNWJLORoBsZuRK0HQ9Rc5/7RTJjLyrFJBnReY=; b=HpqwqSVJx6djKRPUS9RVtSrna8lqAdYbDWUUSVKHauELT2Tj60tJqucksX1L+57HGI5Bf0 R/qfiCaVLQr58EMhAz+b04QAx1cN0QmnB5z4LiwdgfaZTQPdwxUJhGaCRmxb9S3ArkRE/U luNdVjS8ClhQR3ALCsruzuYV+DZRNux8g8RHJK6XldFiq+W2wjTNE6Up4YC/x8mXACF4yG vhPaL3uyo1OnwoY+ac27UyfFzpXH3eFxGHYKgokO1Ro9lwXlAI03ChWBn2fdfeIJCCQ1ZI YlBV9O+TggGGyehOZeY7kSVulelaZGJq6fcPEUwI9GNd4rzHKvKKzleNZSFg6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779152377; a=rsa-sha256; cv=none; b=Y8qTSyk8sOIRmN6T1i87cIByPgxxDE7UIx5HUWibQEapVx8IGBj83SwT1CGovw2eS4fJxF 3OLhidwtWxF3n8s3jgOZVE8VGmQPmN8I7U739RU2FeJhF733eV/cgfZ/73VylXETouHSi1 S1Zl8dv3mDydP410Gckl//2c3U04HF2/lpr5MUL3gDTCOyvwHtWwCMOHBfx167PfnfM21b 1/E21NuLzQW3mDXzB/GUQAbqIxEt+iu36NCuYsDeAhAY6+S038ss6ycxb70THP9BVv379a JRW0YUd5SW9rTMGyjpAmxSjct7jSl6V/C3nDw7N3c22fiAVE7dGvI/rkNy91gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779152377; 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=XwUSXKTNWJLORoBsZuRK0HQ9Rc5/7RTJjLyrFJBnReY=; b=VjO5mb1aEkMvyzIfx75iSjCRcTtCkO9L7cux+qKKBfYOFsBzmUGccf+LOz8Z9SyT/j3sww suHXq/9Sz8PflyoEqkjANbY6jj2xviIT9Jdp1RoGfN/Ei5baP26eQiEysomo1hAesjiQL2 TbSQvUvupGLPuywQv+wJrkdUqr0B2F7XqD/6Qx+9NUyGtFPBeN8UZACK6I7Sf4+204rB5J fwqn2dMxH5x2AitTqR2bAruaxqXtHMuOoELsyJFKhsG26I40L7JK/TXk2ismANHJ603ptV 0x0V3XX5QHYCdpz9NVppko2+cs9eO/H70WfzHD5+ApqYQ80YMvF8VDIfx4sWxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKGXn16kKzs7r for ; Tue, 19 May 2026 00:59:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27d31 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 00:59:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 29a286d14ac5 - stable/14 - nfs_nfsdserv.c: Clip number of callback slots List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 29a286d14ac50b73e3f241a8b8d4f4a4afdd22cc Auto-Submitted: auto-generated Date: Tue, 19 May 2026 00:59:37 +0000 Message-Id: <6a0bb5f9.27d31.683d7889@gitrepo.freebsd.org> The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=29a286d14ac50b73e3f241a8b8d4f4a4afdd22cc commit 29a286d14ac50b73e3f241a8b8d4f4a4afdd22cc Author: Rick Macklem AuthorDate: 2026-05-05 00:04:00 +0000 Commit: Rick Macklem CommitDate: 2026-05-18 23:57:26 +0000 nfs_nfsdserv.c: Clip number of callback slots The client tells the server how many callback slots it can handle in the callback session. However, the NFSv4.1/4.2 server can only handle a maximum of NFSV4_SLOTS slots. This patch clips the client's value to that, to avoid using too high a slot# for a callback. Fortunately, I do not know of an extant client that specifies a value greater than NFSV4_SLOTS, so this patch is not really needed, as yet. Also, the client rarely uses a slot# above 0 when doing callbacks. (cherry picked from commit 03e9e83f358678bab5e4c1ddf9c9d8faa7183cbb) --- sys/fs/nfsserver/nfs_nfsdserv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/fs/nfsserver/nfs_nfsdserv.c b/sys/fs/nfsserver/nfs_nfsdserv.c index 460d08bd1da0..8d4501a286cc 100644 --- a/sys/fs/nfsserver/nfs_nfsdserv.c +++ b/sys/fs/nfsserver/nfs_nfsdserv.c @@ -4616,6 +4616,14 @@ nfsrvd_createsession(struct nfsrv_descript *nd, __unused int isdgram, *tl++ = txdr_unsigned(sep->sess_cbsess.nfsess_foreslots); *tl++ = txdr_unsigned(1); *tl = txdr_unsigned(0); /* No RDMA. */ + /* + * Although the client accepts slot#s up to + * sess_cbsess.nfsess_foreslots, the server can only use + * a maximum of NFSV4_SLOTS, so clip it to avoid ever using + * too high a slot. + */ + if (sep->sess_cbsess.nfsess_foreslots > NFSV4_SLOTS) + sep->sess_cbsess.nfsess_foreslots = NFSV4_SLOTS; } nfsmout: if (nd->nd_repstat != 0 && sep != NULL) From nobody Tue May 19 07:27:39 2026 X-Original-To: dev-commits-src-branches@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 4gKR8c5JPdz6dkFZ for ; Tue, 19 May 2026 07:27:44 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKR8c3d0Pz3ntL for ; Tue, 19 May 2026 07:27:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779175664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z31WAuPXhcY9Fpse7Q3M5lwtggORfCb5LFCiBKIVTEk=; b=V7QwP0eDx9cj4Mi6T6EDWYtQhud4IByvR8DGnpzY0fELHCYKZ6NQNqdc8qeXuQV6BVKW8d neDwWakYRAF3xxH0QQiu2dVy7eAjC1Ikag4V/X8IaOJa9gSXSK2wj5yvtcPxLQHlbOiK+n UnzXCFQCSYglLdeJfOKGP1GecrcEnYsPS6B4pQ79/uFvaZW1qvoV5HKck2l//yIsb7IXxl FSGNi4zZsrpsjisrW28ZEYtZZD+pDqtRGtaCT7tGXkRbwbNIJPDFB2jg27xAWxk/dgxzUo WLOmP8A1JGH5Mk9ZR2Z3WQFo5L/Y77Ez/6hsnGvOGf9oOufOGrULQh+F7uNhVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779175664; a=rsa-sha256; cv=none; b=Q6WHOYMlddZVydMtviu18gnbinleGY9sLsKfM5BnYd4WL9mfVdjWlxR8C7rDhmZQIwsvg1 uRJ4bSDBuH++Bvs3iSRQjjU+8AmHgjbMX9RIlKpL24yVfqOpU6P2+pTCgBRPPvDYNEqg+z hYtcrio4DczaGMaH84q2papgiYKZG6UwLbkyRnrIJInDv1/vbNh1bRg1/BwMKNsrbIUhnC 0m9ibUcTlNZH6+Kx9zAr32Z2IStcGRHg1Or+nPKUSCm250f6toEynEwg5lC8ervohKGhEW uZ+WgH8+hSkqQi6P1tIV+zZFkfIhGGtpIXy950DFQntOT5rXERVGBn+uwO0LjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779175664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z31WAuPXhcY9Fpse7Q3M5lwtggORfCb5LFCiBKIVTEk=; b=ZNBVOeTGb7MQBF+/LuykF7DK6ahthrtRk7d6cWHIb+5nVxbmYdmBMhwWB/K/xSPh/eryHc O38l2ynZGOyM66IMeRO/L2zNP5xQbziOrwu4Ytna6e39uxy+vIKm6JqEBFoVP0d/01udDg rrRwyRd+U/Q/jk0zgcSH8LZ1NRTVlASDtJ3+OAOgNZkXPdpRoIQLPvcwDEyHvGPo7ZXH9o FfyfBLl1c8AlhUFMFUWjMQrTqLa839fGqGhb8lPMINL74zsJ3y/9/4WBf7CqIe9AysnMkg OAPC5Io0b69IzL+s+FyPoO0cZmFm2lfdrwDknTJw0GjfcSL1kJOzUAU3mLVzJg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKR8c2qWRz14xg for ; Tue, 19 May 2026 07:27:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27aff by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 07:27:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Boris Lytochkin From: Andrey V. Elsukov Subject: git: 8b10555b6b70 - stable/15 - ipfw: fix IPv6 flow label matching List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8b10555b6b709a32ed4e625a45a1cbea3a977985 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 07:27:39 +0000 Message-Id: <6a0c10eb.27aff.24abd64a@gitrepo.freebsd.org> The branch stable/15 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=8b10555b6b709a32ed4e625a45a1cbea3a977985 commit 8b10555b6b709a32ed4e625a45a1cbea3a977985 Author: Boris Lytochkin AuthorDate: 2026-05-12 07:44:10 +0000 Commit: Andrey V. Elsukov CommitDate: 2026-05-19 07:25:45 +0000 ipfw: fix IPv6 flow label matching * do not require just only ip6 proto for flow-id opcode in ipfw(8). ipv6-icmp, tcp, udp should be fine too. * fix off-by-one bug leading to out-of-bounds read. * apply IPV6_FLOWLABEL_MASK before comparison in flow6id_match(), so flow-id opcode will match a specified flow label. No need to take protocol version and traffic class into account. * add the test to verify that opcode is working correctly. Reviewed by: pouria Obtained from: Yandex LLC Differential Revision: https://reviews.freebsd.org/D56869 (cherry picked from commit 3d39eadcdeb301e95abdc94b1ad5d1255fa0f446) --- sbin/ipfw/ipfw2.c | 5 +-- sys/netpfil/ipfw/ip_fw2.c | 4 +- tests/sys/netpfil/common/pft_ping.py | 13 +++++- tests/sys/netpfil/ipfw/Makefile | 1 + tests/sys/netpfil/ipfw/ipv6-flow-id.sh | 78 ++++++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 6 deletions(-) diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index 9e8171a65d62..a2bfd63c6002 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -5514,10 +5514,7 @@ read_options: break; case TOK_FLOWID: - if (proto != IPPROTO_IPV6 ) - errx( EX_USAGE, "flow-id filter is active " - "only for ipv6 protocol\n"); - fill_flow6( (ipfw_insn_u32 *) cmd, *av, cblen); + fill_flow6(insntod(cmd, u32), *av, cblen); av++; break; diff --git a/sys/netpfil/ipfw/ip_fw2.c b/sys/netpfil/ipfw/ip_fw2.c index 59b35f93103a..8c0a5c16831a 100644 --- a/sys/netpfil/ipfw/ip_fw2.c +++ b/sys/netpfil/ipfw/ip_fw2.c @@ -780,7 +780,9 @@ static int flow6id_match(int curr_flow, ipfw_insn_u32 *cmd) { int i; - for (i=0; i <= cmd->o.arg1; ++i) + /* Mask proto version and traffic class out before comparing flow-id */ + curr_flow &= ntohl(IPV6_FLOWLABEL_MASK); + for (i=0; i < cmd->o.arg1; ++i) if (curr_flow == cmd->d[i]) return 1; return 0; diff --git a/tests/sys/netpfil/common/pft_ping.py b/tests/sys/netpfil/common/pft_ping.py index a2a1d9c7f4ec..ada4f8607ab0 100644 --- a/tests/sys/netpfil/common/pft_ping.py +++ b/tests/sys/netpfil/common/pft_ping.py @@ -63,6 +63,7 @@ def prepare_ipv6(send_params): dst_address = send_params.get('dst_address') hlim = send_params.get('hlim') tc = send_params.get('tc') + fl = send_params.get('fl') ip6 = sp.IPv6(dst=dst_address) if src_address: ip6.src = src_address @@ -70,6 +71,8 @@ def prepare_ipv6(send_params): ip6.hlim = hlim if tc: ip6.tc = tc + if fl: + ip6.fl = fl return ip6 @@ -224,6 +227,7 @@ def check_ipv6(expect_params, packet): flags = expect_params.get('flags') hlim = expect_params.get('hlim') tc = expect_params.get('tc') + fl = expect_params.get('fl') ip6 = packet.getlayer(sp.IPv6) if not ip6: LOGGER.debug('Packet is not IPv6!') @@ -245,6 +249,9 @@ def check_ipv6(expect_params, packet): if tc and ip6.tc != tc: LOGGER.debug(f'Wrong TC value {ip6.tc}, expected {tc}') return False + if fl and ip6.fl != fl: + LOGGER.debug(f'Wrong Flow Label value {ip6.fl}, expected {fl}') + return False return True @@ -635,6 +642,8 @@ def parse_args(): help='ICMP Echo Request payload size') parser_send.add_argument('--send-tc', type=int, help='IPv6 Traffic Class or IPv4 DiffServ / ToS') + parser_send.add_argument('--send-fl', type=int, + help='IPv6 Flow label') parser_send.add_argument('--send-tcpopt-unaligned', action='store_true', help='Include unaligned TCP options') parser_send.add_argument('--send-nop', action='store_true', @@ -652,6 +661,8 @@ def parse_args(): help='TCP sequence number') parser_expect.add_argument('--expect-tc', type=int, help='IPv6 Traffic Class or IPv4 DiffServ / ToS') + parser_expect.add_argument('--expect-fl', type=int, + help='IPv6 Flow Label') parser.add_argument('-v', '--verbose', action='store_true', help=('Enable verbose logging. Apart of potentially useful information ' @@ -673,7 +684,7 @@ def main(): send_params = {} expect_params = {} for param_name in ( - 'flags', 'hlim', 'length', 'mss', 'seq', 'tc', 'frag_length', + 'flags', 'hlim', 'length', 'mss', 'seq', 'tc', 'fl', 'frag_length', 'sport', 'dport', ): param_arg = vars(args).get(f'send_{param_name}') diff --git a/tests/sys/netpfil/ipfw/Makefile b/tests/sys/netpfil/ipfw/Makefile index 873ef43ba917..3bbbc3c996e3 100644 --- a/tests/sys/netpfil/ipfw/Makefile +++ b/tests/sys/netpfil/ipfw/Makefile @@ -4,6 +4,7 @@ TESTSDIR= ${TESTSBASE}/sys/netpfil/ipfw ATF_TESTS_SH+= fwd \ divert \ + ipv6-flow-id \ lookup ${PACKAGE}FILES+= fwd_inetd.conf \ diff --git a/tests/sys/netpfil/ipfw/ipv6-flow-id.sh b/tests/sys/netpfil/ipfw/ipv6-flow-id.sh new file mode 100644 index 000000000000..fd3ef2f6cd81 --- /dev/null +++ b/tests/sys/netpfil/ipfw/ipv6-flow-id.sh @@ -0,0 +1,78 @@ +# +# Copyright (c) 2026 Boris Lytochkin +# +# SPDX-License-Identifier: BSD-2-Clause +# + +common_dir="$(atf_get_srcdir)/../common" +. ${common_dir}/utils.subr + +NC="nc -w 1 -dnN" + +setup_network_v6() +{ + epair="$1" + + ifconfig ${epair}a inet6 2001:db8:42::1/64 up no_dad -ifdisabled + + vnet_mkjail alcatraz ${epair}b + + ifconfig -j alcatraz ${epair}b inet6 2001:db8:42::2/64 up no_dad -ifdisabled + + jexec alcatraz /usr/sbin/inetd -p /dev/null $(atf_get_srcdir)/lookup_inetd.conf + + # Sanity checks + atf_check -s exit:0 -o ignore ping6 -i .1 -c 3 -s 1200 2001:db8:42::2 + atf_check -o "inline:GOOD 82\n" ${NC} 2001:db8:42::2 82 +} + +atf_test_case "ipv6fl" "cleanup" + +ipv6fl_head() +{ + atf_set descr 'flow-id test' + atf_set require.user root + atf_set require.progs python3 scapy +} + +ipv6fl_body() +{ + + firewall_init "ipfw" + + epair=$(vnet_mkepair) + + setup_network_v6 ${epair} + + # Check if the firewall is able to match exact IPv6 flow label + firewall_config "alcatraz" ipfw ipfw \ + "ipfw -q add 100 allow ip6 from any to any flow-id 0xbaad" \ + "ipfw -q add 200 deny ipv6-icmp from any to any icmp6types 128 in" + + # Check Flow Label matches + atf_check -s exit:0 ${common_dir}/pft_ping.py \ + --sendif ${epair}a \ + --fromaddr 2001:db8:42::1 \ + --to 2001:db8:42::2 \ + --send-fl $((0xbaad)) \ + --replyif ${epair}a + + # Check Flow Label mismatch + atf_check -s exit:1 ${common_dir}/pft_ping.py \ + --sendif ${epair}a \ + --fromaddr 2001:db8:42::1 \ + --to 2001:db8:42::2 \ + --send-fl $((0xf001)) \ + --replyif ${epair}a + +} + +ipv6fl_cleanup() +{ + firewall_cleanup $1 +} + +atf_init_test_cases() +{ + atf_add_test_case "ipv6fl" +} From nobody Tue May 19 10:09:45 2026 X-Original-To: dev-commits-src-branches@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 4gKVlY4Xb2z6dx5K for ; Tue, 19 May 2026 10:09:45 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKVlY36z8z44dM for ; Tue, 19 May 2026 10:09:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779185385; 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=9AUazWR0y9HV0IA2Y3LOsdVKMSM0gesXavOlLvcasCw=; b=ZjLZg8VRHcglGhBUtjk1hRekVMHbLwDumhzIqyxPEEi3klIEKgPaDvmoarwd5mCquy7ftq Hlh56jPNoBBB7RVgt4YNsAB3yyCGvPgWouXqbmliYar14jC4ZybqateMR5rqnrm1YE2+/5 cjGhB8SIg/El/LLpv/hlYk/Cq4fzs0A76TzeHr5T/G8BjRCOn83+X1L5jM+UsEtQjIhYov ErG595jLAjL8rcK2rzivk3TBh2kuxgh2xEQl0Cl14oal5UCvZjbVntB2JVaqxJNitgH028 Zqi/dwhrdQLLv4t3EgEdRDlDStcQN1KnPqqPK1X/bcgPgdd+Pxr4/qwSqXF0Wg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779185385; a=rsa-sha256; cv=none; b=T/2uIdB0jMChOpQUtqbuYkeybE9ZkPCjDl9FSWaE9R0AuIn8RvHDDvVki9hy21XEIXbMx6 OQSuG0bu/yDpTzPtUJUaJKcpRN3W7aV87ty68fevYa+DNCKnhI7JFit5NaV+TFMsVFVkOT 09qhSxrH/abYa9lspum7xWsei4SYWlGLu7BZAPIXLeEFxAzU9ev9Xyyk+rRq7qLu4HcToh zb8p7Don5kcqZ98xHRfqE4APg7yDQ41TZlc8OEX9NzIGA3HumeI4V+wn4FoGdzil67AfKG aWbw6r5YaAa7SGi8y2dMwP6ZOh9mShMLKfKU8MbxS5chA4GK1w1Qa6OBCoZfyg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779185385; 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=9AUazWR0y9HV0IA2Y3LOsdVKMSM0gesXavOlLvcasCw=; b=MR2SO4w3sBFOChEP1N1i/ndlbvOOafUB8CkE81IgoYXUUtcJcPW38/P9wTAH44tLw27xiN W024HWyF5atdpgub5y0rh/c86lw5OogUvAYtLafRSAuCFY/atcYiOR/bVnyCP1kr+k5qxw wCRsQ3j3fdlWNfhfnz5MDFQmikqtSFiNUQW6M/7kdPEhmq5eQDChpj9t73eoRDuZLfSLOi TWSHoKvoUzuhh3gwLlm2sIMslU2dVMHEaJVTVM1ab5OVT74hGPc4nN4PDkr4ULs2EmBU8t QKYPlXWtNdCQ+4tSV7z6JSNvH12psyS6DdgFoX20Wc7HRt3l5f955aQCDjlepQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKVlY2MXpz18bV for ; Tue, 19 May 2026 10:09:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18cf8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 10:09:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 94ab5b7a7c79 - stable/15 - dtrace_dtmalloc.4: Document the DTrace dtmalloc provider List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 94ab5b7a7c799df8614f566b30d0c20213e5c1bb Auto-Submitted: auto-generated Date: Tue, 19 May 2026 10:09:45 +0000 Message-Id: <6a0c36e9.18cf8.4a4b1cb4@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=94ab5b7a7c799df8614f566b30d0c20213e5c1bb commit 94ab5b7a7c799df8614f566b30d0c20213e5c1bb Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2025-07-17 20:55:49 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-19 10:09:41 +0000 dtrace_dtmalloc.4: Document the DTrace dtmalloc provider MFC after: 1 week Discussed with: christos, markj, ziaee Differential Revision: https://reviews.freebsd.org/D51396 (cherry picked from commit 03bc95b060a91ed9d410270d00d1dd4f8edcdcc7) --- cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 | 3 +- share/man/man4/Makefile | 1 + share/man/man4/dtrace_dtmalloc.4 | 132 +++++++++++++++++++++++++++ share/man/man9/malloc.9 | 3 +- 4 files changed, 137 insertions(+), 2 deletions(-) diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 index 34d7f7d32394..da99a288b231 100644 --- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 +++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.1 @@ -20,7 +20,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 7, 2026 +.Dd May 12, 2026 .Dt DTRACE 1 .Os .Sh NAME @@ -1297,6 +1297,7 @@ in .Xr dwatch 1 , .Xr dtrace_audit 4 , .Xr dtrace_callout_execute 4 , +.Xr dtrace_dtmalloc 4 , .Xr dtrace_dtrace 4 , .Xr dtrace_fbt 4 , .Xr dtrace_io 4 , diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index d81a6064c171..267703cc6bb9 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -1009,6 +1009,7 @@ _ccd.4= ccd.4 .if ${MK_CDDL} != "no" _dtrace_provs= dtrace_audit.4 \ dtrace_callout_execute.4 \ + dtrace_dtmalloc.4 \ dtrace_dtrace.4 \ dtrace_fbt.4 \ dtrace_io.4 \ diff --git a/share/man/man4/dtrace_dtmalloc.4 b/share/man/man4/dtrace_dtmalloc.4 new file mode 100644 index 000000000000..97b4ffd8a057 --- /dev/null +++ b/share/man/man4/dtrace_dtmalloc.4 @@ -0,0 +1,132 @@ +.\" +.\" Copyright (c) 2025-2026 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd May 12, 2026 +.Dt DTRACE_DTMALLOC 4 +.Os +.Sh NAME +.Nm dtrace_dtmalloc +.Nd a DTrace provider for tracing kernel memory allocations by type +.Sh SYNOPSIS +.Nm dtmalloc Ns Cm :: Ns Ar function Ns Cm :malloc +.Nm dtmalloc Ns Cm :: Ns Ar function Ns Cm :free +.Sh DESCRIPTION +The +.Nm dtmalloc +provider instruments +.Xr malloc 9 +and +.Xr free 9 +kernel functions to trace memory allocations by type. +Refer to +.Xr malloc 9 +for more details about malloc types. +.Pp +The +.Nm dtmalloc Ns Cm :: Ns Ar function Ns Cm :malloc +probe fires upon a successful allocation. +Its probe arguments are: +.Bl -column -offset indent "malloc Probe Argument" "Definition" +.It Sy Probe Argument Ta Sy Definition +.It Fa args[0] Ta Ft struct malloc_type *mtp +.It Fa args[1] Ta Ft struct malloc_type_internal *mtip +.It Fa args[2] Ta Ft struct malloc_type_stats *mtsp +.It Fa args[3] Ta Ft unsigned long size +.It Fa args[4] Ta Ft int zindx +.El +.Pp +The +.Nm dtmalloc Ns Cm :: Ns Ar function Ns Cm :free +probe fires upon a free operation. +Its probe arguments are: +.Bl -column -offset indent "free Probe Argument" "Definition" +.It Sy free Probe Argument Ta Sy Definition +.It Fa args[0] Ta Ft struct malloc_type *mtp +.It Fa args[1] Ta Ft struct malloc_type_internal *mtip +.It Fa args[2] Ta Ft struct malloc_type_stats *mtsp +.It Fa args[3] Ta Ft unsigned long size +.It Fa args[4] Ta Always 0 +.El +.Pp +The first three arguments for each probe +.Po i.e., +.Fa mtp , mtip , +and +.Fa mtsp Pc +provide references to the +.Xr malloc 9 +type internals; +.Fa size +is the size of the allocation; +.Fa zindx +is the index into the +.Va kmemzones[] +array used for the allocation. +In practice, +.Fa size +is the most useful parameter to trace. +.Sh IMPLEMENTATION NOTES +The +.Ar function +part of the probe description in the +.Nm dtmalloc +provider is the +.Xr malloc 9 +type short description with all whitespace characters replaced +with underscores. +For example, a malloc type defined by +.Bd -literal -offset indent +MALLOC_DEFINE(M_FOO_BAR, "foo bar", "FooBar subsystem"); +.Ed +.Pp +will have probes called +.Bd -literal -offset indent +dtmalloc::foo_bar: +.Ed +.Sh FILES +.Bl -tag -width "" +.It In sys/malloc.h +The header where +.Vt struct malloc_type +is defined. +.El +.Sh EXAMPLES +.Ss Example 1 : Counting Successful Memory Allocations by Type +.Bd -literal -offset 2n +# dtrace -n 'dtmalloc:::malloc {@[stringof args[0]->ks_shortdesc] = count()}' +dtrace: description 'dtmalloc:::malloc ' matched 480 probes +^C + 80211node 1 + CAM CCB 1 + CAM periph 1 + ioctlops 1 + netlink 1 + soname 4 + sysctltmp 4 + solaris 5 + acpica 16 + temp 36 + lkpikmalloc 44 + iov 100 + selfd 648 +.Ed +.Sh SEE ALSO +.Xr dtrace 1 , +.Xr tracing 7 , +.Xr malloc 9 +.Sh AUTHORS +.An -nosplit +.Nm +was written by +.An John Birrell Aq Mt jb@FreeBSD.org . +.Pp +This manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . +.Sh CAVEATS +The +.Nm dtmalloc +provider does not trace +.Xr uma 9 +allocations. diff --git a/share/man/man9/malloc.9 b/share/man/man9/malloc.9 index 06f5ed4ef360..269a766e6168 100644 --- a/share/man/man9/malloc.9 +++ b/share/man/man9/malloc.9 @@ -28,7 +28,7 @@ .\" .\" $NetBSD: malloc.9,v 1.3 1996/11/11 00:05:11 lukem Exp $ .\" -.Dd August 4, 2024 +.Dd May 12, 2026 .Dt MALLOC 9 .Os .Sh NAME @@ -394,6 +394,7 @@ functions. Failing consistency checks will cause a panic or a system console message. .Sh SEE ALSO +.Xr dtrace_dtmalloc 4 , .Xr numa 4 , .Xr vmstat 8 , .Xr contigmalloc 9 , From nobody Tue May 19 10:19:09 2026 X-Original-To: dev-commits-src-branches@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 4gKVyP3jr5z6dxwn for ; Tue, 19 May 2026 10:19:09 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKVyP2TJhz46rr for ; Tue, 19 May 2026 10:19:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779185949; 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=JSZM9qoNY4KsjHHt+KKutEw4XWvkRUAsD4+dZu9cSpE=; b=uGuiAZhKbRgBKKCn0y8Az4i+jsQMu95hAZb+tJWFJrM0GUBW4W66XLS4HtafxM2TjLOFXp y5c9SEtEUCroHjV8oZfEqy93Bin97bGCEHyKnNis408iV5KnNuzszglxtb9Rn5lQylwlYL jDnPnAf7hB2pNJFUBEKx1QKMOFMAoWgFa7HdAprM8u4GMB0HEszqhLFDjQDl4sUZHUFTxd FCzJrM3wUhwNqjIeaKey75HQLDeSK7QUnAuXcS0AB+xS8pwchQCGSPLj7wHIFWg1kUZBi5 TUegZNsFjgFSyG4SLcvwlbEyUDkehP2gdQ9uEmxct1utqVJNgsz1cDv31tKhUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779185949; a=rsa-sha256; cv=none; b=YMEzRK4oSOkVqPVZPZ/8Wx8GNKB9yr6xs2wkl0kUKV3Ut4XyTbz4rm+g+pYEGwalU23/AA oXbvxPDPGSqXzTVKT4huUtoTo/YcMCW1khJJxSOLu1si+yHDnhnpiiWTNZqw8Xj8fzy/qr KRSuLZI2ChKetZw3VQnUFNYZcgOrNFdk4d4jtLu8jqRhiaVrUI/FYwXyG3NZKWBZI7w75f ttg5qkGhI4vRsyvvcnTAOVHWqWbFJrbltAeRdTHo9yBJibN2zPrUoii50hPcGFaceGgdeR YZP0IYnE3SjFW1etq30vEDZ0ukxvV612GMmxxVdMHpRDt3CH7RZn/+1ZHTWVdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779185949; 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=JSZM9qoNY4KsjHHt+KKutEw4XWvkRUAsD4+dZu9cSpE=; b=rTF3IJZKpACZtj4yl+h1ILybDQ7fDKAaR/jbNlPQDJeyor66+JTcOP+Tj2gKr42sazBN+q FRfdpiGbfTjLrNsJQ3LSa1+JxnkfUyTrehr5T4wXOHYZoJNGsubbl+VYuzSNmloy1VoyKU ieqALkKkB9ZYZ/+2p049+eq7J5I1mlWYeJUvbk9Nlsv0BXanYI3vRzlGoRiI+ZldsYREBo fbWf4PtrMEElStA1az8xbJZPYtKMqK8D98K/98NzsZ2DYk6PMk7iEwj5fbLXJ5RLPE8iiz 9sx4CJkCZkBJbES+0SLsYDppgz4tm36XpbXrRhQ5Stpf5GvRAm2q+gpjuIzD2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKVyP20Vlz19QG for ; Tue, 19 May 2026 10:19:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bc10 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 10:19:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 9c440e552c4c - stable/15 - sctp: fix NOINET build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9c440e552c4cc252fe150b5f0edef9b8cd75a72f Auto-Submitted: auto-generated Date: Tue, 19 May 2026 10:19:09 +0000 Message-Id: <6a0c391d.1bc10.34472286@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=9c440e552c4cc252fe150b5f0edef9b8cd75a72f commit 9c440e552c4cc252fe150b5f0edef9b8cd75a72f Author: Michael Tuexen AuthorDate: 2026-02-27 07:51:29 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 08:41:41 +0000 sctp: fix NOINET build Reported by: ngie Fixes: 454212b9718b ("sctp: fix so_proto when peeling off a socket") (cherry picked from commit 6bd97e9e01ff159eef49b2521fdbe67d5db10d95) --- sys/netinet/sctp_syscalls.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_syscalls.c b/sys/netinet/sctp_syscalls.c index 79c1dfb21495..da7d0556a809 100644 --- a/sys/netinet/sctp_syscalls.c +++ b/sys/netinet/sctp_syscalls.c @@ -30,6 +30,8 @@ #include #include "opt_capsicum.h" +#include "opt_inet.h" +#include "opt_inet6.h" #include "opt_sctp.h" #include "opt_ktrace.h" @@ -78,6 +80,9 @@ #include #include #include +#ifdef INET6 +#include +#endif #include #include @@ -174,7 +179,21 @@ sys_sctp_peeloff(struct thread *td, struct sctp_peeloff_args *uap) td->td_retval[0] = fd; CURVNET_SET(head->so_vnet); - so = sopeeloff(head, &sctp_stream_protosw); + switch (head->so_proto->pr_domain->dom_family) { +#ifdef INET + case AF_INET: + so = sopeeloff(head, &sctp_stream_protosw); + break; +#endif +#ifdef INET6 + case AF_INET6: + so = sopeeloff(head, &sctp6_stream_protosw); + break; +#endif + default: + error = EOPNOTSUPP; + goto noconnection; + } if (so == NULL) { error = ENOMEM; goto noconnection; From nobody Tue May 19 10:43:03 2026 X-Original-To: dev-commits-src-branches@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 4gKWV00VMwz6dyyL for ; Tue, 19 May 2026 10:43:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKWTz5rVQz3Dgp for ; Tue, 19 May 2026 10:43:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779187383; 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=eaGSbZd0I9qkCGj9JODHuMeeMNzluHnUAbWlEwi+Jk8=; b=rxI8DDmjoYNDaNemU4YVEn73hKb4m46REaUdXZBI9m05x5esWH7+dOzwRxQBdGBvpDiOND laauViIrIT0kezZjdl5P5x2Zaaau+uf5kbSGDVqBTpb9ddt00J0ZsD3K62fTQ7izX9p+jV dHvqEdWKRKoQEDm1jF8Q+fyVpP7BnW2WAXqe5cd3/cRbs3gj3VN14brITjZBFvrwnWxK9N CrDsHMlfeR71Jo8a/iQrAA/0B/CDrQJP9htQjdF8cq5ZoVImljBNY9sS4yrVIzw4vKYl/g ExC0cFPCWH1OAMv5FZJqcXf8uPezpwLnwLZUXAcFVdvHchUtI6xYkMBqJ9xggA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779187383; a=rsa-sha256; cv=none; b=VdaGDHC/o5Mi/2j4qdu98zjJmDIk6HtwDtt2OME7XFtz/glP6JavLOZUYx63eODu27DKK9 hQ8Kh7PMa3rS2UvsIzTZQw0V1mmc3ax5+p9fKzhL6w5J+HSdjoHOZlP79Ektyu3ZHju10U /611ia1Zjz0WK2Nswa3UPrEoONS6VwqCZFrIwbUeMfFB5Mn5k1evdBDT3Pqesqt77FEC/a t7pE9ZUhRcT73s+0kQXjbnD8DU8ge/WCMJjvt26PX7zAXGUzIKeFBg3X0clWw5fnneQghw XRlKerdtYSx68xxnJOQESNzVCsNoUsNxT5NZooWekmKILJe0Owpl3rv+fTFctw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779187383; 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=eaGSbZd0I9qkCGj9JODHuMeeMNzluHnUAbWlEwi+Jk8=; b=HKHFjjU/O4+85vRQDMsuf/6QJh2zT3HkSNofIUFPRep+TakoyumAMce+rsqYK3uxhlc/gx rgYFD57+wbHcxgMvHWOy+XWvBOizNpdq8W/qwVKnZlgyPRPpkuZZvAZR5gbe5NuiHDOW3V ZDpQeNRBKh60tvRFmvNqlwIYeB+KS0jIb2ZlSYxPhEnNj4a/3TND4Ol5Lh3tjBABbflY8+ 8Ht1SmaY3lklVjSCIz+TARMUazoViyW2dCYRC9tFCNmowC46rylYfFFxbV+CkI5Ck+Z9zJ ISeFaQKGmD3KHpq5/nOmJ9ZGhlOK1emMWsw5g6jUjCupf8+Q9jjNEqu74NzG4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKWTz5NCVz19yP for ; Tue, 19 May 2026 10:43:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ef10 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 10:43:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: e90a0118a734 - stable/14 - sctp: fix NOINET build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e90a0118a734f967211f501005771d13bf05b364 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 10:43:03 +0000 Message-Id: <6a0c3eb7.1ef10.a1d0edf@gitrepo.freebsd.org> The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=e90a0118a734f967211f501005771d13bf05b364 commit e90a0118a734f967211f501005771d13bf05b364 Author: Michael Tuexen AuthorDate: 2026-02-27 07:51:29 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 08:28:12 +0000 sctp: fix NOINET build Reported by: ngie Fixes: 454212b9718b ("sctp: fix so_proto when peeling off a socket") (cherry picked from commit 6bd97e9e01ff159eef49b2521fdbe67d5db10d95) --- sys/netinet/sctp_syscalls.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_syscalls.c b/sys/netinet/sctp_syscalls.c index 79c1dfb21495..da7d0556a809 100644 --- a/sys/netinet/sctp_syscalls.c +++ b/sys/netinet/sctp_syscalls.c @@ -30,6 +30,8 @@ #include #include "opt_capsicum.h" +#include "opt_inet.h" +#include "opt_inet6.h" #include "opt_sctp.h" #include "opt_ktrace.h" @@ -78,6 +80,9 @@ #include #include #include +#ifdef INET6 +#include +#endif #include #include @@ -174,7 +179,21 @@ sys_sctp_peeloff(struct thread *td, struct sctp_peeloff_args *uap) td->td_retval[0] = fd; CURVNET_SET(head->so_vnet); - so = sopeeloff(head, &sctp_stream_protosw); + switch (head->so_proto->pr_domain->dom_family) { +#ifdef INET + case AF_INET: + so = sopeeloff(head, &sctp_stream_protosw); + break; +#endif +#ifdef INET6 + case AF_INET6: + so = sopeeloff(head, &sctp6_stream_protosw); + break; +#endif + default: + error = EOPNOTSUPP; + goto noconnection; + } if (so == NULL) { error = ENOMEM; goto noconnection; From nobody Tue May 19 13:59:37 2026 X-Original-To: dev-commits-src-branches@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 4gKbrn4YL5z6fFCf for ; Tue, 19 May 2026 13:59:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKbrn27z7z3fjf for ; Tue, 19 May 2026 13:59:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199177; 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=fAQc5rG0LZnrKqTBYfkOTlV4RLDSc0DwZF6QY7CwG8c=; b=Whg+WF4qjVQC9S2jP72ADeXGZ6pGbHgg37VE1O/fsbIndHwu8V1ze86kd1KfmFAw2mjho0 xN5t2efBmw3PhCYQDn999McPVAPs587HE//VL88GlI/akd917KgBeBqN42f/NKrYFbk9oN BYf+34kMMEuX4zlzlEQDD39wk7n0f8U+p3A+KUdjQpY7kUWiFXdySW8a0SJLTbF2u/L31T 1iqW7+tLiteTe1xXSDRjz4YRZjyU6nTgjrznFye6sefzi9U1vnXv/H7ntMmEp394I594wx VVT2FeGH7CRBpYsfiRnk3/KySyvVNvLeeozuCYCJzuLAAccK1lFMHsYfI1f7Ww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199177; a=rsa-sha256; cv=none; b=Hpx0hTm9D3bSdEmKTwZTBhFgLzj3kgjNAg3dVDv+ElcRVlj1I5i1Q7iZpqwB1Yvabim82P exhoZqWMF39CWPyc03UgabwIdyJ0HdMwsI73+MREtLqKGDcXa4oTUXCX/5VNmZeg93sxNm L96JwhdXvxX5TJgapuCwD9iH4mvLivoceaPVzcEd0wATYODD3bDRKre04gGDdA+druoVq0 PBYwLEltLtX6sdbHnUtoBxbZq6lO9S8YtYiBlu67oGmp8luTmg9c0cEHTooy2aObojqomh Cw2EG1VuOynHpNjhxofSEWfZ9DW+4sATJMtC3LGdwqR6UT2Z4XjghX4Yvf/PQA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199177; 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=fAQc5rG0LZnrKqTBYfkOTlV4RLDSc0DwZF6QY7CwG8c=; b=HoAjxnUcLu3jioDW8wxo/EPhU9wVgfRo5ipOxI4v9aUPSc9JUpttqUV18uAlrIop46NawI oKOpcsReI51onvCGPvX0Tk9dHa4O2H5GczLvZbiYMmmGa5CpivCnHSNVYtF9+cB9g0ApL0 pdQlEXUI79uK0f0UpnSgY3Gp8N1vyBvWQhb4acJJJNT/ZPnht9Od+OKPzZHl6bAq1e78pb 84VLAPUF5lhKnVGGK4Ff3LFLF9Aoa2EEs+srQxDW1+WZieryP3rM5x9PR4T3mAfeWfR+Tp 8f0p2N9w3sTDPH4aSA9VTm1rnQKBPfbaChOIlMEyBwSAXlXbfH+XRcuCaGeWWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKbrn1Jkbz2jT for ; Tue, 19 May 2026 13:59:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b458 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 13:59:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: b97f143b6ca9 - stable/15 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b97f143b6ca97ea767383fc96cbf50d4f4394ddb Auto-Submitted: auto-generated Date: Tue, 19 May 2026 13:59:37 +0000 Message-Id: <6a0c6cc9.3b458.5894585f@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b97f143b6ca97ea767383fc96cbf50d4f4394ddb commit b97f143b6ca97ea767383fc96cbf50d4f4394ddb Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-19 13:59:21 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 09b81d1a28cd..5fd6a377d46c 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2581,7 +2581,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Tue May 19 13:59:57 2026 X-Original-To: dev-commits-src-branches@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 4gKbsB0h0Jz6fF8J for ; Tue, 19 May 2026 13:59:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKbs95gVBz3fyj for ; Tue, 19 May 2026 13:59:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199197; 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=m8WihTfLabkkNVXdYtw9lA8U8DUwBkjryJ5n4JtbEVw=; b=gP7qRzD1xn+ReJhUFjGTbgaPuIUuDHN1bZ64U5CvzwVxd0Rk7JD/HLhhQx154+S6wNcAjZ 4osQImpLZk1GLguU/JrdxokeqjcVmD6e/XTLIpAxe7HBDoqXK18qCRCs1/+oZx+KPB4I1r VRBWDdKYOiXVK693w+EFUGt2T7LQWiK8o5EAQhY5OBh1eyr8I3QMXeHT36jBgyUzbe9f9r KHBW0FEOuyi0jq1Tsvj+ShahIU1J02/HKSd5xgP5R7ufI5XtwAh6VYLvbYSzh3zmEZZ8da 20kUHyQX41Q1akXRIaFBfXuvl2uxMDwanrpqIDlv0oicBbVrkOT/cUgKSd/R7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199197; a=rsa-sha256; cv=none; b=Tp6SwUZqNjINXWYj5jCFgNQf5LJQWALaasRUaiPHFeTHzMp1h9zUdZvTren06jwlugvRGe 68fzSrQbBcc2X22qGKOOSbBIKKa948krutaK77tVICm5oV0J1f1XwZuq2EddGOXp5O25MS D0CAQm8E+FV//fxxMclO2hKCJTo4Y3wPhSuTUa9Ldlta7DTP3ImffI3v586LXs8UJC3e1x XIZYKMQM50BUJcwmTxRiEEA8sA5KId7LR68KnHENtS9aBmjolLF9k5gNutLzxveWCln9Xj pMlWocX5dV6orQgIfsx16VNL2VHUQb71dO1Zqhnh5i5VgaYGhCVj2haPisfDnA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199197; 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=m8WihTfLabkkNVXdYtw9lA8U8DUwBkjryJ5n4JtbEVw=; b=cLkk+z8DAnECZvIfC172wtanDla/TgMXefL+GaY0JVeGyT6oHt6t++YXiVcbTcVlDB5TTm EWaIG1Mggd4AHc1IilA2HSPB+074T+uSSwBekk6KYjcrnIN7T+ICw8M8bDOtsue1bjKXzj GanUwjGZXJ1PVbmkQgaIBZgxi6ZnKIH2hK3/8sLbMBzJ3jSteLyASQRO+xdf0raud3DIxG bX4pngfxFUZ92q6x5LfA42oSvvp+L5OxmdFpRhNlp+GyTFrTTRVPv9y8ovI/T9gcNwuSHY WSCGBBQFvkfQBH3OmXWssWPjp5OROb0DT1ofn9RIG5mpnSSHj8VYrAmjERgkUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKbs951y7z39s for ; Tue, 19 May 2026 13:59:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a52e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 13:59:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 7d9c1d3895b3 - stable/14 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7d9c1d3895b307085131f922d7e46a4812f04675 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 13:59:57 +0000 Message-Id: <6a0c6cdd.3a52e.5329476e@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=7d9c1d3895b307085131f922d7e46a4812f04675 commit 7d9c1d3895b307085131f922d7e46a4812f04675 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-19 13:59:44 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 1e9e6e63e992..5d52eb285fe0 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2523,7 +2523,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Tue May 19 14:00:13 2026 X-Original-To: dev-commits-src-branches@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 4gKbsT5d0vz6fF8S for ; Tue, 19 May 2026 14:00:13 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKbsT3Z66z3fvd for ; Tue, 19 May 2026 14:00:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199213; 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=qBf0ArWONBQzmaQtTRBRC0htR6iqpR4zgKBxqcmR7KY=; b=sa0G59F3aPc2XteoW9tGAuHMiKgIgjUmDehjWQty1RiDY8Ov+Ajtzj3lm+gImymyYxKCsh pEWq5vjRr8eSIlxIQk8RnJZ3GSptRtCF/HNnZAxFKPfuBdN2NTyg8jRQO45doZXkkxWQ5z 3UztB87ENrftbjhl11nbIfGP/m9bD3vTfGy2RThs27+6luOKyi1tyng9uSeU/emC9rfGZL /2uxFLmSiX4T0h3iDe+KJkDGRdiAsihlqtiDs0t7Ne39JYT5T63A7Vf2UZLotNoB6veIS2 73hxcABw7XwtlD4QCCq91anJJNCQXRvs+YMtrpFpzmJP5QwDtOubEf1wn/0Q4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199213; a=rsa-sha256; cv=none; b=J1xcms2oEHcIQPd2FcQaihjmy4QUkfZPL05SiB/7IoAWBZnqnQK6PJADtwriPC68hvhPSp BYQPjYYTBzc3M/1tyix0FbAqtMYyOyvc+3I1g+flh5g3gRBLPV0tVcBIOYgRmVa/wJ64ll nnpcjfah5W2ToiiqMvHafn50NbkINXbj3CQtNn+EK4xdGP4YQ7YyrX2cR7t1VBVAPuX+Bl jlbBB6kNVngN4REmSRnmiItWf1lDDYnMo/YrrNessw+ZdFcqZoaTCUskqFwuKfqzlw5JNE kFEbxfNS4//aOL+Z8JodtDt9LcbhWo5GM7ylGSNYanr6VnPiJzghWDwK87NJZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199213; 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=qBf0ArWONBQzmaQtTRBRC0htR6iqpR4zgKBxqcmR7KY=; b=WTaf+D9+dGMbjBwDGsd3vlTj3+Qfkh60vzViJEvrtwHuJtKlYQRWVeZVyaRfO2cGpuHBLw dhAkrVB/bwIGsayUg7Ex6XzGlO2E61+XFiK5rulZRwROQza+4HVh66BBwZn0ITAbq8PbWW beluGgnDoQ9AA9aUoj6v0LdZ4iG0Z/dO4fceiqoIFNu4z3MR5wR+Macuh8hxmkxVwh/5b1 6dLdi0EGqvMBhJhfpVfzCEtvFM/gHwj+iyQLST3giuD1rEJ3RlL+wcVi4Gx63AY1v2OWBb 2wTfVHmikk0kyy0wujXosB9qHKXEUuahkwTbk/+HJDKkQrbuLYNuHK8ce1tEpg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKbsT2xXTz39t for ; Tue, 19 May 2026 14:00:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3adcf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:00:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: adf56b3107c4 - stable/13 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: adf56b3107c41654056ba08d612700875438294c Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:00:13 +0000 Message-Id: <6a0c6ced.3adcf.5cc2ec01@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=adf56b3107c41654056ba08d612700875438294c commit adf56b3107c41654056ba08d612700875438294c Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-19 14:00:07 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index e1712ff8b356..29322e864068 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2508,7 +2508,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Tue May 19 14:08:45 2026 X-Original-To: dev-commits-src-branches@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 4gKc3K5rZjz6fFhF for ; Tue, 19 May 2026 14:08:45 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3K3rgqz3hDs for ; Tue, 19 May 2026 14:08:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199725; 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=sd2ct4RN3aJuBILGQZLOC8dyilndQ/a8dVrl/eEDUOY=; b=h/dw94khAtc6NzlkKVQmTTJuRWb7jhOLFOSpLv+7A6grHeU7+H81JHReGXtDsKZK8zJFjy 6xMp+Fnnn71KyQsKPT86MzeiUwSpJMOMsEEyYLcUMQDczUIyOxQQqaVdpV1EBsfwkNDyGu W7eFK7+tB/pFjddvT7Rdv9U3NAfBdnQHtqibzXd5zA3Bep+wfmbOYv2+YAOKjjEb4xMS/c j8q00iJVztRhWD2hJ/HTj5uq0mBgyRTGB/Y9MTm5GBk5aV1QMCQytylwTA2xHou68r79kp WekpjAoh9wE8PfLqD8UktaWysBgcU+ORvEgMcy6gzM5ECdmJQ00/BDp4j3qCOg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199725; a=rsa-sha256; cv=none; b=pW25QW4JA67xBL31t+nFIZCbY2XZYScMXnjmLZtCEGd9Nll9f0UH2HUIq+EVipGyjZfrL8 diPu0J8zMe7Utz4KnvJesGQvYRI3RTozbf4gEDzER6mN8Pu+WF+xLdj0OvmWoTEAGSnU1J 8JilLtv6m9jJmXdHDdu0W92BtyRqTmHpUWYPBYxzGodcozu1gQpsvNQP7X4M5tEWP/CbMA X6F5RPgS56Etxf+6oyC1dKBrnbhjexgplk86MXGvrCpTpd83O3klZKfO6SC9JGlLsGBCKu +Zbq8SzbDNeD31NWDVTJDJx7+z1/TBGO1a34vs3CTeo+xw2KF7xmIyUdMfR3xg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199725; 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=sd2ct4RN3aJuBILGQZLOC8dyilndQ/a8dVrl/eEDUOY=; b=jBpK22f+qNbS+2BmjC/TJ0yfHdFRTs+1J/H9YFn/Kc+LPQIWRx2hUZ3FvxyP+NdvZfN8wn nct3HW9f9feRlNWd9Xn6M6UNiqfzui30cTszEcea5mnOM+scni6ITUfGpMKIJrYu0DMtaI xmYJkH/Rh7Qc7ES2XLhztu2yAew+NHkuqk72ThtS1T11e0IfU14ghkax5UROhVu0HWqhxO puOkIMM9xiXrm3tULUGEsV+C9pMfpSPm9vXPDNYxvv3tP+dFOuwY7Adc4mzME37QCH79Gt ZZG7h4Fp1YVsZasr0w/MvTfcZ/hPyi8JwQB4hYltg0NdWeTGOE0v5CDXwWvG2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3K2whvz3HX for ; Tue, 19 May 2026 14:08:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cba0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 00becaadf86e - stable/15 - tests/if_lagg: Minor improvements List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 00becaadf86e41b18d3cadf9927c3076db2ffcde Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:45 +0000 Message-Id: <6a0c6eed.3cba0.3cee8764@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=00becaadf86e41b18d3cadf9927c3076db2ffcde commit 00becaadf86e41b18d3cadf9927c3076db2ffcde Author: Mark Johnston AuthorDate: 2026-05-03 15:48:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 tests/if_lagg: Minor improvements - Set require.kmods instead of relying on ifconfig to load if_lagg.ko, as this doesn't work when running within a jail. - Simplify helper functions which create tap and lagg devices. MFC after: 1 week (cherry picked from commit 47ae0135d461854b72b905ac77bf3e1f5b2868bc) --- tests/sys/net/if_lagg_test.sh | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/tests/sys/net/if_lagg_test.sh b/tests/sys/net/if_lagg_test.sh index 992cdd1ebc0d..7351700b3b82 100755 --- a/tests/sys/net/if_lagg_test.sh +++ b/tests/sys/net/if_lagg_test.sh @@ -35,6 +35,7 @@ create_head() { atf_set "descr" "Create a lagg and assign an address" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } create_body() { @@ -78,6 +79,7 @@ status_stress_head() { atf_set "descr" "Simultaneously query a lagg while also creating or destroying it." atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } status_stress_body() { @@ -133,6 +135,7 @@ create_destroy_stress_head() { atf_set "descr" "Simultaneously create and destroy a lagg" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } create_destroy_stress_body() { @@ -187,6 +190,7 @@ lacp_linkstate_destroy_stress_head() { atf_set "descr" "Simultaneously destroy an LACP lagg and change its childrens link states" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } lacp_linkstate_destroy_stress_body() { @@ -246,6 +250,7 @@ up_destroy_stress_head() { atf_set "descr" "Simultaneously up and destroy a lagg" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } up_destroy_stress_body() { @@ -303,6 +308,7 @@ set_ether_head() { atf_set "descr" "Set a lagg's ethernet address" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } set_ether_body() { @@ -341,6 +347,7 @@ updown_head() { atf_set "descr" "upping or downing a lagg ups or downs its children" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } updown_body() { @@ -418,35 +425,15 @@ atf_init_test_cases() # Creates a new tap(4) interface, registers it for cleanup, and echoes it get_tap() { - local TAPN=0 - while ! ifconfig tap${TAPN} create > /dev/null 2>&1; do - if [ "$TAPN" -ge 8 ]; then - atf_skip "Could not create a tap(4) interface" - else - TAPN=$(($TAPN + 1)) - fi - done - local TAPD=tap${TAPN} - # Record the TAP device so we can clean it up later - echo ${TAPD} >> "devices_to_cleanup" - echo ${TAPD} + ifconfig tap create > tap + cat tap | tee -a devices_to_cleanup } # Creates a new lagg(4) interface, registers it for cleanup, and echoes it get_lagg() { - local LAGGN=0 - while ! ifconfig lagg${LAGGN} create > /dev/null 2>&1; do - if [ "$LAGGN" -ge 8 ]; then - atf_skip "Could not create a lagg(4) interface" - else - LAGGN=$(($LAGGN + 1)) - fi - done - local LAGGD=lagg${LAGGN} - # Record the lagg device so we can clean it up later - echo ${LAGGD} >> "devices_to_cleanup" - echo ${LAGGD} + ifconfig lagg create > lagg + cat lagg | tee -a devices_to_cleanup } cleanup_tap_and_lagg() From nobody Tue May 19 14:08:46 2026 X-Original-To: dev-commits-src-branches@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 4gKc3L6Z0Qz6fFpg for ; Tue, 19 May 2026 14:08:46 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3L4BlMz3hKS for ; Tue, 19 May 2026 14:08:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199726; 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=aJMOd9zXIKOxWCJjm4j0JMESZBnd9lraMBtnG+gKSUQ=; b=K/wAhg9rVl3RU9tC+q0ZApNKP+5zK5uPQtHKPsiqa+oej6BYxqfcBCFuRblNDI3OuB2reu cjRDHoyIRhsOxLBSrJ89p9V/2/mU2L/lKamsJJNbZr1e+lbzi0VMdY/EJy1K4hnqoFxYPO L7KnpjRACm6YFAD3pCYGp2BOnFffMGqafz9+/1IkPvJvJ/0s/a6Xrlg5gsTvE34u+lh53b QfRUb7t38znbklJfsCvru3whSzOiWwaDFAh+PSe17s1N9jhRylVPJrdIzTyIa75YaqbpWy yoBpl8YafuiBvvmWmM9sEbKDa93bJvgPqcZenWRQHY+plxoujq6H5eVeuiVh5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199726; a=rsa-sha256; cv=none; b=obB9lP2HI3Tvy6p0BJWnqMjqN2h7/P8TR68wWC1wEfnk2rGRS/ZIxGIUSnOfTaE6+2gw7i U7bkWsfrsEkOB6b0RBA2jeFxgB8bXtAbieSBKLhj93MRDx5+Ol/h7hYioRQuSGMWjrkT0t xePb2/ZIyyFbCGnQUUr0AbWT1vPoMWKL/3G1gjSS9lqKITcrO+8IVeDljwclCn80IvT1sG 9zxes145C1YKfY4XFpgtzwG/ntqUV/9mipOXUywCL2E7u0lVSmuwANItdoh77qkV94l9zb nQAMhtVrVzXME402/R4s9+fQBgYZHxpicMngRg3YcGFP1zJ4dUdUWpKp5ixk1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199726; 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=aJMOd9zXIKOxWCJjm4j0JMESZBnd9lraMBtnG+gKSUQ=; b=VEx3ILQEM9mNsRSzCN7AxHhYFaNVc8FIUVR7re1/SdWEGBn38/8jTe4Cqxl6MVyVaPEBqP vdrj1jioQ9o4si+yshw25U3LWF9hHA/aDJ03LnyUl+syFxjY4PBkHF7Or2W45uTInX98iw 7g/cqeOkwkBTnmB8zxFw243dJN5yrvgdknLLTMPoRUTNg/vqUt8bkGYvGWoq8JwcKlTHvk n3DbcbRA31KKHJSg3UqiaOfswtVGVAEovbTnwfy2ts1V0lsxOnlnzk9cyfIsIKVJ31z/Kw dBpXtdsnnjfmJGgqlUQYdwOfGFd9Bj/Nkibom61k2Aq27+ywuy9F6EEZ+P7ljg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3L3kpBz2y5 for ; Tue, 19 May 2026 14:08:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cba4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: a1e4bc883c5d - stable/15 - execve: Add guard pages around execve KVA buffers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a1e4bc883c5ddcfd852e6a12be5789b63fb52196 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:46 +0000 Message-Id: <6a0c6eee.3cba4.66f429f@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a1e4bc883c5ddcfd852e6a12be5789b63fb52196 commit a1e4bc883c5ddcfd852e6a12be5789b63fb52196 Author: Mark Johnston AuthorDate: 2026-05-04 15:38:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 execve: Add guard pages around execve KVA buffers This helps ensure that overflows will trigger a panic instead of silently corrupting adjacent buffers, as happened in SA-26:13.exec. Extend kmap_alloc_wait() to support allocation of guard pages on both sides of a KVA allocation. Modify the exec_map setup accordingly. Add the "vm.exec_map_guard_pages" tunable to provide control over the guard page allocations. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D56711 (cherry picked from commit eca4dd133883c9e9aaeca68e0119a638ba0aaca7) --- sys/kern/kern_exec.c | 3 ++- sys/vm/vm_extern.h | 2 +- sys/vm/vm_init.c | 8 ++++++-- sys/vm/vm_kern.c | 39 ++++++++++++++++++++++++++++++++------- sys/vm/vm_kern.h | 1 + 5 files changed, 42 insertions(+), 11 deletions(-) diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 0a9ae0aabb3e..22e18876a20c 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -1435,7 +1435,8 @@ exec_prealloc_args_kva(void *arg __unused) mtx_init(&exec_args_kva_mtx, "exec args kva", NULL, MTX_DEF); for (i = 0; i < exec_map_entries; i++) { argkva = malloc(sizeof(*argkva), M_PARGS, M_WAITOK); - argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size); + argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size, + ptoa(exec_map_guard_pages)); argkva->gen = exec_args_gen; SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next); } diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index d0e005088745..9b84a741f8c7 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -51,7 +51,7 @@ vm_offset_t kva_alloc_aligned(vm_size_t, vm_size_t); void kva_free(vm_offset_t, vm_size_t); /* These operate on pageable virtual addresses. */ -vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t); +vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t, vm_size_t); void kmap_free_wakeup(vm_map_t, vm_offset_t, vm_size_t); /* These operate on virtual addresses backed by memory. */ diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c index 2764b438d27b..99eb3b4a57af 100644 --- a/sys/vm/vm_init.c +++ b/sys/vm/vm_init.c @@ -274,8 +274,12 @@ again: exec_map_entries = 2 * mp_ncpus + 4; #endif exec_map_entry_size = round_page(PATH_MAX + ARG_MAX); - kmem_subinit(exec_map, kernel_map, &minaddr, &maxaddr, - exec_map_entries * exec_map_entry_size + 64 * PAGE_SIZE, false); + exec_map_guard_pages = 1; + TUNABLE_INT_FETCH("vm.exec_map_guard_pages", &exec_map_guard_pages); + size = exec_map_entries * + (exec_map_entry_size + 2 * ptoa(exec_map_guard_pages)) + + 64 * PAGE_SIZE; + kmem_subinit(exec_map, kernel_map, &minaddr, &maxaddr, size, false); kmem_subinit(pipe_map, kernel_map, &minaddr, &maxaddr, maxpipekva, false); TSEXIT(); diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 626632b74add..d2880418a1f8 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -107,6 +107,7 @@ CTASSERT((ZERO_REGION_SIZE & PAGE_MASK) == 0); const u_long vm_maxuser_address = VM_MAXUSER_ADDRESS; u_int exec_map_entry_size; +u_int exec_map_guard_pages; u_int exec_map_entries; SYSCTL_ULONG(_vm, OID_AUTO, min_kernel_address, CTLFLAG_RD, @@ -706,34 +707,52 @@ kmem_free(void *addr, vm_size_t size) vmem_free(arena, (uintptr_t)addr, size); } +static void +kmap_alloc_map(vm_map_t map, vm_offset_t addr, vm_size_t size, + vm_prot_t prot, int flags) +{ + int error __diagused; + + error = vm_map_insert(map, NULL, 0, + addr, addr + size, prot, prot, flags); + KASSERT(error == KERN_SUCCESS, + ("%s: unexpected error %d", __func__, error)); +} + /* * kmap_alloc_wait: * * Allocates pageable memory from a sub-map of the kernel. If the submap * has no room, the caller sleeps waiting for more memory in the submap. + * If "guard_size" is non-zero, then unmapped KVA is left at the beginning + * and end of the allocated range. * * This routine may block. */ vm_offset_t -kmap_alloc_wait(vm_map_t map, vm_size_t size) +kmap_alloc_wait(vm_map_t map, vm_size_t size, vm_size_t guard_size) { vm_offset_t addr; + vm_size_t total_size; + + KASSERT(size % PAGE_SIZE == 0 && guard_size % PAGE_SIZE == 0, + ("%s: size %zu guard_size %zu", __func__, size, guard_size)); - size = round_page(size); if (!swap_reserve(size)) return (0); + total_size = size + 2 * guard_size; for (;;) { /* * To make this work for more than one map, use the map's lock * to lock out sleepers/wakers. */ vm_map_lock(map); - addr = vm_map_findspace(map, vm_map_min(map), size); - if (addr + size <= vm_map_max(map)) + addr = vm_map_findspace(map, vm_map_min(map), total_size); + if (addr + total_size <= vm_map_max(map)) break; /* no space now; see if we can ever get space */ - if (vm_map_max(map) - vm_map_min(map) < size) { + if (vm_map_max(map) - vm_map_min(map) < total_size) { vm_map_unlock(map); swap_release(size); return (0); @@ -741,10 +760,16 @@ kmap_alloc_wait(vm_map_t map, vm_size_t size) vm_map_modflags(map, MAP_NEEDS_WAKEUP, 0); vm_map_unlock_and_wait(map, 0); } - vm_map_insert(map, NULL, 0, addr, addr + size, VM_PROT_RW, VM_PROT_RW, + if (guard_size != 0) { + kmap_alloc_map(map, addr, guard_size, + VM_PROT_NONE, MAP_CREATE_GUARD); + kmap_alloc_map(map, addr + guard_size + size, guard_size, + VM_PROT_NONE, MAP_CREATE_GUARD); + } + kmap_alloc_map(map, addr + guard_size, size, VM_PROT_RW, MAP_ACC_CHARGED); vm_map_unlock(map); - return (addr); + return (addr + guard_size); } /* diff --git a/sys/vm/vm_kern.h b/sys/vm/vm_kern.h index 942c03480364..296a50ae0058 100644 --- a/sys/vm/vm_kern.h +++ b/sys/vm/vm_kern.h @@ -75,4 +75,5 @@ extern struct vmem *memguard_arena; extern u_long vm_kmem_size; extern u_int exec_map_entries; extern u_int exec_map_entry_size; +extern u_int exec_map_guard_pages; #endif /* _VM_VM_KERN_H_ */ From nobody Tue May 19 14:08:47 2026 X-Original-To: dev-commits-src-branches@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 4gKc3M6y8Vz6fFm8 for ; Tue, 19 May 2026 14:08:47 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3M5ScJz3hPV for ; Tue, 19 May 2026 14:08:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199727; 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=PtCYUaGUcV00VEfG+FUSQRlmkEv3QbQdFpNtpjXYrUw=; b=QmL2ub06NiDq6sQZxrEbVYsyAvMLbjX6j3N+X5J7EVlmR4F97mOcvjNtSMCaP2Zv40MaLV 6EnmQT5mC/T5pkdpkKQa6SZxKE90Y3ChH/jyD3KiAYVqyj2xLABLFbInAFxdRW92FjQclh O4WiC/0zZFjE9K0QZ9k8rMxFkL9Qtk6zrUo8ggLhXBJTVYGe2I7oKMouACQjJRBD/YqSRF Nl9ScNzyYv8AcD5jORE75WffVBxmPOuQx4thUrjL3MYCc4jfQo6/rmZRtW/DoHk+gaSyf2 t4NfrdXtQIkuRasNSVrTI3UiZn5yCWMo7kYNTXBaS1MC4THyXBgpYXJd4Jbadg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199727; a=rsa-sha256; cv=none; b=Ofz5gLk4BWuOrYBiVrwgCZqn+lm+STDYjwnbxqDAwlHmgF3NUr/yF5KXrxn13ubcL6h9mt JozRNi4G81a72j/ZRuXZ+HbRfLWThmX31jyvzQnfiIkxqMKDjwnhHNg1NnmWESLZTMrRYm qPrL4vILE6yrnM0fBfP8SKJ7WbS7wun9jUi5YzLwve9M2V64HmESJJ4R284m3lCMlLC2S8 rrYOCTESozNA7ms7NRUPOTG7O7jWP9jDANXRfMbfpxHQ8VQ5xBx0VLdsToidiJQY0dio3b 6DMC/MJk19utdScWga9Dx9T9ToOw+HKzAUoLjknAV++fnf394ZHo/whb77Zbdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199727; 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=PtCYUaGUcV00VEfG+FUSQRlmkEv3QbQdFpNtpjXYrUw=; b=Y17CKAlIw+848gnE6o2hxgHIVu1LFM7eyI41UTtVyBw4WoKeOEt2K/xpdJqOHx4Nd4lkfE iTM6Afh2PhxAC0mZrIWczQb7iDnzNVz8CYpt4NBK6z+Lzk3vTmxkWsmXs/TSXG0T7mgpty LF1vPV7DuzAahCi0oVCfPi4sN8d8x+3VyHDTBOChh5m7o6WvQkDX7bzldkAWJl5zkF0WEs U1I5TzjxLxFiuqk88seSa9JePyhtWONc9sGcyRTqme3zYKijrJ/GXWf4mcVE5nsWsGpe/F hN2XyKwkO5cusclV0zWR+tIwNYQp1//E9cW8r/0Y14Lv8m73A/uBwefebTfs/w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3M4cGlz2kD for ; Tue, 19 May 2026 14:08:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3afc3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 27b9d3d016e8 - stable/15 - tests: Add a simple regression test for an execve overflow bug List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 27b9d3d016e8c661afb334087958d481230bf972 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:47 +0000 Message-Id: <6a0c6eef.3afc3.49eaea48@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=27b9d3d016e8c661afb334087958d481230bf972 commit 27b9d3d016e8c661afb334087958d481230bf972 Author: Mark Johnston AuthorDate: 2026-05-04 15:39:55 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 tests: Add a simple regression test for an execve overflow bug MFC after: 2 weeks (cherry picked from commit 41b03932e59068decf03b7975889841f71c73ec4) --- tests/sys/kern/Makefile | 1 + tests/sys/kern/execve_overflow.c | 46 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 3786b87e0474..6adb2dab02c9 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -18,6 +18,7 @@ ATF_TESTS_C+= kern_copyin ATF_TESTS_C+= kern_descrip_test # One test modifies the maxfiles limit, which can cause spurious test failures. TEST_METADATA.kern_descrip_test+= is_exclusive="true" +PLAIN_TESTS_C+= execve_overflow ATF_TESTS_C+= exterr_test ATF_TESTS_C+= fdgrowtable_test ATF_TESTS_C+= getdirentries_test diff --git a/tests/sys/kern/execve_overflow.c b/tests/sys/kern/execve_overflow.c new file mode 100644 index 000000000000..462f36ac5154 --- /dev/null +++ b/tests/sys/kern/execve_overflow.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2026 Mark Johnston + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +/* + * A minimal regression test for FreeBSD-SA-26:13.exec. + */ + +#include +#include +#include +#include +#include +#include + +#define SCRIPTNAME "script" +#define SCRIPTBODY "#!/bin/sh\nexit 0\n" + +int +main(void) +{ + char *argv; + size_t size; + int fd; + + fd = open(SCRIPTNAME, O_WRONLY | O_CREAT | O_TRUNC, 0700); + if (fd == -1) + err(1, "open"); + if (write(fd, SCRIPTBODY, sizeof(SCRIPTBODY) - 1) != + sizeof(SCRIPTBODY) - 1) + err(1, "write"); + close(fd); + + size = ARG_MAX / 2; + argv = malloc(size); + if (argv == NULL) + err(1, "malloc"); + memset(argv, 'a', size - 1); + argv[size - 1] = '\0'; + + execve(SCRIPTNAME, (char *[]){ argv, NULL }, (char *[]){ NULL }); + + exit(1); +} From nobody Tue May 19 14:08:48 2026 X-Original-To: dev-commits-src-branches@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 4gKc3P14P6z6fFrt for ; Tue, 19 May 2026 14:08:49 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3N5jdjz3hBv for ; Tue, 19 May 2026 14:08:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199728; 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=7V4+bMufHfkiOBw2Z/mhKMyVVBGs9g8fbfxSp9JxfMs=; b=oeGX/lOdd5of8iEd06Zz8viK+Q0qx8uZg048ctxzO41RIr2XOcy1OpY5muGi21cZlGM1Q7 9tYdnHceU8lJeWultVBvhmFPqcqP76/8YmMoqxg21yQqoIVKGLYWgIsg5KenZ3sQJd6u7H Fc9GhDPH4vaJFLJqk0J8JvB8myY7Syrn2lSGXUZuarXWI7Z3aglT9CeSsAr6fAegYEuq53 enzfH9iAjfhcvMHJjBnw846eUb7Y9AWtOPF771F4r/AODWSHf0HhnVKQby9rTrrgvMYhgx DwWHyOrqGv4+nwm2Oyg0dctI3kXw75f0P7mB6olVoacxsLUznWyr0RqJjA15lg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199728; a=rsa-sha256; cv=none; b=rFRXFJqnnzY9LdtYbHfQsuHKnSICXAbbb/wwB2zepOa+LOcxyMJOB928bLYvGGn8dY9kuj jBownaWT/3E6WxarG0wNn2XCDwHAs4CcOeMD3AZgaCA47KpDReg6c0YKdhBLd4Ftn4sqdh 6K3NhQIDenC99QT+1EvInYxMr4g0baBKbOJJxcZF8YghJ0QW8emP+6lRvUiqUDIknCXRRi mPQJAb5dVTGXEBwySc0XgGadDne1CwPKxXMouprNcreyulEDRiFYEx/Z/lzk5A05nEM5ve ty53ydt3HIF2BR3QlMFutJ7T8PFJNiOfRYnla4A/IAguyOHynmt0PALWwviHag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199728; 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=7V4+bMufHfkiOBw2Z/mhKMyVVBGs9g8fbfxSp9JxfMs=; b=n3MZAdlhRUWkc5fi+8qQEZjPAhq6zn4mw1VP2n8gUwvLCaCeQSK1n6fJ2XByns+MptK/nx GfD45EUxk7ACZwCLbC77roTiGbXBkeE1JF2WAoZ6w5hiq+H3oby3NUS9weflVPwEXy8mw6 7sPbbyaO6BhfjrX7VTX2um+F3A+hKURWcECtrSsEHcZkX2gCdvTEE92DNDJl/cVSI3eCvY f2Jf+wClAclLVgJKpPayuavA3ludnvXZIYSt5OQR3P/H7YmD3B17SmT+uoidJr2zi/GmFv VliFmxZoP9GT38LG2p+I12YeNqv/lhKCYCKwp5eLZpTMHOlwaEZWCgQtOlSRfQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3N5Jyhz3FG for ; Tue, 19 May 2026 14:08:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3add7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b84629b21aea - stable/15 - if_vxlan: Update *m0 after a pullup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b84629b21aea01a70f389fe30d02f70cf71be896 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:48 +0000 Message-Id: <6a0c6ef0.3add7.466699a5@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b84629b21aea01a70f389fe30d02f70cf71be896 commit b84629b21aea01a70f389fe30d02f70cf71be896 Author: Mark Johnston AuthorDate: 2026-05-12 17:50:15 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 if_vxlan: Update *m0 after a pullup vxlan_input()'s caller is supposed to free *m0 if it is non-NULL after the function returns. vxlan_input() failed to update *m0 after the pullup however, so if it hits an error case after the pullup, we'll free the mbuf twice. Currently this can happen only if the interface is brought down or due to a packet loop. Reported by: Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai Reviewed by: pouria, zlei MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56944 (cherry picked from commit a6c4fe2d1a38885914b1c3e85508b965ccdb7874) --- sys/net/if_vxlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c index f3a8410a2258..fc3d3752e0ae 100644 --- a/sys/net/if_vxlan.c +++ b/sys/net/if_vxlan.c @@ -2876,8 +2876,7 @@ vxlan_input(struct vxlan_socket *vso, uint32_t vni, struct mbuf **m0, ifp = sc->vxl_ifp; if (m->m_len < ETHER_HDR_LEN && - (m = m_pullup(m, ETHER_HDR_LEN)) == NULL) { - *m0 = NULL; + (m = *m0 = m_pullup(m, ETHER_HDR_LEN)) == NULL) { error = ENOBUFS; goto out; } From nobody Tue May 19 14:08:44 2026 X-Original-To: dev-commits-src-branches@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 4gKc3J5pB8z6fFb7 for ; Tue, 19 May 2026 14:08:44 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3J3MzMz3hDr for ; Tue, 19 May 2026 14:08:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199724; 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=6WCuFemewdxWNy3LG8968zX4QmdvpErQnkGh5ZEOZVw=; b=dJS1c4RaSwi3I3kEPPCFupgZ2k28q0VCGTVpnFStXYNXwnc0BO9rQdCyAPHSRnmDy0NV/k wqb4d0hY/2WMCEUNTcZHs8MHKfS00ZyJVPOsvPCO7GYyw4xedKj4e3hICCevEBZNSev5DT ChfMCXuRDi8Ul7uiJ6NVX5/7UuHPrFqTLAEKXHwm73IPSyiInHmUVYy6qGVGD7YGIRfLVM x6Saoja43KfKM845nmmriItc7towaFGbULypLMkGIl/sm2XHk2ZYtcwj+/ehKghPxQIOmA Qo78sw7bVsTg0jVq2DRyGH0emGQ5XoCsmJ69W097UQfBHVp18xwzwQxVtGtf2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199724; a=rsa-sha256; cv=none; b=Z2hEAG7V5gh2loTuST+KpzVrjZKm/7gDHZ72dW7aUud6O35rxAoDZvFicmz/nesBaHJn59 j9WpTHnoZdbgxC/C/slc3r79Z2TQhgQh5eVxBYxQd6mAAqSmmSFwuCei1KhyeDj1BYppWL oVMejbmWF+IylfauKHxd14cA0ANMKWkgjFvfHWIwOGH7ZWmsIW50J1LcS96h0aeJ+dmORA mvtI9BPYro0fmKtgYtzR6W72idj9/dDDRVvDMf/bMjM2AYVEd0kfFZ8DNwHWMUo22Qutbn AKKcevZ40LREgagSIyuDpcsjqIemh+Iw2zScsEqeb6jEVDT0Qe9YGwnV16xMfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199724; 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=6WCuFemewdxWNy3LG8968zX4QmdvpErQnkGh5ZEOZVw=; b=FKMDq/AZ5HLOhF4SsSvr3cs6VjZUey9gBu71Z1lot5WIuYD3oiHj6Q6eKDDE0yxbLVyuYJ me1FJyQNCOfcGnJ6BKorAB6Wy6jrHTkoRQdKjvLA9ikDT4NdTUzWYVG2dtcjqod7pp4VwC YiXxFpbUkQ1ToYw7h9vkkVbaXvhNQtfS8dS5c5l16LiSEb/OQUZKwiNCyC3NPkrflxVdrJ 4ddyUnKR2QLKzrWK+pQGFlAVBISOHHAgFyh6I8vIXTMIDN48heSu9oEkgmgXT84D7jRWz5 nITTQSHAwYaHpmi5gNt2uvy47Q9VAR3fhavTrGVOyrN+U7AjciO/w2bQMLLMzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3J2dj9z32S for ; Tue, 19 May 2026 14:08:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bdc6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9b552527017b - stable/15 - tests/timerfd: Serialize List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9b552527017b09a533e4ece5ee4f505e540332cc Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:44 +0000 Message-Id: <6a0c6eec.3bdc6.6dd42573@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9b552527017b09a533e4ece5ee4f505e540332cc commit 9b552527017b09a533e4ece5ee4f505e540332cc Author: Mark Johnston AuthorDate: 2026-05-03 15:46:52 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 tests/timerfd: Serialize At least one of these tests changes the system clock, which potentially interferes with concurrently running tests and causes them to fail. MFC after: 1 week (cherry picked from commit 001cfc7b8aa38122c4e0fe8ae48fae3556a1f2b6) --- tests/sys/kern/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 535466c09cdd..3786b87e0474 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -55,6 +55,8 @@ ATF_TESTS_C+= sysctl_kern_proc ATF_TESTS_C+= sys_getrandom ATF_TESTS_C+= timerfd LIBADD.timerfd+= pthread +# One test modifies the system time. +TEST_METADATA.timerfd+= is_exclusive="true" ATF_TESTS_C+= tty_pts ATF_TESTS_C+= unix_dgram ATF_TESTS_C+= unix_passfd_dgram From nobody Tue May 19 14:08:52 2026 X-Original-To: dev-commits-src-branches@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 4gKc3S2J00z6fFbN for ; Tue, 19 May 2026 14:08:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3S0cwvz3hBw for ; Tue, 19 May 2026 14:08:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199732; 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=S2x9uIl294Dh1xD72Az0MV0aQSxOFZUZSEq/BwBP+iA=; b=ZeIrLhKImKW0wes5s5jYQnc5dm/N42JyShgOoCny15ODZZWWP/L1YVXJNGt2bwC0bpjLwc Bj3XDR27rgQNpoQE5tsq7sSMiQ9aW0cCMiDrShPT/ZPK3u25poSdf+CPF5IxiMiOiDVVzb e7B6+abYqMAu2nHvRt3hJGxZyB0MrDLJ7g9aOmSNN4W9C/BRzAEvDDoR2lBFm9QuXUS7Ir r9V1KRRE0Mr/ZkTjqJEEFiY7l6btVO138Env2YZY5QeauEaagxLk1Qm3se7YqERKarFcvv 160ykWvMUFdo/cFfSqt0bx3qMexmXHQeBM2OPntgQFx5l7qSyj4C8AAsS7Tfqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199732; a=rsa-sha256; cv=none; b=ZNemP+X/A2PBQZhTLxroIkjrvS9z8zoUVPe/EytgaHoeYUu/zaVdV5A5bJbMMM+wlh6VgS p0kasyI29LEjm9eo0pvh7n1nKcTUyi/FbumXDQf7rdqrqVcwfna+KhBCREVB5BSV8EMTE6 9zhFUbbqh0CiKTa86U3VkuI7MiqtkNGA7CPU3QzEZJuahVtI9ZhpO0mWIKcap5kNQGR3ST v+H0JV+30BtktotO7AvxRerpMTxnayf4/7zIQja4hQfXqjYgG5RE9T9f8ZZtxDwM3HudAM 4syLvGXPEDDHX8IsgnqpzJ7vd52S7qhuu99esGdtOPwlAeB37oiyEuIVmuhUJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199732; 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=S2x9uIl294Dh1xD72Az0MV0aQSxOFZUZSEq/BwBP+iA=; b=sXgSQ9gYgtp9WgfReotpZZANcjb3IjxAUMIPmelvxVNSh/zVhJYsySf9L6v+NeEcqA/riZ WbT07hSBhAjOVF15801ass5l5VpJyDCdcDLbLytsaEs26BfYZ+2BN5cr7FSzMWU66lQPmD FE643QGkHXSa7I0MT5qNdoL1QhruJD7vwYKC9QDtwb8BrBZIy4F1m0asQgzuQyIeCBOamR vgNobvBztWPOsHw7nZnzoMrwbNCDgxZ2JsMp9qi/O0TJZ5j0T6046QzE8ZFCyL7s4nDrYj DjuvfT1xi19qwRXTSmtlhQ6XhAy3WRTmIDN/Suk0b23TPJ4jloY5XWnar7/CDQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3S08TGz3FJ for ; Tue, 19 May 2026 14:08:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c307 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: f9269613276b - stable/15 - mdo: Avoid relying on header pollution List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f9269613276baab1b469c2e9847c7120a558d934 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:52 +0000 Message-Id: <6a0c6ef4.3c307.715563e7@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f9269613276baab1b469c2e9847c7120a558d934 commit f9269613276baab1b469c2e9847c7120a558d934 Author: Mark Johnston AuthorDate: 2026-05-12 17:46:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 mdo: Avoid relying on header pollution The uses of PAGE_SIZE and roundup2() require param.h. MFC after: 1 week (cherry picked from commit 35a36d4a54df244e93bf280345426a600e394a90) --- usr.bin/mdo/mdo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/mdo/mdo.c b/usr.bin/mdo/mdo.c index 879423bc0128..e72f28b237e7 100644 --- a/usr.bin/mdo/mdo.c +++ b/usr.bin/mdo/mdo.c @@ -10,9 +10,9 @@ * Foundation. */ +#include #include #include -#include #include #include From nobody Tue May 19 14:08:57 2026 X-Original-To: dev-commits-src-branches@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 4gKc3Y5jmZz6fFmL for ; Tue, 19 May 2026 14:08:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3Y3x9nz3hH5 for ; Tue, 19 May 2026 14:08:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199737; 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=hWayPgJHMUx2eo75TqGBIkBGkVKN7JXJ8rPJnyEtz4o=; b=i4NYEh7CWCWeUN4eIaTmVKx9R3e6X6vyZARqe82u8hwpoHhUFUzqi1OvL4EgOBvVYCxoYs guJIhvMiYwu3gZMGgZvwKXM4r53DoRUxoof3D0vNwCCtKcOJ890woYa26P6lhhK01YtBdI gHjB0jOOcasZgjmisBosMcHtc+MklsvN6ckO6b5GARIFfrv5iFeAD3j7qX8O/2CoMmol48 xhadrceGQgkVl+O9W9xHrhO696ASc3U3urNGqn/7R1eo8DYprMz7CowZQcvF5iolo7zmYP q0c+DG7eoNoYu+4TpbMaYs5D+pJB+8IvrbGKtDjSJgmRXIpG/0zeJW3kOWwkkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199737; a=rsa-sha256; cv=none; b=nE8ELpnjFehe94j6Kshzj8tUf5pNZLK9Hsvwgy0DNhR1RX6eTYncfJWpTEv0TPrLFUc1bd TnX1QJQ5q6Qi8IgRQKG7KoPGBFFBjp31uCdRv+fQDggcp4cv1MQc7Qc5kSy4p+95YuWRU6 BEutDxZJ95ddCTeRiisSTjyk9PrIq0cN4rDm9XbcL1ObqbbOcsi6gfEp/QHxW+e9l8HUPt e27yWXFBf9KfYtoCK+NWUumd28s0W1hy9Y2xQnWZb5ogB2KM4Z1JHfZ+0AirXeThEK6cRQ cIKNqHsZjcASO30Uz0IOG4IuYmAHSP7qFNmqFDDMMnbxd9aGgbSCJHHkL0ib3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199737; 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=hWayPgJHMUx2eo75TqGBIkBGkVKN7JXJ8rPJnyEtz4o=; b=JbpJ35hF1q6BPX/8hE+64pfFfPTi1I67QyOHk3bEiChey2TyKrv3sLWcw2vh2C5JJrIFm5 PAUs3/djByTMT3U0PsPUvxeau4mQfvvMpwSok3tSemtSZMmLPHk6EfzwfAUhx77gHP0Kqz D0iwH5I6v2dha++705Z9HL0oZk8JYEK5qHAQKrhgErYMW2dwmsUB/a268FH1ni/Bc4TW/O k1VS07kKsR4iPOCc7ghQ5afqXDly7Ka6TFGDDX4bfgzLbiwkRTISpUzDJa7VSUdflRaWl2 PT/4c8ohV0JtlHv4V9kKQR47WLaQ5SVFYTk4gD6ytjEeWOJ+EPjJSTOB8FVHAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3Y3PM4z3TD for ; Tue, 19 May 2026 14:08:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cc05 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 21ad40f1cee7 - stable/15 - reboot: Include limits.h for PATH_MAX List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 21ad40f1cee7cceb2ba8e9009c47fafd0da77615 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:57 +0000 Message-Id: <6a0c6ef9.3cc05.228a0618@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=21ad40f1cee7cceb2ba8e9009c47fafd0da77615 commit 21ad40f1cee7cceb2ba8e9009c47fafd0da77615 Author: Mark Johnston AuthorDate: 2026-05-12 17:46:45 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 reboot: Include limits.h for PATH_MAX MFC after: 1 week (cherry picked from commit 9461071d5cd901c968dcd7f4a114905995f90d66) --- sbin/reboot/reboot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index 59ae83ef6f6a..0c35f91e629f 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include From nobody Tue May 19 14:08:53 2026 X-Original-To: dev-commits-src-branches@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 4gKc3T2h57z6fFrx for ; Tue, 19 May 2026 14:08:53 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3T16rBz3hKT for ; Tue, 19 May 2026 14:08:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199733; 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=i2bxdN7tgstzfN502Q2hGuBkQDyvbpZSwF18yiN4e1o=; b=ZbTG1hfAax0M23A+ngSAV34vPJN/WU+7ZKB3wvxLY6O5d+8OWZN8t7u4eh6JEpHTGUh5Et KbP+NJ7veu+akglgjV+p/BQc95WL+Z//WE7LPC/mz4WnmX2yyU2fNYD59D68uvje5zTOwk RMXIhV7Fzz3v1ReigEJ51OLcNovo2cHEfCn43lCGDOOaXAqWwqTEVOJx4EljfdovoQUYPf ayhj3cKZfPJmy7g6P3FPl7WUs6M8gShic7ic9r6Gaxb9lC/Oc3g8Z6ri5PvGNgevG+eUfm hCq21e5CI5g9AkJCuwt0s3ZYveFqN6BQLy1EkTh3tCBonf15mjVPKwIU6drXEQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199733; a=rsa-sha256; cv=none; b=E8K/PJtO4NSZGzZ6Q3407+R6KOPhgGdXPZ5X4/DVYIV4QYw830rdCUuhH1QN8zHI0qCC1n 4NfwVVyn1ON2315l3ARzt2T8Og10ySUNUn7YB6Io4VSpBJtgqYt742T4rwpbUa4kgP/xes 2YAM+mRjt/i9MY8r/ghHUsgswaI9ZdqcUlyJptvsmaoJQ+LLYsuM8/hcsPu0DsqrfsvhE1 fYkfBZSj6SNz6ZfEyfgxrolVX3DGu/24hxFoIZkqU4PXCM+xrtKbwYzvmbtKcRB11ywkjk jyEAqCAlNudpgt8lSME/Mc9MFSaXXRFLJRLk+nP+i/PL3ooDMyvdGuN0depQ/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199733; 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=i2bxdN7tgstzfN502Q2hGuBkQDyvbpZSwF18yiN4e1o=; b=yjPWIbnYnNv3TLIs5AtS2Qx+aX92NBNpnycK0Yams768GEwHIojDig5BuGme5ekLkdXURh /jMbNHruP7yIUDDqOFG/py6psLzhtfj8II4AjJbnsTHkSiVowCGqketztnaMclmBz5lWrs 9Oz7zbhbMBiDC8sBthJTDzPXGrl7y8MzRdZ8ZNM3OrJS5UMZTBOMkHo0ghpcgVgc0Nf+ac 88oZmHhwwWbdibZ7KAxc9Us2jY2LOiXfXJ7JtBHSr5VO500muhDLMjIwT56GE0ZRfaz0zN oef5w2XYug4oVqNfY0+z6NwMHnqVkWwR9vXhJBrJi8t1AZkYsWlp9hBiHwVa2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3T0fwNz3FL for ; Tue, 19 May 2026 14:08:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b554 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3fa3e36ecccb - stable/15 - vmem: Include param.h in the userspace port as well List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3fa3e36ecccba75cf50ad9152f525b06e75a94ca Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:53 +0000 Message-Id: <6a0c6ef5.3b554.78dca7ce@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3fa3e36ecccba75cf50ad9152f525b06e75a94ca commit 3fa3e36ecccba75cf50ad9152f525b06e75a94ca Author: Mark Johnston AuthorDate: 2026-05-12 17:46:24 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 vmem: Include param.h in the userspace port as well It is required at least for NBBY. MFC after: 1 week (cherry picked from commit fab4acbb7db8ffc7082d1b60b3c8e446a7cfef90) --- sys/kern/subr_vmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/subr_vmem.c b/sys/kern/subr_vmem.c index 8b834a2e2a79..0ea8c9e41568 100644 --- a/sys/kern/subr_vmem.c +++ b/sys/kern/subr_vmem.c @@ -80,7 +80,7 @@ #else /* _KERNEL */ -#include +#include #include #include #include From nobody Tue May 19 14:08:58 2026 X-Original-To: dev-commits-src-branches@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 4gKc3Z6726z6fFmN for ; Tue, 19 May 2026 14:08:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3Z4kNxz3hMw for ; Tue, 19 May 2026 14:08:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199738; 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=8rQyOeaN/ivU8sJiK/3IZ1JXg6yaSr4xUwS6biS05o0=; b=PEq4mFawLhwWXu1yNNhQzQqOJji+YYHjgjaVppw1YgwlgkFoeBqYmB6PHEaXFi5sgCvPL9 vmm2N+nPqqpplbazc1cmQKmInM6o0NT5kt8xIlmxcFy9Ky5DvFK2pqeVSQ7/itoYdtss+a 9H5F+YRPwaLCQvCnt5OAIphp04CBP4xNb5dmT9DPlJnOunZXFyqTk+A1gPqUPThFk3I0na bxfmLqccsyrFUPR3w0RJGbPRVT1hGzC6vjfg2MZJK1YfO5aFGYTCOfspjjSfreCkW4f0tR bqD+RlMtJpjG+snCgT5Ul4Uho1lYq9n5J5bvaGKN8iWIseQzR6In00w62aMRaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199738; a=rsa-sha256; cv=none; b=FlV8M0/0In1W5Sq1GDYXD7D+Q3pv0eNEQSgRUNI3cJ2H3L4a6KJgHTBoG4zPI1uxixi4NF 7y/aPTRYIVS9X11D1UQOBbAwCy5k2HLNqv0x6TYH2ZausVufewP2nENWHmK+jdSaptVigI dJ7pHkaf+1t317xEX9ml/xRPniuXvZsxpApfsv87sw1E9I9q75gyDHjppzaty7Edl5fvt3 1ve/VkCF/05UWA+YU45sSZenbWhVsuTsa8p3RWvjz/FBabZqqcgUfMGVnf8svLkNjjbeoq NtzXjy5RfpOzd0GfmTZBZrN1VneRXLuWoSrbMd+BRM1BUF/2Q1QZOmbOHv3m7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199738; 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=8rQyOeaN/ivU8sJiK/3IZ1JXg6yaSr4xUwS6biS05o0=; b=bHKNKcfh2pRTVUBpYyAMOVfyH7sgS5v2NaNLCGjNa0K2VI9M/1QdYJ+hWUsYm3aWsjPTD3 2IhU9u+AuCnWyAElqZUN++YjVVrzQnEfry8HErzXk/D47j+e29mzZ/TP+eLf2/EBUXz/I0 rF3Cl0qYq6Q8zI5IxnKz4LBmrGHhMA5XUGFZJ14IXzTKU+gAS4QGhNbEVjA68Q/XFH2WGg IIGUNLQ1Gbf+Oq9sJ5aqmXj6rZjYJgXNjWcdJUpQ6sW/xYynbbNbbE/WjUvsjKs2Pj+8vP 7otMQKcRGwQm/G7ITdyxwL3rj7sO7oq+9W9K7wsj89b8zpgUHuycgNof8G2HeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3Z4BCZz3TG for ; Tue, 19 May 2026 14:08:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cc80 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 951e271d4985 - stable/15 - libutil: Include param.h in quotafile.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 951e271d498580f78093ae34f519ca4a49607302 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:58 +0000 Message-Id: <6a0c6efa.3cc80.45cc597a@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=951e271d498580f78093ae34f519ca4a49607302 commit 951e271d498580f78093ae34f519ca4a49607302 Author: Mark Johnston AuthorDate: 2026-05-12 17:47:04 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:33 +0000 libutil: Include param.h in quotafile.c Required for MAXPATHLEN. MFC after: 1 week (cherry picked from commit 237900f17f091d059a3ead6a5320285654f4bfa0) --- lib/libutil/quotafile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libutil/quotafile.c b/lib/libutil/quotafile.c index 1f02813dee92..e8c8b39843d2 100644 --- a/lib/libutil/quotafile.c +++ b/lib/libutil/quotafile.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include #include From nobody Tue May 19 14:08:55 2026 X-Original-To: dev-commits-src-branches@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 4gKc3W3yQ0z6fFdW for ; Tue, 19 May 2026 14:08:55 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3W2wlTz3hS2 for ; Tue, 19 May 2026 14:08:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199735; 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=KZdV9Pj4iUKfld83nz320ogJd0xoft3FoMfR+21TgJ4=; b=Sh/kWXZbnNavl0vgjFPZQ8U5XwEdmxHuZdQVIey4XDaJPPqabPi66MtMkyuirW+zrE6n0Z 7Ic0qdd/CGEIxjLLWEUiBWfzfOAkaDDbwamCZ6MHYYfaZrdjOvD/Q22Kr1Tbgyj8CbOKuT gc7DAl5AqdcOE2MVQn6Bfd+hXsXwbr4olLz41tVUSMIeZD/NPCjwrY1kSjVFKkTsBhkarS UAh+PlB2pOeTQggcuGnT12KgR1aZFfnOjmlWTg0yoTlM8GJSGFQPHykMU1p7K0pe6TsDe8 OtZuUbDvlFq7VaECX3woCbOb4g22TTeCdBIgfF3eDCvsN/n90ZyLZXn9oaVhTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199735; a=rsa-sha256; cv=none; b=VpoH5fIMnlKV/vJkwgaHJ5oPcDaEoyrZY5GgbGEpN627HPje8pyI6CbRU7LHzXohNNE8B2 vlmLcD8qCVF6sx5HlXQhJWlrwOIs6Ro9PYpKYYHbhVUNpgP5acs9xuI2YlTq1s4rXQARKY fIET8gyoFTvS/iTfBbR2PVlCxFSO3MOAoPNL9MFQ/KBLLi/cSd0LEGv7nAC9hH/4VoEzZ6 V7me4Mt1DNZ9S2H1+awIlSI0qG5EPIEmbxH3cf4ds86+iHWBSbfI5LbT1nKNcGlrhXlLGf RLhgqpGt9p+RXX9G29vBsmox5im1M/r7TmksUX0hhXmm6NMfqs3BqvQzbhbPUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199735; 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=KZdV9Pj4iUKfld83nz320ogJd0xoft3FoMfR+21TgJ4=; b=lX/ODCfA/jCvUVH2QkboCwrXe/wDiGrkSh7zFJhPVf/zrIYg4nXG1C63Dypm7QOvBsRZPP jWNCk3JMti+MAJxr5JUbyewPq9eXpe7Ecy7CN0CZsCOqpNsbz4Fbjhk+I3d2o8+Whnxz3w thamDlC/n9twqJ6yT/581UJ/vA5V8EdEo7JziuVuqCKC5ftt0dMjxDgu82uEGfgNkCT98K d9dFI3coN9mvKyZ6+Ly2xkvI2e2/aa7E7J54r3MpCuafEoROspR83q6WuWSAZf+yBfZpHu ZE/sPYVuooPiQaFUfYE2EsppAqq3rclOzmtpR3GmfXFyS+JcrLytXMyuzWKtiw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3W2FcXz2y9 for ; Tue, 19 May 2026 14:08:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b137 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9eea4e03d1d4 - stable/15 - hastd: Include param.h instead of relying on pollution in hooks.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9eea4e03d1d493892111e690d013f25cc0fdd187 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:55 +0000 Message-Id: <6a0c6ef7.3b137.35ad6c4d@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9eea4e03d1d493892111e690d013f25cc0fdd187 commit 9eea4e03d1d493892111e690d013f25cc0fdd187 Author: Mark Johnston AuthorDate: 2026-05-12 17:46:34 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 hastd: Include param.h instead of relying on pollution in hooks.c This is needed at least for MAX() and PATH_MAX. MFC after: 1 week (cherry picked from commit fae5815a1d7ef6ef07a15231ca695cba0f848e18) --- sbin/hastd/hooks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/hastd/hooks.c b/sbin/hastd/hooks.c index 43ba6f06851a..f8c908928b0f 100644 --- a/sbin/hastd/hooks.c +++ b/sbin/hastd/hooks.c @@ -30,7 +30,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include From nobody Tue May 19 14:08:56 2026 X-Original-To: dev-commits-src-branches@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 4gKc3X4mMzz6fFhM for ; Tue, 19 May 2026 14:08:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3X3bDwz3hMv for ; Tue, 19 May 2026 14:08:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199736; 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=/BoQ6qjHNzuKOILYYmll75U1el9dy/R/HkYTA1wDeMY=; b=hdP576Es9N95C1yLWaGrfwr/3c3SW9I83u9lHIbwTD+vw/N6iVi2m4hHfOxRX+sZBI40KN GbNbqYxkh6mJL6Im1//83DcvmWKz7mQ54LuhDVReZrjCKyKkZJ4k5/iwk9L3APSLVKludf cd2oNhG67rJ2aD6jwde2vgsSTYmgNL/VYffsoD97xHSzry4fP9pi6y3nCrt13k14BkQ2tu AJAEyR4cUqbp+CufOm46/qvm/Vvnxfq2iEwLzkxU8RhW3/19utdUF+iV2psbHbo9dLiLOT RxTq7MqbNIvlUhQHYlNtqT5AN+3lHgAKMRIZmqghlbQryNVOmUkiZ4xgQQG4AA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199736; a=rsa-sha256; cv=none; b=J4FxoJra2xcAjAQRBRL1QMBMPriseReACh6dAPFP7M19LGRk/bR7/9dsw9GPxXwLgcY8fb 0Occb8jYYvhZ9Cjq+9rAr2ysz0yRV4h2sUWPbaq596Jt1hffeVktHbk5mNFbDGiqM17aAi 6EuH2GAwNi2uzluvaMl5BUdIwlSzFyxdrLNJxBk8Yw4ezoqt/6royTT+35vJl85Sj+zjrm J/OGgdVprEVy8I3aLBGU6Ihp68crbcOlJh2/WXyMdQQtSZ7pAQxLz7fCXw/Se6QtrlRuLb jZU04YHFV2C4HvL4Y9IyxSprc7C0iy7oPOShcCbn6b3ppyvT9XMWjOuQh+f6/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199736; 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=/BoQ6qjHNzuKOILYYmll75U1el9dy/R/HkYTA1wDeMY=; b=IwPa0EYU6JXJQcXhlwaVipwSlwDapIiDuys0Lh3hCWbZVvMkJGTY3e6mYfz3iBIOkuxj0/ cPEUpR/E7KDztJISbS4r1dcIB2RjVY1FklkaudFn9wPVFnilSE1bnCleADww9YsZTwzIU2 /Aau5Scsy7HGZvBMJ/+PJWzKg3AMsxaSHXtQ+FLXnud6O8mMBZVDwaUOPMIzySOdsg1RQl q/eoW3HG9/o4yjUu0vIIZrisH7f8hBWK5E44YrG4m36DT/b4Xi8wZOkDyB4hr9pOwxrZX8 UwJ2Vyit/6+ez4S4TeGPuPdaOyfWNW2ErpoVIH9hYkWV50qRMbY3A3LRbOnhvQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3X30dsz3Rp for ; Tue, 19 May 2026 14:08:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c28c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3dac23ccc75f - stable/15 - edquota: Include param.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3dac23ccc75f75c2d280b2c39dc9757ecf085452 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:56 +0000 Message-Id: <6a0c6ef8.3c28c.2ab624e0@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3dac23ccc75f75c2d280b2c39dc9757ecf085452 commit 3dac23ccc75f75c2d280b2c39dc9757ecf085452 Author: Mark Johnston AuthorDate: 2026-05-12 17:46:40 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 edquota: Include param.h Required for MAXPATHLEN and MAXLOGNAME. MFC after: 1 week (cherry picked from commit ee2d1a1a5a1877f8ce7b9eee94479ec702880bd7) --- usr.sbin/edquota/edquota.c | 1 + 1 file changed, 1 insertion(+) diff --git a/usr.sbin/edquota/edquota.c b/usr.sbin/edquota/edquota.c index 6c209cd23716..f9780a7b0507 100644 --- a/usr.sbin/edquota/edquota.c +++ b/usr.sbin/edquota/edquota.c @@ -36,6 +36,7 @@ * Disk quota editor. */ +#include #include #include #include From nobody Tue May 19 14:08:49 2026 X-Original-To: dev-commits-src-branches@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 4gKc3Q1cfYz6fFmD for ; Tue, 19 May 2026 14:08:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3P6l9zz3hS0 for ; Tue, 19 May 2026 14:08:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199729; 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=nuH/ePrqhmcR/TKsJOdMFWinpMLnoq5vTMKHZYNH43U=; b=n3ndNeRPZFFAOMDPZtrxdUrESe+bi0pnPXaGcxl0UyeHyF0VqoSOahlMb4EKZT7vqnY/1P Mp2q1mMjdGWT9CIz5AZcSgR+R4i0l94YfJNR0sKgn1vF0t5x7GEq/7h032pPVB58gFNsL/ OCDIPozqL0k+sgRip8clEmrCo/9s7046It4eHWqdpQeLG8ZOEToPNVWJPNRAaO0o6qDBnD B9ujGhNP9CkqxyuajNgMMYqm70Waf1bHoW3heI2ptSAU1sD+2QJo3BuM2i6ypB6j9UKhbT XeYPABlZAUH+155STsVkkaBPIr7n6wjwiw8bvvsUThGivaRa9x21DLvIDx4p0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199729; a=rsa-sha256; cv=none; b=Fm6MXvF+msOuJz3jiYqpvMaHkeJYR6wogcU0u7sk0b7VG9H9Ci/c0wvTmj2GgQCxuerwX+ DfUHaGyFCIOeZ7iWSjPUuaJJYNGHZZ/G9Oe8uflfBkpOU5LLJdG09/vWtgwdtm/xBRQ7M9 Vcf2zDTWji5Qfr8420RXEPzwdZnqjtiB5u6GHzaMemBzPUNqKCRJUWG2aQ7OxCWOq3RIxl qKMQKSyvxwNyBuOAZJdrZuqA4USetLM9umoVBTzQhOhuDzJm5Ao/Tvxh6JgKt2MWD8OY1C s3URrX1Y8gTYZAj7egDpf4HKuLZ5SLfVQ5qghRUncRmhlDl95AM2ZeUBRDKbDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199729; 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=nuH/ePrqhmcR/TKsJOdMFWinpMLnoq5vTMKHZYNH43U=; b=cX4+AxKRzoLPjJ/gJEoOnHyOUTZlgdvXcCAtr2V9470M5ZxNfnzWxhgfqDEB4Bzud19fh8 4e6WoNLr0bQl4SbYuKAOqzYT4fw9IoutMTKK0DeNEehg3mu5t1FbuXQIh0X0+IEc96lCXN KH33xmmI56deeHaF2+WT6A7Mz4fpNdp8NeqNwAjhWjxdmSjI2koZhu0pNNIltufOe79+k0 ZJUTLgCXIQdVSf+dEnmDi5He6ISrJgpPmKuH1ODrixnqOOa+rmhleaReon1i+nlH3w7R0D bT5qroFqgxbVXmU/WILsOW6uWPeYmDmB4DTWX/00Ny3EBrQp9mY4phgQg0EWFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3P6B9xz32T for ; Tue, 19 May 2026 14:08:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be0a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 54e213d95ff5 - stable/15 - igmp: Avoid leaving dangling pointers in the state-change queue List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 54e213d95ff554190359fb0ae07927eea8e55d1d Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:49 +0000 Message-Id: <6a0c6ef1.3be0a.6234626a@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=54e213d95ff554190359fb0ae07927eea8e55d1d commit 54e213d95ff554190359fb0ae07927eea8e55d1d Author: Mark Johnston AuthorDate: 2026-05-12 17:53:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 igmp: Avoid leaving dangling pointers in the state-change queue When igmp_v3_merge_state_changes() is iterating over state-change packets, there is a case where it'll free a queued packet but will fail to remove it from the queue. Fix that. Reported by: Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai Reviewed by: pouria, glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56947 (cherry picked from commit beab4a237a45aea809e81802b9e1e9ff30f3d929) --- sys/netinet/igmp.c | 8 +++++--- sys/sys/mbuf.h | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index 63a44bbcfb7a..5d52abd32c21 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -3327,10 +3327,12 @@ igmp_v3_merge_state_changes(struct in_multi *inm, struct mbufq *scq) CTR2(KTR_IGMPV3, "%s: outbound queue full, skipping whole packet %p", __func__, m); - mt = m->m_nextpkt; - if (!docopy) + m0 = m->m_nextpkt; + if (!docopy) { + mbufq_remove(gq, m); m_freem(m); - m = mt; + } + m = m0; continue; } diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index f9141bf70742..8a0a8e31d5b4 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1652,6 +1652,14 @@ mbufq_enqueue(struct mbufq *mq, struct mbuf *m) return (0); } +static inline void +mbufq_remove(struct mbufq *mq, struct mbuf *m) +{ + + STAILQ_REMOVE(&mq->mq_head, m, mbuf, m_stailqpkt); + mq->mq_len--; +} + static inline struct mbuf * mbufq_dequeue(struct mbufq *mq) { From nobody Tue May 19 14:08:54 2026 X-Original-To: dev-commits-src-branches@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 4gKc3V2zbsz6fFmK for ; Tue, 19 May 2026 14:08:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3V1w4Vz3hF0 for ; Tue, 19 May 2026 14:08:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199734; 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=6I9GJVrr+XNr+lsxP+aa4F17H12p52YrfNIdWVzlndY=; b=dlh11a4bzVklJXhx4R+N2bZdP0aEWQOAoh/z7oK2M/F22TivuAi1NAALtRbTfk5Dar6AfR D+Iz5XOfPIBS9J0k7Ct0X4PIYa+qMmbTNA6Oxr6nC224bKwhfTvvtnUOCaNClXVKtw4HSs zo3HkWZ6iOT/h6Zsc4rCpDZpTgmcfM1cTWPBLMr0PPLW8bn/zc8vuPKk+vN+YuSjrOANzp aezaH9SgADvpail7l9a8qX2X/xonB0nFbhncCPtbjtOAI7fCQg0jZhsGxQ+wZW6EHt4h9y XB6A2Xam+nWGab+bxWbQ5anTw29mCeY9lG8BcXJXllcs4ttRPdyfEeAg5G2lZA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199734; a=rsa-sha256; cv=none; b=ol+qzTSUnqoN0FfhllEnEcw6gyeRNGQWJ6P1X/2uXzwsBKRPgIZSjC2Ysq2opHh6A9TsAO D+JaHzdmvbp9XhdEBE1FgidTXDUD6c+q1m9vBsA6HSAMp5KRR33Alejog6ifBrh49o7vQa zHvjrAQXg05CwYB8gFV8VW1YXXFPrmB2ufu2Jfphuq+dAHsBBYqP33BfgTs6lfn2G1vqg8 U5LkGwXnLuxB0nnIUJpyc0rjY3buzO0RM/gpKg6FHUfjVuZ2qP7LjOlJCeBCgVdz3k40iY qiksGKnEgpUgT6hYrJRfZXgEnT5NzoUf4rSPmD9F6wD+WGHLYTG/5IeiFlAUiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199734; 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=6I9GJVrr+XNr+lsxP+aa4F17H12p52YrfNIdWVzlndY=; b=gkwQaalK85ICla/JsqGReC4Ooxt6/bYvjI00Lj3zXFxUFtukmOHnhMNtcEgUJwpDAFDhXd mc2yAHDk5l/zCKnQ4FZk0CryicTJhjucviSnmT0LnCyrdtT0fOZ8ea1VH/OIoxEtIyXBkg w1Pz0gaJk+SfQe6RnTcSDynqbRuvwUMtMPokiNADKLL5x3ddMT3kpuBUJ/dp7VdsSYNvt3 4HdG/j/bocKAVUZahBqW9osvlLjLKL2rNCpziOoSfSY8vsGHODHu6VdUhqKGxyhp7bxuKl Bl3gjf5AI4QBJUtLzeuBB/qrKl88JVOJu6V6Y2mCi6vY9lWp739sRKxBOBCYwA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3V1R4xz32W for ; Tue, 19 May 2026 14:08:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c30b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 111a521dcf42 - stable/15 - find: Include signal.h to get a definition for sig_atomic_t List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 111a521dcf421711426e5c34e83fcd89f50cecf0 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:54 +0000 Message-Id: <6a0c6ef6.3c30b.3666f5d1@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=111a521dcf421711426e5c34e83fcd89f50cecf0 commit 111a521dcf421711426e5c34e83fcd89f50cecf0 Author: Mark Johnston AuthorDate: 2026-05-12 17:46:29 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 find: Include signal.h to get a definition for sig_atomic_t MFC after: 1 week (cherry picked from commit 5615db1007bdc935ac6592a66721320ccd8335ce) --- usr.bin/find/extern.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/find/extern.h b/usr.bin/find/extern.h index 250b5fb6689c..acb86f084fbf 100644 --- a/usr.bin/find/extern.h +++ b/usr.bin/find/extern.h @@ -29,7 +29,7 @@ * SUCH DAMAGE. */ -#include +#include void brace_subst(char *, char **, char *, size_t); PLAN *find_create(char ***); From nobody Tue May 19 14:08:59 2026 X-Original-To: dev-commits-src-branches@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 4gKc3c1928z6fFdZ for ; Tue, 19 May 2026 14:09:00 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3b5P7sz3hF1 for ; Tue, 19 May 2026 14:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199739; 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=vT8LqfzLAKtJlHLMpUEWkpGaQQWjGQDLN6FVVzsSAvY=; b=pngbH2UQ5DXGSoRiBZjT27gEoO9NLyZlhadSCXU1C/xc3IhxTb1CANtdhWHkBRo+Rt7hFM XWLUFmIYwS3AvTpV4+VO1A2TlYbkm6TeYGKtTCWC7yIBa2fwLPtGsCARHvH3u2m1MGx/hE UTPvKwH8vM327UKWY+u933G70tBG9dGMZpOdHqPaRx7Syk0R7vwT1mprN8A7/WpvFHW8FU zJYpX12htbibZXz94uN5/cYDugOqKMG+MshOn7fn8/C8GgeZC1qGJ6a2HfSSbeLy73f3XZ w5VDsELPFmNpzsmNjZyRF9PDK/e3Wja+BXFiqzRpc7tSgjWLkzPAmpXu4kubAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199739; a=rsa-sha256; cv=none; b=RuWV9DDPWOmyN0RqRnVKufuCxrD9Lcdf5Br5/qqkgwMT/vlgc/XMxmfHz0FFg8vecwF5dF RBrOv5+qVaziwPOcYO5kiHTYQkMGLBqJrVmVuZkDzKf7mhWoA/KP83qSrneijvAxrrtwTm ob7TXGVxjmKP1NGer9GGlN6vp4+6EvMLxF7+X+Anv0TdrrlRQgT/Nb1knxktk5ecsyLP3W 7f64f+NswZgg2r15i4TwbASGxaumwy8nDBbi5wu+tcIEv9lNnPmf4gn1kN5kP2pbMr35Mp qI9MAPp58pgzi9tsSBOYD1/qiJD/tcO4x/sP4OVqNIUh5EzndPTGWQWlw8PpQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199739; 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=vT8LqfzLAKtJlHLMpUEWkpGaQQWjGQDLN6FVVzsSAvY=; b=G6Z/AzCjXZXhowPUDOLIKm8coHoD/fg17mF/bHVIs5QyLe36IlX+gjmHqE+PmP5voWn+7d JUNlXh1m3Bmc06E8gPO2T8093pxWMVA063qVHOEsIRiUuvbAmB3bei31sPZDCOuQpw/byS TsZReWwBxxrxYxN1Bhf+bOwgJkaejv/wCedYgajRwI7PyeJ7ukmTekyQMJ/bSZCpzwJL6N 268DXgtZigUVHuXivo8FN6D6ud31REgQ8EsMlKs/Ksdr1S1Cjcll1/90+362YcKdQ20W90 9ijQvdLx0PKZnRUoMmOi1eUYzVgD2rccYFt8xb8eDgYGpMww1rvar79/BEZp2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3b4zqrz2kK for ; Tue, 19 May 2026 14:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be8d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: e2053ee82d2c - stable/15 - fsck_ffs: Avoid relying on param.h pollution from libufs.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e2053ee82d2c90471384dab765d0679c90233ddb Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:59 +0000 Message-Id: <6a0c6efb.3be8d.3f3e0a1a@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e2053ee82d2c90471384dab765d0679c90233ddb commit e2053ee82d2c90471384dab765d0679c90233ddb Author: Mark Johnston AuthorDate: 2026-05-12 17:47:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:33 +0000 fsck_ffs: Avoid relying on param.h pollution from libufs.h - gjournal.c needs param.h to get a definition of isclr(). - fsck.h needs signal.h for sig_atomic_t. Sort includes while here. Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56858 (cherry picked from commit 3cd3900b690d8296094921cec844da3f72d30cbb) --- sbin/fsck_ffs/fsck.h | 9 +++++---- sbin/fsck_ffs/gjournal.c | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sbin/fsck_ffs/fsck.h b/sbin/fsck_ffs/fsck.h index aaf02850f29a..ff2ac6305be2 100644 --- a/sbin/fsck_ffs/fsck.h +++ b/sbin/fsck_ffs/fsck.h @@ -62,13 +62,14 @@ #ifndef _FSCK_H_ #define _FSCK_H_ -#include -#include +#include + +#include #include +#include +#include #include -#include - #define MAXDUP 10 /* limit on dup blks (per inode) */ #define MAXBAD 10 /* limit on bad blks (per inode) */ #define MINBUFS 100 /* minimum number of buffers required */ diff --git a/sbin/fsck_ffs/gjournal.c b/sbin/fsck_ffs/gjournal.c index b94f27758315..edbb2f373815 100644 --- a/sbin/fsck_ffs/gjournal.c +++ b/sbin/fsck_ffs/gjournal.c @@ -53,10 +53,10 @@ * SUCH DAMAGE. */ -#include -#include +#include #include #include +#include #include "fsck.h" void From nobody Tue May 19 14:08:50 2026 X-Original-To: dev-commits-src-branches@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 4gKc3R26yJz6fFvM for ; Tue, 19 May 2026 14:08:51 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3R0PjLz3hMr for ; Tue, 19 May 2026 14:08:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199731; 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=29Tak6WI8+gC5J6D3I0lX0Qx8Gr5d+BpzJQPSl9J9Xo=; b=OUPjX13OnxmkRVbUi6l28N1ypCLvc1ywIjYxpuw7SMTniOwXdlXbAvZhQEuAqckvSEnoip gGS9zDXk0dgIF95aVDsEG6bq5zBZC3iEOktlz8opKPDyELpff2fIMwPuKhcyDMfGg+JA4x DFNZe9xXKsv4aWZwgDQGFuFI/FvGn9to7Cz7cHM5/wSQUiiRabyYcPe58SInWgUyfZjnmH VImpzNKTZXYgXXXaOmRbrhDVqbhY/+XLeHT/YWV756h4jJLBFuMQU8UXbkYEP7hGQjb3zk fJz02AFyeiLD2c+J4WAZZSV4Yhf4VQ/OTI+2vG6+OWBO5EmF5gzOD4BAXmXMJg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199731; a=rsa-sha256; cv=none; b=FLRycv+JIt7zwznv/lMs24oYmlexYSDfCGobKAG8RR9KNQWeglMz+qmOYwwhKOQrYDzGA4 H4ZLLL1DKdThWx/TEuHwaJYag85BDoO7BZfBcESKdt/gp1QCNmQiYWlvwJRHW6k6er/xxw JWbnMpF7sXKDanz47fEdvHvq8ZUvx2sE110cyKU+zUmq+X2MCvC6JC2qic6dPx6q65eDkP iHrDOXiZNkrjrPeQ3sAljw6cBhBNjdLIe2ZW4Su4R9NZijB+M0mceAFhU3B26m3C53M1E9 v241d2koSpHdivGJe4SBlNbFK/Lsxz9vA/5/c6l2yj1uZsdIX6q5bbfaMWw/tA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199731; 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=29Tak6WI8+gC5J6D3I0lX0Qx8Gr5d+BpzJQPSl9J9Xo=; b=HgpXX+H+hLo1aoFLEivKY3AhVxcej5rNxYkv7ooIQwMzdPT/PcvJ2Apq03pcYNyvogFwC6 H81zT1Y4+PUSivGBvU8/BipIc2AlUz3QkhltSS6oBFOM7fLye6vwZglb6eFtTsyL1adtD4 A2B97RUJkKp5TpVQYGZQ83Skr5zoRtZebh8kq6qv1osrsvGTg9ip+TzLfGdwY0GS8nH+Au pprdBg4L0xWTT+BGELwbUqiVMfi9izSq6xR7+f45NMzyJF8A3PVGYEAVpIG6Fd+WceGftn Fw7THV1fBOe64x8KvfkHVDZZlPotvIrcOXaHat1e9b+N2rUCvNGfP60nCBc6ZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3Q6qPnz32V for ; Tue, 19 May 2026 14:08:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cc01 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:08:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 5478353afa3e - stable/15 - tests/ip_mroute: Remove test timeouts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5478353afa3e4bba4f054b6cfd8b061f6e7b951a Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:08:50 +0000 Message-Id: <6a0c6ef2.3cc01.450306f0@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5478353afa3e4bba4f054b6cfd8b061f6e7b951a commit 5478353afa3e4bba4f054b6cfd8b061f6e7b951a Author: Mark Johnston AuthorDate: 2026-05-12 17:45:08 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:32 +0000 tests/ip_mroute: Remove test timeouts The configured timeout of 30s is a bit too low for a couple of tests which create 4+ VNET jails when running tests in parallel and with kernel sanitizers enabled. There's no reason to have custom timeouts, just use the default. MFC after: 1 week (cherry picked from commit 3b16e96b005c723717aa6a4ebc48000354e64fa1) --- tests/sys/netinet/ip_mroute.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/sys/netinet/ip_mroute.py b/tests/sys/netinet/ip_mroute.py index c79b046445e5..0a705670e89b 100644 --- a/tests/sys/netinet/ip_mroute.py +++ b/tests/sys/netinet/ip_mroute.py @@ -192,7 +192,6 @@ class Test1RBasicINET(MRouteINETTestTemplate): @pytest.mark.require_user("root") @pytest.mark.require_progs(["pimd"]) - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2"]) self.waittest() @@ -287,7 +286,6 @@ class Test1RCrissCrossINET(MRouteINETCrissCrossTestTemplate): @pytest.mark.require_user("root") @pytest.mark.require_progs(["pimd"]) - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2", "vnet_host3", "vnet_host4"]) self.waittest() @@ -347,7 +345,6 @@ class Test1RCrissCrossINETMissingRouter(MRouteINETCrissCrossTestTemplate): @pytest.mark.require_user("root") @pytest.mark.require_progs(["pimd"]) - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2", "vnet_host3", "vnet_host4"]) self.waittest() @@ -401,7 +398,6 @@ class Test1RBasicINET6(MRouteINET6TestTemplate): self.donetest() @pytest.mark.require_user("root") - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2"]) self.waittest() @@ -489,7 +485,6 @@ class Test1RCrissCrossINET6MissingRouter(MRouteINET6CrissCrossTestTemplate): self.donetest() @pytest.mark.require_user("root") - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2", "vnet_host3", "vnet_host4"]) self.waittest() @@ -549,7 +544,6 @@ class Test1RCrissCrossINET6(MRouteINET6CrissCrossTestTemplate): self.donetest() @pytest.mark.require_user("root") - @pytest.mark.timeout(30) def test(self): self.starttest(["vnet_host1", "vnet_host2", "vnet_host3", "vnet_host4"]) self.waittest() From nobody Tue May 19 14:09:00 2026 X-Original-To: dev-commits-src-branches@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 4gKc3d2sWbz6fFbP for ; Tue, 19 May 2026 14:09:01 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3c5vFxz3hVP for ; Tue, 19 May 2026 14:09:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199740; 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=yclyF+PiSYqCNqxqdTnz1NQWfBCiHWshHWk3E99j3kQ=; b=wIZG8suyaFmoXgcEGE13NZoRAIWeHFsy3zA7gpBZXLKwbqFxUugzckWJEP3DtwnUlo4P1F u/pvMCEyySOgKgAYX7/ptIXc+bGXrIvKIYFn5rChV/xS6wm9cLV04eMng/wCc+8aPlvaN+ PupnsaeShWwg96PHWriI20t2PnNOxPq8kMYFwhYGLkgC74jvyMND2ggaJq41AuwZDkpzdn VCRFPz7w+9ap+u12ii7dFliL3l86rcz6E+kvA5IbDLiD3AH4O+lmDtxDt1XEEdJjtZLPdq sTmmekjspeQIIIhn3KU/3trMqCcBMFKCbdtdKFm7pczqCFRg0ZDikGOzXXY5+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199740; a=rsa-sha256; cv=none; b=HjW9r0jGOzXO0FSfV/FG38W7zChfwqnBKhgtLh68nm7O0bhV1MxcTMflXViJBmIGbyiEbr 7kqU9kzkChUA1DIK7q/+YuI4FMWOXzZQG4BDsnZ50nllnJPnSrIh6rDa8l6T7xkTtZuo4z mczh9cAuk5hoptlVgZ2wpHZUSHll4dsZgNOJiA9jD8TK5fBODznNceAVM25eIlr/UFan3d D3uC3iXhJYb5O02xtwbIu1sSklTJebVRFR6nUXLdHWRt0FFGx5XYEr5rgnk5fHnMa3GUD3 dyApn4jyijN/Jt2tr0ZfjeNqpwAPLWZUnFX1MQ9vXKFz+d1BHbl4CG+vhww4tw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199740; 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=yclyF+PiSYqCNqxqdTnz1NQWfBCiHWshHWk3E99j3kQ=; b=dUa0uJ0MkQzOppU3cF10UOs8oOlivPtNk2fSaBxAbTbuB9j0RSdi4+cXAXUd1L+VPYYKVu YSgQbrFwuPpdwbCXm+AD2lGcUOmI5hO0kNp7PfyXMVGUIUfkpwJVPwLFZWLcNoSmxdnrLL avrKFe9imV0HWs9RuHaKakiNiY16NhOXLNY035l/R9EBydW7vuy+sYARFjcxPtDU0iTJOO pHgAXcxl5twS1vGkfc8DPjf5cGJb001wJtDYRazMTvTyIeFqKRs0cPO11FkBV3vLhQLWOG ofXU9Psd6yCKxrGS6crvgVPpfPh1vqvgDA9UVLgaFjD3id1gdQbNgFdA0m/UdA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3c5W6Cz3FN for ; Tue, 19 May 2026 14:09:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bdca by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:09:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8e44312642d2 - stable/15 - libufs: Avoid using param.h constants in libufs.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8e44312642d227eda977582e2d61767ddb227991 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:09:00 +0000 Message-Id: <6a0c6efc.3bdca.28bf4cfc@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8e44312642d227eda977582e2d61767ddb227991 commit 8e44312642d227eda977582e2d61767ddb227991 Author: Mark Johnston AuthorDate: 2026-05-12 17:47:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:33 +0000 libufs: Avoid using param.h constants in libufs.h MAXBSIZE is defined in param.h, which defines many other things. To avoid forcing all consumers of libufs.h to include param.h, let's instead redefine it and verify the definition in inode.c. Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56859 (cherry picked from commit 271d25a066b59df1e2bb774990948c985382126a) --- lib/libufs/inode.c | 3 +++ lib/libufs/libufs.h | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/libufs/inode.c b/lib/libufs/inode.c index 863e71867daa..bc4d99c66203 100644 --- a/lib/libufs/inode.c +++ b/lib/libufs/inode.c @@ -48,6 +48,9 @@ #include +_Static_assert(LIBUFS_MAXBSIZE >= MAXBSIZE, + "LIBUFS_MAXBSIZE must be at least MAXBSIZE"); + int getinode(struct uufsd *disk, union dinodep *dp, ino_t inum) { diff --git a/lib/libufs/libufs.h b/lib/libufs/libufs.h index bb92e082a875..b76d15b338b4 100644 --- a/lib/libufs/libufs.h +++ b/lib/libufs/libufs.h @@ -29,6 +29,7 @@ #ifndef __LIBUFS_H__ #define __LIBUFS_H__ + #include /* @@ -38,6 +39,8 @@ */ #define LIBUFS_BUFALIGN 128 +#define LIBUFS_MAXBSIZE 65536 + /* * userland ufs disk. */ @@ -48,11 +51,11 @@ struct uufsd { } d_sbunion __aligned(LIBUFS_BUFALIGN); union { struct cg d_cg; /* cylinder group */ - char d_buf[MAXBSIZE]; /* cylinder group storage */ + char d_buf[LIBUFS_MAXBSIZE]; /* cylinder group storage */ } d_cgunion __aligned(LIBUFS_BUFALIGN); union { union dinodep d_ino[1]; /* inode block */ - char d_inos[MAXBSIZE]; /* inode block as buffer */ + char d_inos[LIBUFS_MAXBSIZE]; /* inode block as buffer */ } d_inosunion __aligned(LIBUFS_BUFALIGN); const char *d_name; /* disk name */ const char *d_error; /* human readable disk error */ From nobody Tue May 19 14:09:01 2026 X-Original-To: dev-commits-src-branches@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 4gKc3f1WDkz6fFbQ for ; Tue, 19 May 2026 14:09:02 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKc3d6nw2z3hC2 for ; Tue, 19 May 2026 14:09:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199742; 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=WYjQX19JZmHx4WprNaqlpFkj4M+ok/7BAn5sXv5nvLw=; b=SZbfMmT8tAESY5QeuxJaL/dlDw3qMpVTSp4CRwMh4HhTg1GHqNtVMb6CLQ56CU9ULYtyBt yq3MgbcA2QQIl0bide9d5fKqpDvdZEr+fdPXTPhBrmeG1iPWj/k/1Ye1UXSGQvJnbDr8Ri 7Onbciee+PafWwkLlg1QChWTf/zfanr0gKUobOdaD3fQspTxBIEULykSX+/8kH+pD7N87r 3KzkT0A1VuOL1h+pqkg++p73oOG0iJNBJYE9McoPkJbPLFJnbOe+YAcktBF0wncJwN48mR vbD04vj79ZlY/ibOO5eu6skyYosJaEiKXjdsDS7zr60rAmY2lXJiNucYKCM06g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779199742; a=rsa-sha256; cv=none; b=R0XQfJ4gtqor3tVlJ7Nv7WqcteJmTpOk6OeOcCKJ/tbLI7IRn7UsokVZb5qd+iBwG5FUmq OJk675jQ+l6gYFi1N38Z9wri/+nkBtwKjNWn88E1Z+m/xavhI+1g5CaUChaNvVIs9layo9 yFIiFQUMlIMG/pEfv+LhTwfJ4wQ93fG8ADaFbiSK8foPeiJcjxEk8NPMgIBWfIvz7lmPPk /qN5Wx86MHGgSsUNQLYRhR7rnWdycEbeOQZSduENT+ZOt9uBkKsUjBGpDNbv4oAdmVylPl Tp0oau4UTF/wEIzElZ+elYXIFYp0rpdpQlXKao1SBbi68AHUY36vqlsEuwWM6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779199742; 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=WYjQX19JZmHx4WprNaqlpFkj4M+ok/7BAn5sXv5nvLw=; b=oLlD2/hJR+DLkk5JC+m0tqsR+rb6qUg5KNmj0j8GZXDq+krefNKpzemz2I/6CdAvL+0p9d xMlcX4waUiaaponHI+NFtc09D+tN6/iuEttfltQqlcGxFMhbRi59AH6bE50UqRLa+ng0m1 WZl+rWpYyJdWFiyy6boG+n8TXk9kAzgo/DoHdJSBptRMmQAzlz0g/2rFqLXUhdnvqmRMe9 PmvTYwiwGEUH6L1CzTdFLnetNAvFy/Q0eDFL0bW/IivcJYucMfc5jOWzhGqEMCKKGA7Cp8 hg8fT78seGAs9qTUAjLzgFy6r+ku0FjBQqZEo/0dcs/v4ECcyVjUsnCDSB07Qg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKc3d6JqLz3FP for ; Tue, 19 May 2026 14:09:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c12e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:09:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 919d22070bbc - stable/15 - cpuset: Move userspace declarations out of _cpuset.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 919d22070bbca458ff011ab84f5b85bdd0a27680 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:09:01 +0000 Message-Id: <6a0c6efd.3c12e.113a4fbe@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=919d22070bbca458ff011ab84f5b85bdd0a27680 commit 919d22070bbca458ff011ab84f5b85bdd0a27680 Author: Mark Johnston AuthorDate: 2026-05-12 17:47:25 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 14:08:33 +0000 cpuset: Move userspace declarations out of _cpuset.h The _*.h headers are for structure definitions and should avoid dependencies on other headers. This convention is violated by using __BEGIN_DECLS/__END_DECLS. Move the declarations to cpuset.h, I see no reason they can't be there. Reviewed by: olce, brooks, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56856 (cherry picked from commit 8b4b995effb7911cc13706dc309d5e03c83b9a94) --- sys/sys/_cpuset.h | 7 ------- sys/sys/cpuset.h | 7 ++++++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/sys/sys/_cpuset.h b/sys/sys/_cpuset.h index b87cfb5d3f80..157192ed65ba 100644 --- a/sys/sys/_cpuset.h +++ b/sys/sys/_cpuset.h @@ -49,11 +49,4 @@ __BITSET_DEFINE(_cpuset, CPU_SETSIZE); typedef struct _cpuset cpuset_t; -#ifndef _KERNEL -__BEGIN_DECLS -cpuset_t *__cpuset_alloc(size_t set_size); -void __cpuset_free(cpuset_t *ptr); -__END_DECLS -#endif - #endif /* !_SYS__CPUSET_H_ */ diff --git a/sys/sys/cpuset.h b/sys/sys/cpuset.h index e861321586db..92c14b0de5eb 100644 --- a/sys/sys/cpuset.h +++ b/sys/sys/cpuset.h @@ -181,8 +181,13 @@ int cpusetobj_strscan(cpuset_t *, const char *); void ddb_display_cpuset(const cpuset_t *); #endif -#else +#else /* !_KERNEL */ +#include + __BEGIN_DECLS +cpuset_t *__cpuset_alloc(size_t set_size); +void __cpuset_free(cpuset_t *ptr); + int cpuset(cpusetid_t *); int cpuset_setid(cpuwhich_t, id_t, cpusetid_t); int cpuset_getid(cpulevel_t, cpuwhich_t, id_t, cpusetid_t *); From nobody Tue May 19 14:44:07 2026 X-Original-To: dev-commits-src-branches@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 4gKcr81wf1z6fJ8X for ; Tue, 19 May 2026 14:44:08 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKcr7754Vz3stl for ; Tue, 19 May 2026 14:44:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779201848; 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=pLepbZEFafZkjf6V/dYDcXZmc1MQCaqesEjpCYeSzAo=; b=p6WEyZyuj0N2RgZYsarR3bmRkqbk4HDwEe6fDTiYk4rHZT+7IH3dhesb98T7pgt12l2hHv xpsJZewwKnUSnvBcbKSoVBferjQFPRwpf39tGBL1M3ZZczlf3P4dfQIqYK2CD1i0ARbFCh 79qeg1VJOxEn0IHWBEjn2Vg/2LA1B7O9+nplIEEStazNOvFap5Q2qOS7OLrzv61cUBPmKe jDf861t4g8vJa4h+6IZWQAPtiEaoWu2zMCZM4hMA6NOltHLiIkoj6xfT/jAKg3ljNZ5+Ki bvCn03HO/A4k3YTTYYzQJAq3Gqo57x2VB1FCqX8JS5LkOFfxG5+AvECbvkIlRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779201848; a=rsa-sha256; cv=none; b=b4n3cHbH19cUs6+BgTcJgBqm1hIK/NZ58WpwdroCK4bkI5NuyVlgWeD6MUHQoF/5yJppfl c7tz+47YfMf+IyPsAxYl0tbjJc6rupi5iFQURlyzXSS3qusuJQrfbKCWMTlK1DMc6fmMek 3FpcKCZOkWWFSW+lI+NS3WZJvh0OB6YA4xD+86Wn4h5O45x/J9H5nE/GFkBHIAjuAwniJC qcHOr4L3NiRKsG2bv27QD/z1J5N3s3uwMZl6mFc/9shyRrgr1QacWZQhAZjvXyltr22BDA l24wc+zoKlpyzRMKioJfqwoSiHlFwNDVG4XsLBnUMMaBajJFEmCryeemlOZsBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779201848; 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=pLepbZEFafZkjf6V/dYDcXZmc1MQCaqesEjpCYeSzAo=; b=FG4YZcjyGa4QeCnQqcQ0biBi4Nw0psrq0nLm3IQpgteR1HRISaI52m/T75cEhsfoei0Ixf 6VbBSWsigqz9HBbT8EyGCNTOIzrcYLN4J+V8PPtG5aW9ADwdkf9L90nColwCl+JrLbl9Ea bwmkYRff9ARyRYACpLXzxqxLxgq5BWHoaeZZ87/Y3tjhjHbv1U1FikR6elNQxZdwVOymaU hrAZOFB/l6ZYyoEAtxWoNwyV8UCJGvbqAOHrGZ4H854EdPug8cePZyigoZQBA2txrTfqlp cHF0V9Fe9qN15XayJIbORn8nnzvQYn1Vc8PJ5TMhocMebAy5BbSnFPG6VCR1qA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKcr75z7sz3WB for ; Tue, 19 May 2026 14:44:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ecd6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:44:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: ede0f15e03e0 - stable/15 - tcp: improve validation of received TCP over UDP packets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ede0f15e03e0a172493cd20d1dd2d88b1711156f Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:44:07 +0000 Message-Id: <6a0c7737.3ecd6.2a5c0e12@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=ede0f15e03e0a172493cd20d1dd2d88b1711156f commit ede0f15e03e0a172493cd20d1dd2d88b1711156f Author: Michael Tuexen AuthorDate: 2026-02-20 21:21:37 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 14:42:59 +0000 tcp: improve validation of received TCP over UDP packets Reviewed by: glebius, pouria Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D55410 (cherry picked from commit e1886559ea477add82a0a86cddf728f6778f1603) --- sys/netinet/tcp_subr.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 7152e8ad600c..9a227218c525 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -579,7 +579,7 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, #endif struct udphdr *uh; struct tcphdr *th; - int thlen; + int len, thlen; uint16_t port; TCPSTAT_INC(tcps_tunneled_pkts); @@ -623,15 +623,27 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, switch (iph->ip_v) { #ifdef INET case IPVERSION: - iph->ip_len = htons(ntohs(iph->ip_len) - sizeof(struct udphdr)); - tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(iph->ip_len) - sizeof(struct udphdr); + if (len != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + iph->ip_len = htons(len); + tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif #ifdef INET6 case IPV6_VERSION >> 4: ip6 = mtod(m, struct ip6_hdr *); - ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - sizeof(struct udphdr)); - tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(ip6->ip6_plen) - sizeof(struct udphdr); + if (len + sizeof(struct ip6_hdr) != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + ip6->ip6_plen = htons(len); + tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif default: From nobody Tue May 19 14:44:50 2026 X-Original-To: dev-commits-src-branches@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 4gKcry2wDwz6fHv6 for ; Tue, 19 May 2026 14:44:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKcry16fhz3sqr for ; Tue, 19 May 2026 14:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779201890; 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=uIWoLiyF26iqVtOCTIgNdRYfEvyHZ9mQr6mnmHh4vdc=; b=oeNVuOBB/2k8tRtE/G72xQY/mBbYjOiV5F9QiLNZ33O4unVEyVYA9MJpJVR70cIZ4dyr10 To8ULXeNg8gzqkn0Sb257yNPT7I3onYdIUq4rVrMuvimOEH2FYVw+SuNigoto8j/+qjicA Xcw67+unIF2O8EVHvxCpG+2q6rLC9ZA0sFRQHTTgj+V7X4+lNY0xKJn4SmZdHfq/5GTFhk u5IEPkmoCqp1xyG2R8Dcfa7TySzUDk1ffSVHfglZ/MiA2f1lNQQDsRND7sYSKnhJcGIQtH Gr745DsiAX8tok2xoD1ECmiKAw9mCzy7viShKVH3gH77vqetrixs8owH1uzEQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779201890; a=rsa-sha256; cv=none; b=NAzRJjRCUFhADgmK12iLlo7yZWpJChJzS62Qfig1ss2oKsMbHkjyFi9doas163JDTFZoy0 MQWdlU7JJFExf1pEk0OUcrze3HW3WOIEY6i1s4rJT8Wv9Ux8mRqgqslmQgKVoOExOPDDyY sazX23VgPS+Alm5Pd+cr5Ma8m6npXUyHYsULWDt+6W7Zdvqp7Ah9CxK4L/c3z4lhFKr3Al FDJQ24DNZQpqd47pTcP0WzP0+eXdczbGZtt/npKUHiGXP6F14XfzXLmcRl4IJ6lW7eLD9q IXcJIuQNoYp6swZQf8zl8Bwh5Pr16UgvyQT/nNrDvbWnYCVVJfXm6rRmF5prZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779201890; 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=uIWoLiyF26iqVtOCTIgNdRYfEvyHZ9mQr6mnmHh4vdc=; b=fRwnreDzHDTB3t6i4iRP0c6Pa97p5Yl5cvdUVRZa2V+FcQOYwka2QEhruOECFl1MUveDGl dEyUeQXumioiT/DTM2kny6Bnq/rEcIfe/4DkLOzZzefaumqZnBDDQ/6cFBCxHsq7C+wGMl Y+H3ILmqJTXdIjgeXsIILH0rDW0zJqcbpQ4et7H8ndQ/xTaIGKywGZzECg56fDCNdoXhTQ VSvhOKGR4dGxLyS+AgDI2Rw+c4gXuQeaJPxABEzVTz+e5YB9AEs1I5U4aowB9jtRTgENee 6UHgu1uYjyoWF38+nP64B0Swuxb41lXRMHE4wOltpQ6L/6lRFlS4jMz9t7Nrmw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKcry0jLVz4KY for ; Tue, 19 May 2026 14:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ee46 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:44:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: de69cf1dfd23 - stable/15 - tcp: cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: de69cf1dfd2353c0af8023a094f985ea8a4cf15d Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:44:50 +0000 Message-Id: <6a0c7762.3ee46.32814345@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=de69cf1dfd2353c0af8023a094f985ea8a4cf15d commit de69cf1dfd2353c0af8023a094f985ea8a4cf15d Author: Michael Tuexen AuthorDate: 2026-02-22 17:44:10 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 14:43:46 +0000 tcp: cleanup No functional change intended. Reviewed by: pouria, rrs, Timo Völker Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D55415 (cherry picked from commit c984c7593e11aa95f21f79bb5425a9d5e9181945) --- sys/netinet/tcp_subr.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 9a227218c525..371158ea4190 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -586,13 +586,14 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, if ((m->m_flags & M_PKTHDR) == 0) { /* Can't handle one that is not a pkt hdr */ TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } thlen = sizeof(struct tcphdr); if (m->m_len < off + sizeof(struct udphdr) + thlen && (m = m_pullup(m, off + sizeof(struct udphdr) + thlen)) == NULL) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + return (true); } iph = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)iph + off); @@ -602,7 +603,7 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, m = m_pullup(m, off + sizeof(struct udphdr) + thlen); if (m == NULL) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + return (true); } else { iph = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)iph + off); @@ -624,9 +625,10 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, #ifdef INET case IPVERSION: len = ntohs(iph->ip_len) - sizeof(struct udphdr); - if (len != m->m_pkthdr.len) { + if (__predict_false(len != m->m_pkthdr.len)) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } else { iph->ip_len = htons(len); tcp_input_with_port(&m, &off, IPPROTO_TCP, port); @@ -637,9 +639,11 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, case IPV6_VERSION >> 4: ip6 = mtod(m, struct ip6_hdr *); len = ntohs(ip6->ip6_plen) - sizeof(struct udphdr); - if (len + sizeof(struct ip6_hdr) != m->m_pkthdr.len) { + if (__predict_false(len + sizeof(struct ip6_hdr) != + m->m_pkthdr.len)) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } else { ip6->ip6_plen = htons(len); tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); @@ -647,13 +651,9 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, break; #endif default: - goto out; + m_freem(m); break; } - return (true); -out: - m_freem(m); - return (true); } From nobody Tue May 19 14:57:17 2026 X-Original-To: dev-commits-src-branches@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 4gKd7K5tWhz6fK1m for ; Tue, 19 May 2026 14:57:17 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKd7K49sGz3vLY for ; Tue, 19 May 2026 14:57:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779202637; 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=jcIY0stQB1nHad6cWRoq0UHBAiTXnP6TXp0amlUA+TY=; b=oGHuUk0QzVkjmixMOSCHmaKZo/Y9XnJTLRjNIkUpM7q2OxHC+gdW3Ht5M0TM5vrTe/uHoY 7jnT3tp9raxemYjjvBxqpLoybVTTurEl8Ppg590KmPA4LG4k4HXcHBFUIhybtkK67LcwYV Td4gdNPxh+VmtsMrEoisGDGHCH8vZuKL+pIsJn+ua5ykDremIUtvHocay56G3pkzVf4fcO rLJr6YuHaxGYseLT2DMPADgmE6QzOn5qAc0EcteyVo8pbiCtd6wWF+J8CGNVmN3/os0yYx VbUekchQpwCk2jzTXXGmeqyA9AkVcBMqQMTtUAZz0tcx/nsOq64ofpAZRMS+Kw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779202637; a=rsa-sha256; cv=none; b=KssFNkPPIn+KFpVUfx3HQ+ahfwLlvqXFL3JBiJTUM1KSFCZZX4UkmCDLTgyjID526ltQgP s3GAOofB2XVUx5DkLYDYNVHwfxPYkL/L4P44jZ1Vbvzk6OjB87+tEfRBiMWzopCwNUxCzg eWH+b44CdhECHv0FAEiFlQIcMnvxBwMpiDUQ/2f4OUQncP4gB/rvv5yT6HAvdiBQGYUpHD mQiQ4S5CASqa7HXx5vx7YwgJbDFul7+bO/Y4BZHYpKomJx4iDOZFQbyZDTGBQ1uAnRDQKC N4WWiiw9IgXWAA9rqgQ2hGQEXdCXbuwVBeS6mn/FrTnzeMq7z+o3G84G8TLn1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779202637; 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=jcIY0stQB1nHad6cWRoq0UHBAiTXnP6TXp0amlUA+TY=; b=dvBAjqr63zf+pWso9yznf3YEdMbYe5gYBBK6K+R9+AUYjU+cyw6yOn2y48Md0yrck1CyoK +pGgppjcs/SE5/BGotpbCj5VH/ituIK4zF1rRpB4TqlIfirSVgSkoF845IVRTyAFkb1D/a f4i4NBr93h9jkf31+qs1sGswWVSiNmZpErp51Xxk+wxEoorsYQx/CqmJong2Tyys5SHZGW Ac8TvNksfUvMM1UsrzQ3xv31HVbQzfIt63wD4NwCT7GgUvCbalozJgBtNJK8/F6S/usi8P JIrbRYp7DGA+Fr/8Lcbw0tABAm8+DYv8JMSS1O5xrqems7p7a2aLcof5WJC04w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKd7K3Rwsz4lg for ; Tue, 19 May 2026 14:57:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 411b3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:57:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: efd07ee95616 - stable/14 - tcp: improve validation of received TCP over UDP packets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: efd07ee956162648f6ddb4bfe76b702a51ef427b Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:57:17 +0000 Message-Id: <6a0c7a4d.411b3.6c0ff332@gitrepo.freebsd.org> The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=efd07ee956162648f6ddb4bfe76b702a51ef427b commit efd07ee956162648f6ddb4bfe76b702a51ef427b Author: Michael Tuexen AuthorDate: 2026-02-20 21:21:37 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 12:55:55 +0000 tcp: improve validation of received TCP over UDP packets Reviewed by: glebius, pouria Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D55410 (cherry picked from commit e1886559ea477add82a0a86cddf728f6778f1603) --- sys/netinet/tcp_subr.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index e1346b433899..ca201d721616 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -626,7 +626,7 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, #endif struct udphdr *uh; struct tcphdr *th; - int thlen; + int len, thlen; uint16_t port; TCPSTAT_INC(tcps_tunneled_pkts); @@ -670,15 +670,27 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, switch (iph->ip_v) { #ifdef INET case IPVERSION: - iph->ip_len = htons(ntohs(iph->ip_len) - sizeof(struct udphdr)); - tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(iph->ip_len) - sizeof(struct udphdr); + if (len != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + iph->ip_len = htons(len); + tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif #ifdef INET6 case IPV6_VERSION >> 4: ip6 = mtod(m, struct ip6_hdr *); - ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - sizeof(struct udphdr)); - tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(ip6->ip6_plen) - sizeof(struct udphdr); + if (len + sizeof(struct ip6_hdr) != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + ip6->ip6_plen = htons(len); + tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif default: From nobody Tue May 19 14:57:41 2026 X-Original-To: dev-commits-src-branches@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 4gKd7n39frz6fJdg for ; Tue, 19 May 2026 14:57:41 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKd7n1D8pz3vCh for ; Tue, 19 May 2026 14:57:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779202661; 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=2oJn87ENYuoNUkNA+vofyLWzrlG/aGHq3bDj1I66qCk=; b=RGIWY0Aa+0mYdUYyN5O2e29pm/vwtu6Jl8ZhT9WtEtcJ1a53dUN8fXF8NkjVRRn/W3zlHM Yn1h9ziHAy5xngOQe9mVGDqoVZOhFDsSdJARKBT94pfXTf3Ist/C9V43ks6oXgH/XXTWuc 5OsRJ43dR+FIdid2gTC1YAKxZ4f8EJM94aVuV9VTw0rUM/fvUVqodv0oGyQEYApbjPh5I1 HSi2iQhjWHkW4J1s9/ovg9/rxD4e+XzzAiC+vUL1m6Zu6cDhBUOPsYz2c3qiBg/o94VqpF yjeQGaoNL98+T3CRnNINGTQkP+MURqEOeE0Dgqb+ZbPKZocRRQ8hmmOco6/bIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779202661; a=rsa-sha256; cv=none; b=KuuT4V5GSTncl+zJNXvMOH/xJ6FYPba2VP+QUX65MCoaAGs5xu2lDvg4TVuvGWEDOeag77 TybrGXYvwdPMupI8tMcytHFeGrmhnMTCvSnJb+o0afmA1Is80uZxSn/9YrB6pduUTWsth8 tym1eEVS5NH2ay4BN5xh2YhvETKo/Wsu9GBWolwkzJTSLuvAWZYccbR1D1at6ug2yjpedc dGl4g1Zqa5QFHb5QLyYc+rGpEUOfqq1mnDthO22Idd/Yx9QFDa8FfPBzvpS7g+TZFVNjag fZ9mczRFK4D+XgC7FZUJDSc2IdI4Wg6Sq/sSV7GMPGK51QjGpVPM/2WdRf2pZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779202661; 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=2oJn87ENYuoNUkNA+vofyLWzrlG/aGHq3bDj1I66qCk=; b=WOXl1Bd74MM0efTVW1yyFiketokBo8aDzb6lw1oHCmwP0YdvLgEjEePz61Kfnh9X4j3Qpt 6M+RBuzuzOgkiosdbd68lOKFGRFcpojQVfRTn8ikdCXq6xtjuC8ESdX3w1yj1u5e4rACVe 8bBxh8AhJH8UOJ17eseazWGIFcxB0ef3uLpEtjXwGDm8KozZs+8ruZYarfGlWm8SKUx+an uFZrYqwZVUEPAGlf89bzbob5rjUiOwS8bFlZrO/M/5O6nn7PCTEfdWjdhvARjPKkYevXHo lmgtOag8cO6VN6/PjyN/qXTUFTAddfxf7RvLV1QEY1ToAk5FDihtdtc0JfG/bA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKd7n0nSvz4ZP for ; Tue, 19 May 2026 14:57:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ef58 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 14:57:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 61c9f9b482ca - stable/14 - tcp: cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 61c9f9b482ca927d3da668f73f434474cd835e31 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 14:57:41 +0000 Message-Id: <6a0c7a65.3ef58.a5e5f45@gitrepo.freebsd.org> The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=61c9f9b482ca927d3da668f73f434474cd835e31 commit 61c9f9b482ca927d3da668f73f434474cd835e31 Author: Michael Tuexen AuthorDate: 2026-02-22 17:44:10 +0000 Commit: Michael Tuexen CommitDate: 2026-05-19 12:56:53 +0000 tcp: cleanup No functional change intended. Reviewed by: pouria, rrs, Timo Völker Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D55415 (cherry picked from commit c984c7593e11aa95f21f79bb5425a9d5e9181945) --- sys/netinet/tcp_subr.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index ca201d721616..31f52cbebffa 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -633,13 +633,14 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, if ((m->m_flags & M_PKTHDR) == 0) { /* Can't handle one that is not a pkt hdr */ TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } thlen = sizeof(struct tcphdr); if (m->m_len < off + sizeof(struct udphdr) + thlen && (m = m_pullup(m, off + sizeof(struct udphdr) + thlen)) == NULL) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + return (true); } iph = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)iph + off); @@ -649,7 +650,7 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, m = m_pullup(m, off + sizeof(struct udphdr) + thlen); if (m == NULL) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + return (true); } else { iph = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)iph + off); @@ -671,9 +672,10 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, #ifdef INET case IPVERSION: len = ntohs(iph->ip_len) - sizeof(struct udphdr); - if (len != m->m_pkthdr.len) { + if (__predict_false(len != m->m_pkthdr.len)) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } else { iph->ip_len = htons(len); tcp_input_with_port(&m, &off, IPPROTO_TCP, port); @@ -684,9 +686,11 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, case IPV6_VERSION >> 4: ip6 = mtod(m, struct ip6_hdr *); len = ntohs(ip6->ip6_plen) - sizeof(struct udphdr); - if (len + sizeof(struct ip6_hdr) != m->m_pkthdr.len) { + if (__predict_false(len + sizeof(struct ip6_hdr) != + m->m_pkthdr.len)) { TCPSTAT_INC(tcps_tunneled_errs); - goto out; + m_freem(m); + return (true); } else { ip6->ip6_plen = htons(len); tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); @@ -694,13 +698,9 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, break; #endif default: - goto out; + m_freem(m); break; } - return (true); -out: - m_freem(m); - return (true); } From nobody Tue May 19 15:16:40 2026 X-Original-To: dev-commits-src-branches@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 4gKdYj24jBz6fLLH for ; Tue, 19 May 2026 15:16:41 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKdYh6n6fz3xyv for ; Tue, 19 May 2026 15:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779203801; 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=DbpSgy+8glkRWDPtwMSekyHjeO9prhLjgzwbhfOweq4=; b=hBGND4VReyXZREA/rmIDVFBCKAO1NvX3vsZJ8Nv2YrNoR7oTlj3mdsubArnY+jXlnlneBT tdLvTWnuoHJAO7BflLs+ppipRiIRWZLyo6rGwAGLwf14zzNg/Rx41Zin12NFCiQiaECiIe kvS/qnKDH23oUWrT/QixLRgsjefqrDwi4bo0cHu7scA9BC2hRZZonGFhmdI2RCkbcRWJYx AfrP03xvpnu0mkK5RYk7dbUvJ+u0VFz5mS5JGtLQ5m2vaZoJCpVSuHFh31GyMUFUTU4XE0 J3OgZTgpOxrXQOb9xX+bl1UJiHze7WtAZtvql80cajfIr/8yK+UlNBtqPPZU1A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779203801; a=rsa-sha256; cv=none; b=cf4I0y4uxP0VyoBfduYQQ7wVK3VM/Hf0uaPzneIzSHabxIBM1d26sSuA1TtzIzjj23+QzK 8NcOZRY3ilOWR8xLwTGdWna9BcWsmx3yEp3gHw0Jo1SGvAHKJjqLiAw7rzxs3oDvDmNUUP xaYjICV4rAkMIGwVxaNOawXyFt9Q2+zNOlu+gHyWRx9G3GiDLVsOx2U177uWkMBLGcq95d 6WmXTkbEfBi+KvfcGi8VMM2s0r1yOr3hqfHJbr4mMjlh2hwfMf7RCXv6VOKcTb1hLAy+AN 3uOaTA47hWb8eOgIn2uE/tvyvlvz7BRKSZtEaJSLLsDzc/UnGz8L+SVV8XY+iA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779203801; 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=DbpSgy+8glkRWDPtwMSekyHjeO9prhLjgzwbhfOweq4=; b=hByceIjMgTy6yFXwq5N3jJdLRyMm8QxFKAn1RfjAW60ENrR2rM2kVlkLVmACF1oMim3a+Y CCf3GL8BUMQcmqJgBH4jya8KFjjOT0s60wQ+zWW+7SDIe7/ZzrAr7LrcsF87Nikq0xcw/d AX5IQ2WcspQP0rj0UWcOLMf0gTm0PStClDWyz5SSHJR2GX86L5hduKuMscOumUX8a1dA4U U1ZFUyiISTNMqlG0p/lafKdjh7Zb9VlDKm+CIgPQZQUdS0bmzPrFfg17Fy81UgBZDq0FX0 cM2cV4xfr9Y9JliNPmE3M9fmdNLLwDYcT9bgzX3A8iIWhxl0N3G9HORTRv5g+A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKdYh69Qhz58p for ; Tue, 19 May 2026 15:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42a2e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 15:16:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Tai-hwa Liang Subject: git: 4f2925105edb - stable/13 - net: bandaid for plugging a fw_com leak in fwip_detach() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: avatar X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4f2925105edbee4e129239d5e9887be9c5f8ad53 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 15:16:40 +0000 Message-Id: <6a0c7ed8.42a2e.5f30959c@gitrepo.freebsd.org> The branch stable/13 has been updated by avatar: URL: https://cgit.FreeBSD.org/src/commit/?id=4f2925105edbee4e129239d5e9887be9c5f8ad53 commit 4f2925105edbee4e129239d5e9887be9c5f8ad53 Author: Tai-hwa Liang AuthorDate: 2024-02-15 01:00:49 +0000 Commit: Tai-hwa Liang CommitDate: 2026-05-19 14:56:48 +0000 net: bandaid for plugging a fw_com leak in fwip_detach() Adding a temporary workaround for plugging a fw_com upon if_fwip unloading. Steps to reproduce(needs two hosts connected with firewire): while true; do ifconfig fwip0 10.0.0.5 up fwcontrol -r ping -c 10.0.0.3 kldunload if_fwip done There's a chance that the unloading of if_fwip.ko triggers following warning: Warning: memory type fw_com leaked memory on destroy (1 allocations, 64 bytes leaked). commit d79b6b8ec267e7eef6e07cf4245159705e24acd5 (origin/main, origin/HEAD) (cherry picked from commit 25a5bb7318052322190a2880e0e7ef18e06d54bd) --- sys/net/if_fwsubr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/net/if_fwsubr.c b/sys/net/if_fwsubr.c index 61c52a9df3c2..cd796b63f857 100644 --- a/sys/net/if_fwsubr.c +++ b/sys/net/if_fwsubr.c @@ -801,6 +801,7 @@ firewire_ifdetach(struct ifnet *ifp) { bpfdetach(ifp); if_detach(ifp); + NET_EPOCH_DRAIN_CALLBACKS(); } void From nobody Tue May 19 16:46:36 2026 X-Original-To: dev-commits-src-branches@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 4gKgYT2QHtz6fSBb for ; Tue, 19 May 2026 16:46:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYT1Nslz3C3S for ; Tue, 19 May 2026 16:46:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209197; 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=RKMOfuffM33L3gXBcRk+wUglCF0AVJeS7o5fEDxYg7c=; b=nWR2xYb2DzxKSrDYbaEka8RvTxhPbT56QKTJ2ej/IPX39v9yAQWgP0PdYAztIc36/t2BKQ 9dm0O7B/6oXC/DoWvkBn1jWwckv+zW539AteorrLJbK62DfoHg4dl9LhA0Vxd4cbeYmQCt m2gG4vKj46w7/bIW/qagw2GZCTTjN5MbdxYCa507TnDu7BPgE1y5EHxjiElEzGDoE+cLgQ +JDS4IaLlcOm8GD7WpiyMfWf5xaL27LJ8/ySumJfFU2L2VBzEPE8nsZ9/1ZKWS0pJyJbjh 3KpcN8RRqFdmtjNwoIv55bE6HgapGLOfpYDdVlFUGGOUO1BhPF0tnZsU3sNXcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209197; a=rsa-sha256; cv=none; b=s8cnuOBlETDkDVNpvEgLaSln+6e9QiLly3lPVD0GbCE0KeYKLDRroQ3b9eWcQM7W42yOSF VUGjMwMF4JI/tfW9LADHg3KlEDJR5+WoskdeGCo5+HH0un5yFg67t4ZYd9ZSiLeMYh8A9M Hw8VBGiHBZchONm8XtpkfTfqvNpjn8Yv0dv+KKZKDOwFMwUxWU0kEhIt3DWIbn7ZDTpk3s awpi6IeSBHyWU72wyMFPnJ0Wlbph0AUxBmLz91xBNLwVkbwnpXAXSP+2Zca1S82NlxtEFM kDnAXOX1axOCEYpzZbVSAQjAidT3fQR2Dri8/mk9DvG61JYU8PdHgCD/dF5XTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209197; 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=RKMOfuffM33L3gXBcRk+wUglCF0AVJeS7o5fEDxYg7c=; b=kRx5O4DyrOdmjy14ketC8xYZTSWOMiUSQxVq3y+0Q5sqS0egsHiRPR92ox2zflFCVocq4C QXathGoOb51TKUK0YY9TuQ4Wd+JbquQd0XeVywUrrTN6dQ0LIvwT8r759PvBOViWVuKkTs JfWbHij204OK4TjHlKu3TUbTD07VtFoV6sn15LtY6adlUcaVlCi+M9cnFllh3KwL4RE5sf /52Z/Elds+8jbWKJp1FVWHBE+w8FtaAnLB4di8qIJM3ttB8L1wy/cenb3ZGeCkmKRYBLWf e2w7062QIXqKBpSSsPihXKLFDgjN/YqFUm8skY/SFuF2USxm4RTm/4A8DQVIuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYT0SB1z7ZC for ; Tue, 19 May 2026 16:46:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cbea by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7d63a7584c2f - stable/14 - routing: Initialize V_rt_numfibs earlier during boot List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7d63a7584c2f1372741b088fc031c3ab2d015d61 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:36 +0000 Message-Id: <6a0c93ec.1cbea.2b623939@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7d63a7584c2f1372741b088fc031c3ab2d015d61 commit 7d63a7584c2f1372741b088fc031c3ab2d015d61 Author: Mark Johnston AuthorDate: 2026-04-18 12:20:00 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 routing: Initialize V_rt_numfibs earlier during boot V_rt_numfibs can be set at compile time (with the ROUTETABLES kernel config option) or boot time (with the net.fibs tunable). vnet_rtables_init(), running during SI_PROTO_DOMAIN, was checking the tunable and updating V_rt_numfibs accordingly, but that means that earlier SYSINITs, such as vnet_mroute_init(), see the compile-time value for V_rt_numfibs before it gets corrected in vnet_rtables_init(). Fix this by initializing V_rt_numfibs earlier, so that SYSINITs are less likely to use the wrong value. Add a comment describing the weird, preexisting semantic of resetting rt_numfibs to 1 in VNET jails. PR: 294510 Reviewed by: glebius, zlei, pouria MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56473 (cherry picked from commit 2b264cb802b9b45306b1f3dfd3e9d4edfb23b2f6) --- sys/net/route/route_tables.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/sys/net/route/route_tables.c b/sys/net/route/route_tables.c index 925fb5dbcef9..94ca906bb8b0 100644 --- a/sys/net/route/route_tables.c +++ b/sys/net/route/route_tables.c @@ -83,7 +83,7 @@ VNET_DEFINE_STATIC(struct sx, rtables_lock); VNET_DEFINE_STATIC(struct rib_head **, rt_tables); #define V_rt_tables VNET(rt_tables) -VNET_DEFINE(uint32_t, _rt_numfibs) = RT_NUMFIBS; +VNET_DEFINE(uint32_t, _rt_numfibs) = 1; /* * Handler for net.my_fibnum. @@ -300,17 +300,25 @@ grow_rtables(uint32_t num_tables) } static void -vnet_rtables_init(const void *unused __unused) +rtnumfibs_init(const void *unused __unused) { int num_rtables_base; - if (IS_DEFAULT_VNET(curvnet)) { - num_rtables_base = RT_NUMFIBS; - TUNABLE_INT_FETCH("net.fibs", &num_rtables_base); - V_rt_numfibs = normalize_num_rtables(num_rtables_base); - } else - V_rt_numfibs = 1; + /* + * Set the number of FIBs based on compile-time and boot-time settings. + * For some reason, VNET jails do not inherit this parameter, so they + * must set net.fibs manually. + */ + num_rtables_base = RT_NUMFIBS; + TUNABLE_INT_FETCH("net.fibs", &num_rtables_base); + V_rt_numfibs = normalize_num_rtables(num_rtables_base); +} +SYSINIT(rtnumfibs_init, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, rtnumfibs_init, + NULL); +static void +vnet_rtables_init(const void *unused __unused) +{ vnet_rtzone_init(); #ifdef FIB_ALGO vnet_fib_init(); From nobody Tue May 19 16:46:38 2026 X-Original-To: dev-commits-src-branches@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 4gKgYV2R0yz6fS3k for ; Tue, 19 May 2026 16:46:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYV1PlMz3BxT for ; Tue, 19 May 2026 16:46:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209198; 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=+AI/RUUdGfVibW0p6wVR7GT7hFg1piiCbprWcQW6IlI=; b=BW5Ass4iKv6qdLNB/rhaCwyDlzVK2RYiAaECTZNmTjgO54gQJcHOw70ObP40hVXK2aOWzy 44b4g3/Bp7YJZxTQybiyug45QS54L1E/diJUt6NjZg0jlxHZejXMeOFqJieRSqAG6x8P5C 65yTQ+KaljZOORC2L3SEm+cokFaDjpCk4R9LWmg1oVHcTzNa8vTomnKprPTcjaId5kELzu 0ChdUqpO6Avp0PXKRy9QuzMYpNEdyVkkRagWStL7kNYw8SWJgVrBXkLjBZhMvDmDxmU52M ZNXANqB98YUriDInOgUiPmf/6QhGgQMqmX8CtpoYgC69WkUxF3NzFUDNtt17EA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209198; a=rsa-sha256; cv=none; b=rbq69GWXthw9QscUXjoH85ColYJy+fNkC+OAdSPjtRjsFvwcYE5kE4vQXVCK6z2cQcXpzw Xj4xh8I6qM5aiRovxh4WGvJPq1oQ7iorRDl7arVvZ9UQK4pS2rhuR9B3xqzgnadcjNOUuG 73SgeDdTIIgRKCzeREyZT2CtQ53jT0ynmcYq04TYqjrSnhWlaV5aIbxpCGz5JcxzTOYwmu YnrK+tR1G0UUu/ZunOC+XTF4iBbkXVxGnAWnw03AYiPyisLwS1pHGMpVgIRk9AJ5ehzljA 7mied619CBtR3slWNGza823Os0Si5ksh9YrbSpcK1rivXNwVv4OD4B/T6/U1ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209198; 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=+AI/RUUdGfVibW0p6wVR7GT7hFg1piiCbprWcQW6IlI=; b=khUJdJ+aeRGaOEHkplURyqTNYAPONj/AuTNcXiCkuIx58uiQC60zyZzuHYsa/EWYsbscIr UwRK5F9E7kZx3OZqVu3U+N9Yd4G4WOu8fvjxM2JdneCXKQzudtjPZR6iVapbK3v/l9hVFq Wm6fcyVSETgBIGUHLfLeTHgxFtOfZlP0EaqnFd/GPpg3QwvcP1QzhZsS4ipAVBVM8AR61B E8/BzHVTU5h2WgpnsPvvGmqjWGkxgFwAOGxvNT2K/qSOxiCZQBo9PpvlM7MYV+9dXLnxLu gQA3YJ4FvB8hRmE6GxyqESV8zC20CikuJu0xoJq2KPoUaepqC8sjLWrJHQW9og== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYV0XP8z7sQ for ; Tue, 19 May 2026 16:46:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19970 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 04d8c9a6cf7f - stable/14 - routing: Use a better error number in sysctl_fibs() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 04d8c9a6cf7f6355ae6fe68c362ba337051fa840 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:38 +0000 Message-Id: <6a0c93ee.19970.739a13d6@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=04d8c9a6cf7f6355ae6fe68c362ba337051fa840 commit 04d8c9a6cf7f6355ae6fe68c362ba337051fa840 Author: Mark Johnston AuthorDate: 2026-04-18 12:21:22 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 routing: Use a better error number in sysctl_fibs() ENOTCAPABLE is for capsicum and its use here is inappropriate. In particular, note that syscallret() treats this value specially. Reviewed by: glebius, pouria, zlei MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56481 (cherry picked from commit 8de0fc10a1c2d65bdb39eff862266ab1f87902c8) --- sys/net/route/route_tables.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/route/route_tables.c b/sys/net/route/route_tables.c index 94ca906bb8b0..fb3cef4bda83 100644 --- a/sys/net/route/route_tables.c +++ b/sys/net/route/route_tables.c @@ -132,7 +132,7 @@ sysctl_fibs(SYSCTL_HANDLER_ARGS) new_fibs = normalize_num_rtables(new_fibs); if (new_fibs < V_rt_numfibs) - error = ENOTCAPABLE; + error = EINVAL; if (new_fibs > V_rt_numfibs) grow_rtables(new_fibs); } From nobody Tue May 19 16:46:41 2026 X-Original-To: dev-commits-src-branches@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 4gKgYY4Dg7z6fRs6 for ; Tue, 19 May 2026 16:46:41 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYY3Gxjz3BxV for ; Tue, 19 May 2026 16:46:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209201; 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=AK3YuOmHwoaynr4BqJVNUhjlRQPycY5aorUaw6rDTUU=; b=a64HE/YNVjt08K0CjqAGyLLR+hUtDzTVquVxanQAC7YyJnnN8dFehD78/+VIRDpfCgaL42 +eOnspcr6VAAS0B7XrWFyiwsfcyMzXhCa6c+kCoZZIR28NUxOMCGAoNvaej5Ki+fzjlZub GvxeYCKPAEKL5KyOckDHxoBXjcIFEN3QJQtoV7Z12enZydyfNFE6mg4ggtvZgurlctsZmG Zdihpv+CpjcKD6KXggBWaAYVPvJHXP21I/xmJQo5Ec92UtVI61zRHtfBQOPfiyUUnIublb khCuh1KlOU4iPWgpaOuGDgmL+sO73XTJNkKQWoPNOSQyhNzXbbG/XeP7eKCP0g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209201; a=rsa-sha256; cv=none; b=e9F7W54npK0TFWZONnXIX5l/AEI4WTJ9Hc+Iy3tuAomX5IYezr+kaY2IZfjWVqL+mGkzyK +SyZSnANDQgJguLHYEdBhItHXW/7hjf66vMJ12iDCtVGMogK8OVwA1XGEcg1cuoaEmFqg2 uwFNOoVRxzm4gHn+JRIpoZ9zJNOwUuAThEd5LxKmd3Ri0UPSyt3+1czvfNf/o3umxpB85b 7FLKkmkAwdsEZxLSrGFH9lLmyDEqW88KMTR3mbzkVoj2hLLcEPQZLgUqf1YCr7fVTW4T1B ePfzCR2QbFN4UNEAQVa99IchWkyuokbBVtoKUBzYHDBRoTxyUxXHxg9OMJLybA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209201; 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=AK3YuOmHwoaynr4BqJVNUhjlRQPycY5aorUaw6rDTUU=; b=fzeJf03UvMqIx8xw/TNN3jYcnW1E0KzeWED2JIhvqvd2x6BYQRZKxQSxzS1OmgSoLk1ZT1 3rr5+WiPVFahecX3AtE3U1BA4X7Ghht4jJocMXerXHX92LsxO87luRBW9VcN9yDZCKgXqy XATKKbpdpkpPEZWgMsXEj41icXt6xxdydDM9uOKkFeNLn2NtdgcaPMEIBMfR3jCFB5iWQr lNZgmy7dwkDKTy1+57h1XUyfaHacbW6QRp2lYM0wFJFow6SXD5XcaWKqhT+qeG6UUPhA1u 9wRpt8HEXvy8MJKGAv6ufn8WZnSqh1OS55tmn19tRfjmOSQG+tSzQ8C5b147zQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYY2rJ6z7sS for ; Tue, 19 May 2026 16:46:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d3a2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8eab86fb3f15 - stable/14 - netbsd-tests: Fix the mmap_truncate_signal test List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8eab86fb3f155e5de86a53e96b9bc87c512d56e8 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:41 +0000 Message-Id: <6a0c93f1.1d3a2.ce99787@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8eab86fb3f155e5de86a53e96b9bc87c512d56e8 commit 8eab86fb3f155e5de86a53e96b9bc87c512d56e8 Author: Mark Johnston AuthorDate: 2026-04-26 01:53:45 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 netbsd-tests: Fix the mmap_truncate_signal test Add a volatile qualifier in the loop which triggers SIGBUS, as otherwise the compiler is smart enough to elide it, replacing it with a check for page != 0. MFC after: 1 week (cherry picked from commit e3b8e55e710bf355f371d798aa943281007a7ea9) --- contrib/netbsd-tests/lib/libc/sys/t_mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/netbsd-tests/lib/libc/sys/t_mmap.c b/contrib/netbsd-tests/lib/libc/sys/t_mmap.c index b62c6299d3c2..5b9685658f65 100644 --- a/contrib/netbsd-tests/lib/libc/sys/t_mmap.c +++ b/contrib/netbsd-tests/lib/libc/sys/t_mmap.c @@ -504,7 +504,7 @@ ATF_TC_BODY(mmap_truncate_signal, tc) ATF_REQUIRE(signal(SIGSEGV, map_sighandler) != SIG_ERR); sta = 0; for (i = 0; i < page; i++) - sta += map[i]; + sta += ((volatile char *)map)[i]; /* child never will get this far, but the compiler will not know, so better use the values calculated to prevent the access to be optimized out */ From nobody Tue May 19 16:46:39 2026 X-Original-To: dev-commits-src-branches@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 4gKgYW3G4wz6fSDv for ; Tue, 19 May 2026 16:46:39 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYW22bKz3C4n for ; Tue, 19 May 2026 16:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209199; 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=OBpnHGNnPt5C/IfA4XvbPKMIRxuXT+eIpP+vXh5pUMQ=; b=rHRsJlJTdudDOsWKFb1u8anaZmvZtAPrLlACm43+cef4WBn9V0EDfiG+i64msRxNRQhnGZ xG+/wtFohzd7T7HdRyGFwWADEJFky31NzdiBlntcAX/DMbEOtjyplVzKQ15o3ZG4Qs933/ aojKS4yyJasn9Pl81egQfqdrLsaKBf/zro1FAhF0swvZJSFCYXAal16FUw5oEyAiUVyKkE h9uBOdR1ToonX6wbAztVSoIioFEEuM/1z8VgXPcVE8G3YIU+ngmQLk+TzL3rcMQz+guh6C +Y7r2+5JXhk9r747IrNI8RVwIVHizOtISvuqyiYny49nw+xHXhIVydH9QKGePg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209199; a=rsa-sha256; cv=none; b=AD8qcx77FoALuK093uNkCUO3aOk4EqkeVYT+XTVlW+Q8X/jIcs0hWcjuGRXnipwdtDICYU WtQsEDbNVlwdRdTv3WheqzFMTHpJmHal7rKDrj07rAy8KSSpSgtgoq7ROwVnoRtdVVxkCd a5zHpXoX+GDVb+TrmXMGCzjNHHlYx12bgA04ZYMqGk/kiahYbVL5cDQ366NyrC6DK+TJRy rjp1vt7tzDVQR5afqz+59O1pOhFZS1jRooRh+nPq/mETNWDqpR/MVFChrO48DmYWMurC2i sKchlE4T34nVPHyArcy0Ea1a6CZBwkJnfJ2jhaqWoN4YcEpDpXYrD+BM08JzOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209199; 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=OBpnHGNnPt5C/IfA4XvbPKMIRxuXT+eIpP+vXh5pUMQ=; b=Yj5Vfvx2L0nonPxRASQc0VJfbyZSAjtP6KQ6gEPLH2gfTHhSua6M65WN1izsHaRje8B2mB r3NNDYacRrh6dlEHnLE6FZWsC6J36lr8K5aNNDOtvRYaD7238O0/ev5aCICMaFGeMCXxuy jOLISO0eHlPTQxI2mEVxNR3pRGZuVPBagCwqauDUPMsGihJp7gNcPYGAjZeWa+fc/RxbAx pKdYVdeRGXjulPaUMp4OOxwCf1MQC7PoEKh05nNc3FlQcrRYRUyWdaSGoNClgS3jb+q3xT CN3qUiv7i+qW0Y96NGa0jwmCuRIXDh2xWRz0UdwVcW6d90nCh+/cVQotMMA/tw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYW1LgGz7sR for ; Tue, 19 May 2026 16:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bd5d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 5bf82cbfc968 - stable/14 - tests/posixshm: Check for hardware support in largepage_pkru List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5bf82cbfc968c68e3bbaac89a00c8de5c69094d2 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:39 +0000 Message-Id: <6a0c93ef.1bd5d.7037f2f5@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5bf82cbfc968c68e3bbaac89a00c8de5c69094d2 commit 5bf82cbfc968c68e3bbaac89a00c8de5c69094d2 Author: Mark Johnston AuthorDate: 2026-04-24 13:23:03 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 tests/posixshm: Check for hardware support in largepage_pkru MFC after: 3 days Fixes: ca87c0b8e396 ("pkru: Fix handling of 1GB largepage mappings") (cherry picked from commit 75c66218401c00f4728d5312e2b933b8d3aefde1) --- tests/sys/posixshm/posixshm_test.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index b8db1edd5c2d..85cb8af54039 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -40,6 +40,8 @@ #include #ifdef __amd64__ +#include +#include #include #endif @@ -1967,6 +1969,14 @@ ATF_TC_BODY(largepage_pkru, tc) struct sigaction sa; char *addr, *addr1; int error, fd, pscnt; + u_int regs[4]; + + do_cpuid(0, regs); + if (regs[0] < 7) + atf_tc_skip("PKU not supported"); + cpuid_count(7, 0, regs); + if ((regs[2] & CPUID_STDEXT2_PKU) == 0) + atf_tc_skip("PKU not supported"); memset(&sa, 0, sizeof(sa)); sa.sa_sigaction = sigsegv; From nobody Tue May 19 16:46:40 2026 X-Original-To: dev-commits-src-branches@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 4gKgYX3tJNz6fS3m for ; Tue, 19 May 2026 16:46:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYX2QlCz3CGW for ; Tue, 19 May 2026 16:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209200; 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=KiIjVbR4fsRuJUiRy4Ybq9vjIF0Hu/a07hvjoc8pdLA=; b=kON6wq67Cnwe0WpJLtESS265IplqiD0dYvPfbmjNWEAeJcWObdIRN1uRwQXVO4GfJ1u4Gs vLsfaDLgLyFzOaxinWVDrHW5zG2qqYYIQwWbI6ChPE0Sv1NPNBn2ZBfu9YmY/4s5VymOQH CAp5EQn1moQqHcezImhkbbPBN8Exq293DM6MKMtaLnw0+59P/9weZYx+y5Gr6Mvk7kGEea RhQG+DBQEv3vy/j9e2/mKIvXIx6+VZxfl5Eau6yqZWFHiVw+z9ux8Jrf6WZ0z7IMGLM4K7 sqrGjH4tSivFiJ315sK35A8SF8wLzpyJiK0SxCXVSVyDwZoG5iQ4ADxPMRP2sg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209200; a=rsa-sha256; cv=none; b=CZm4MrBnoB1YR9yZ3ImZCVYdGe80hRYq+SHxmzJsDI+N7rgfihv33RN73xR7RsxtTPT+kR 0NKbYU9FZlTVyv6dKxbhQIOD4PVyqpQzkpmH6XD69twucSdEBoJNC2h7+Fwvc2acbWeL/Z UmElamsiLMxoGrsJizN6bgaSuFMqfuj5lQ6ErIslD3kBjry/uCN6sv7+uN9+Pydp6YxqtU jJkhXdJc7NK+mwLB5gupnKvPJCoqL8mxf5wesXc9ADwxKYeOLYdcxbLHmr5my7/Qp57rrN V94dn4RbTkeaE97fC2uYJXP1Kwp8wyxXWPHh6YejNl786lLx5GgO4yAmAFQMlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209200; 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=KiIjVbR4fsRuJUiRy4Ybq9vjIF0Hu/a07hvjoc8pdLA=; b=tVuoBTE5EcI11fFPcibV7Ujxy7JWOwwcjM7SArY28M7uA/Qnwl8wl2Ret7Wmo0eJO8yWkU xjPnOaV36OUueQ8y1skj05r3i6ZyLZ1MaTQ5gQ1dTOSo+e0RV7A55driKAAkgPFEl0wqOA JsLNmXS7MzMMOibnoG3sDV3TROQapvOMTKyjW/2YKBEzqn1NVKSboHAld6BchsVYcayXaQ 4++2yL76WklQsgMYeTHQ0OK5i0vsG6tSA0faHrMaX+aL54mFsinIEQf22ip0OGVko2IPue Hx8NZ8hpiwMtE1V1HN8g2mB73/M1TYg6Vo9RRd6a/Vp1tmfkBIhQtNuueZIqxQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYX223Yz7xg for ; Tue, 19 May 2026 16:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c151 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 605d3bc3d21e - stable/14 - tests/socket_afinet: Fix the bind_connected_port test List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 605d3bc3d21e8754d23db26a783e3fb9b44d1a36 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:40 +0000 Message-Id: <6a0c93f0.1c151.925dacb@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=605d3bc3d21e8754d23db26a783e3fb9b44d1a36 commit 605d3bc3d21e8754d23db26a783e3fb9b44d1a36 Author: Mark Johnston AuthorDate: 2026-04-20 15:07:20 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 tests/socket_afinet: Fix the bind_connected_port test The test verifies that a socket can bind to a local address assigned by connect(2) to a different socket. It was however trying to bind to the wrong address, and the check of the result was inverted, so this went unnoticed. It also needs to set SO_REUSEADDR for this to succeed. Reported by: glebius MFC after: 1 week (cherry picked from commit d3d0466cae546254c50c80cf3e0c060bbbbba53c) --- tests/sys/netinet/socket_afinet.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/sys/netinet/socket_afinet.c b/tests/sys/netinet/socket_afinet.c index 6fc98d982602..4928953a1d25 100644 --- a/tests/sys/netinet/socket_afinet.c +++ b/tests/sys/netinet/socket_afinet.c @@ -516,6 +516,7 @@ bind_connected_port_test(const atf_tc_t *tc, int domain) struct sockaddr_in sin; struct sockaddr_in6 sin6; struct sockaddr *sinp; + socklen_t slen; int error, sd[3], tmp; bool res; @@ -553,16 +554,15 @@ bind_connected_port_test(const atf_tc_t *tc, int domain) error = connect(sd[1], sinp, sinp->sa_len); ATF_REQUIRE_MSG(error == 0, "connect failed: %s", strerror(errno)); - tmp = accept(sd[0], NULL, NULL); + slen = sinp->sa_len; + tmp = accept(sd[0], sinp, &slen); ATF_REQUIRE_MSG(tmp >= 0, "accept failed: %s", strerror(errno)); - ATF_REQUIRE(close(sd[0]) == 0); - sd[0] = tmp; /* bind() should succeed even from an unprivileged user. */ - res = child_bind(tc, SOCK_STREAM, sinp, 0, false); - ATF_REQUIRE(!res); - res = child_bind(tc, SOCK_STREAM, sinp, 0, true); - ATF_REQUIRE(!res); + res = child_bind_priv(tc, SOCK_STREAM, sinp, SO_REUSEADDR); + ATF_REQUIRE(res); + res = child_bind_unpriv(tc, SOCK_STREAM, sinp, SO_REUSEADDR); + ATF_REQUIRE(res); } /* From nobody Tue May 19 16:46:42 2026 X-Original-To: dev-commits-src-branches@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 4gKgYb0brHz6fSHQ for ; Tue, 19 May 2026 16:46:43 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYZ4lBsz3Bp5 for ; Tue, 19 May 2026 16:46:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209202; 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=gqzIaqbkT/Z5zIqCzsnglE7TbsDro8OMxsxtHNf8R5Q=; b=ToA9NXP76NySqurIS2cKAWDGY9t6ywEO193Cxjx2jKekzz6HC/jtOlaO9Cl/4IBSugQj1C ePOTypT1T0rmZGfxOfYM2JhF/wDe7fI2U8NKNbCPPl0BNzwuypq/Q7ML5Cybm2iPxUEDga xIKgBFbWXblU0Wnp+Gj0BIRPDij7mjBl/BZukBOx0qZgiWza655vw5pTfZzZCS+A9rYwAz JNWcI0YTgBfQonKSWYy084jsZ245uS84kv7n82Zg9XtXduRhNasMxBvr50ENIVIHOMVwEn lSybZgHrcgHklzQOcjz/MYXob6nWg65nE1cn77uWw+wZ7TuYNk9MmHrT0uF9yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209202; a=rsa-sha256; cv=none; b=w8AkPeVmZKGrf2Icig4y28vFY8BoRnsPFWrNEwnzdvQgJYgiH3q63/tIZe689sPBzkD6x8 yRh3mVQ7p1Axj6A9UZKqL9Hz0qLq2PDDPYlTd3kvX1QQ/2nFW4/fWKzKA6F66KCWYtP8XZ Zdj7dXP9zwLN1CzIDHR2uoOIoJHgFaxi5h8v51BI2yjN0E0Slmwx+i30yl3brmNkNODgpL pjv7Y7rj84aKDpK+0drvI/CtW9IU+vkm702sNXCoJA6DMbol4nIyi0lBP9I16OF53T7aWB eucvcRbsrAv8l1ZtyrzvkTbcAsh5Ux1XpVvYjRtfx/XDBwuwf96RpfDG048Vnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209202; 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=gqzIaqbkT/Z5zIqCzsnglE7TbsDro8OMxsxtHNf8R5Q=; b=pcGQwG0XrzrY4h+JuTDh6oeLMPlU+Mgn1sIU9B3eRE/CUv9i6zI5vQaphEjw3bwlZlgXfH luLIcKp7yRZvQYbaPH+bAkdbWYiqUsVJg18dZ0ZMGLRkThoj200WQrwDO/F6dHAeXk8M5P D62VCjE+MF6DiXffMVUuGAJVMTeOW6uMeuFJe2XBuMp3ZssEFymVsMjKF3IJKxvgeOxyEo T7D/0mEjkrQWV02l6mB6FpI0j8byLmDol5Z40s7uDZ7a1JpE7s+ssXTwWf0s8zFMZn7aX0 cS+RmZSTxULo9YVwu1vOQMzPtofD7baYPdE1sNgNBofNAGc117smdex3z7CcIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYZ3b6rz6v9 for ; Tue, 19 May 2026 16:46:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d23e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7797d079ff13 - stable/14 - tests/timerfd: Serialize List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7797d079ff136e9e13e7d66a160560913914f9a7 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:42 +0000 Message-Id: <6a0c93f2.1d23e.5f9e2690@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7797d079ff136e9e13e7d66a160560913914f9a7 commit 7797d079ff136e9e13e7d66a160560913914f9a7 Author: Mark Johnston AuthorDate: 2026-05-03 15:46:52 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 tests/timerfd: Serialize At least one of these tests changes the system clock, which potentially interferes with concurrently running tests and causes them to fail. MFC after: 1 week (cherry picked from commit 001cfc7b8aa38122c4e0fe8ae48fae3556a1f2b6) --- tests/sys/kern/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 4d45a68ef244..51d4aeeaedfc 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -46,6 +46,8 @@ ATF_TESTS_C+= sysctl_kern_proc ATF_TESTS_C+= sys_getrandom ATF_TESTS_C+= timerfd LIBADD.timerfd+= pthread +# One test modifies the system time. +TEST_METADATA.timerfd+= is_exclusive="true" ATF_TESTS_C+= tty_pts ATF_TESTS_C+= unix_dgram ATF_TESTS_C+= unix_passfd_dgram From nobody Tue May 19 16:46:45 2026 X-Original-To: dev-commits-src-branches@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 4gKgYd6krHz6fSHS for ; Tue, 19 May 2026 16:46:45 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYd5jp4z3C3Y for ; Tue, 19 May 2026 16:46:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209205; 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=+rWXXZFWTB662Q3mbmRl1JSVYYZx0QJ/rgUzmkK8AcI=; b=bO6qfIHyuurKf/NqkyUmEybxt6KTueKTcg600zRpkDGr7pTmiNodpFyfV+WWvEjccoEX76 OF77A/GpL+t81mjHN+qvHksMGWfOhucafDLwbUK4cT1DQGyp8P6v3s2x5L5ZmbUYe7Zb+w wfSZ2NRvswI9D8xFQnu/0eE2nhfgBOFlFyMn0+zTJ/nKxpammpAwDvvFR2KtECLPiEaRVC 6Zrq8jihF7AipfeV4KRmV+tfveLBsGtOlSYarjYFfTe4lF9pW9RrZjXTqSnGhb01eVwLXF +TrHFaHJHClrTlzan+vcfKgW2weoQdEShy9jxPnKBq2Fgv7vh1b5VSVr7sTq4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209205; a=rsa-sha256; cv=none; b=ceUK5YtWuVvh7OcXPrbsYchlYk8mxrbOyBJEP4LQUPEa/+y8BW4SaK1gvJ2Cedk0Tyr+P8 tHJZr0Ei7EvGcPMmAi5PZl1I52virLvAHEwb+H7tM73aCfWhUWY7lhY7Pv+VCOYiU+6ux5 6+iE+lZ1bQA6cwxP2I3YDHRNMo4Pqr7yMildE1Qz3srHrIgOhSjH94vhnI10IcyP8577WT acFDXF9NHQHoEIrhKll8eB6llYvjbt4zXWJVWDp7t0nZAnm5+KdZ0skDziFO+0Ah8QD9gT 8zZX+8VFJGIF2CDJ4dfBrjvfNZ1nsuBgLauy89BnM/aCcI5qP9gY7kFBssCDbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209205; 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=+rWXXZFWTB662Q3mbmRl1JSVYYZx0QJ/rgUzmkK8AcI=; b=yO6+fjv3mJZHHgztpHTk60YjIofyqKucUKwjUIs4p6DNEz143WJB2+7l48puqmJQb9fUYT DzvGS9kr3rgWMRdTj/LjgOkgYo+Fs+zkXs4o9uElBFrq6DsMxQCEDX1Dn6j3XM6Qk2hOCX jtCT2zaywzzulblpvbN78ed18vGZ8mGylUaM/As9DGFRsF0usV8VnFCfozEspNzwWo81PL khMl6IWL1A38I/g0BXIHfK5Uz+ylvxoYhNA5XnIvGLcXvL2KpufxXOLpIBqrAC16VtBaiP ew2kc70gBi8xhzGhG6DYrUGht5vzscvOfL6xfbT/x3VWmWtKGRnQROoa0H5aRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYd58kDz7jW for ; Tue, 19 May 2026 16:46:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cca8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 51fcd5ddf016 - stable/14 - igmp: Avoid leaving dangling pointers in the state-change queue List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 51fcd5ddf016835619c94f4dbdc5b29150fc2e48 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:45 +0000 Message-Id: <6a0c93f5.1cca8.3116540e@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=51fcd5ddf016835619c94f4dbdc5b29150fc2e48 commit 51fcd5ddf016835619c94f4dbdc5b29150fc2e48 Author: Mark Johnston AuthorDate: 2026-05-12 17:53:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:29 +0000 igmp: Avoid leaving dangling pointers in the state-change queue When igmp_v3_merge_state_changes() is iterating over state-change packets, there is a case where it'll free a queued packet but will fail to remove it from the queue. Fix that. Reported by: Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai Reviewed by: pouria, glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56947 (cherry picked from commit beab4a237a45aea809e81802b9e1e9ff30f3d929) --- sys/netinet/igmp.c | 8 +++++--- sys/sys/mbuf.h | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index ae58dc0b8b04..3c4909ba5591 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -3312,10 +3312,12 @@ igmp_v3_merge_state_changes(struct in_multi *inm, struct mbufq *scq) CTR2(KTR_IGMPV3, "%s: outbound queue full, skipping whole packet %p", __func__, m); - mt = m->m_nextpkt; - if (!docopy) + m0 = m->m_nextpkt; + if (!docopy) { + mbufq_remove(gq, m); m_freem(m); - m = mt; + } + m = m0; continue; } diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 6966e03cc319..2ba2836f84ac 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1647,6 +1647,14 @@ mbufq_enqueue(struct mbufq *mq, struct mbuf *m) return (0); } +static inline void +mbufq_remove(struct mbufq *mq, struct mbuf *m) +{ + + STAILQ_REMOVE(&mq->mq_head, m, mbuf, m_stailqpkt); + mq->mq_len--; +} + static inline struct mbuf * mbufq_dequeue(struct mbufq *mq) { From nobody Tue May 19 16:46:44 2026 X-Original-To: dev-commits-src-branches@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 4gKgYc75ddz6fS3n for ; Tue, 19 May 2026 16:46:44 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYc4kn4z3BxX for ; Tue, 19 May 2026 16:46:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209204; 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=cGgDw8nwi3bfB1zYZCYYnQQ23jtk/tNbMOb3KvoOs9A=; b=KmUwjNlBBZAFo7QjkmaPooC/tKk6RqDcXvjN0iDHLXPxbzrPuoZ5BRJLitNpstVxf63wkW Vkp/Mm2qp+x82aWGMiiRdoLLLscPENLrwN1GlJ4p00C3I8TQk8TkR8U3G8IOCalvazF4kZ 0VW6OOMc47IYPeMLbdudXsBCPXLYe8FslvOUOUzqGuihYiJA4WoAU0cjdj9HT9XVbkqObq ru35aIrNVr5xAYiot2+byh8cSS37Fa6ZCD5fODUwJ7RtWEGLZh4Vju/G2wV2hlkh+AYpzn gP7EH8EODONZW1k29iU3fSgDg9oOwzmAVNVNCSkTSDKPB2vZ+CNq/8W3YbCe4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209204; a=rsa-sha256; cv=none; b=yhLqrevf/4FTr7+Tdc0MBAgDIWDvU1KvtpFLXP/pmLzSKdpVEdvLLQBaIw8uH71jVOrLvG d/iOCMWHzAda+EwXRsuRpTvY1my5cRYCPVxQxW9Yxe9FhAiuiJ2r992jBAmbvLHJPn2ANR qxoWxne8U5QmeoP30cRpGGDrtBF9xZJIua6p5n2jh9QbQSJvzyeLJMxXd5Rv0PBjfH/NMD MTJk5PY6KEZzOiQl5cybBtR0VHHwKOU61z+XR1DzM4cYma5XSWYpOFLfIg6F6w1nrVjoTP UEQySuJ+/P9CxQfO3vvq8EiBNa5rOZ7u43CAGS7umYpjSriex11hAPD9EzLKoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209204; 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=cGgDw8nwi3bfB1zYZCYYnQQ23jtk/tNbMOb3KvoOs9A=; b=jL0XJRjfsKhJuitlnPgPFFcytgLwhhbnIj1Hn6HI1oEV1N/7LvnME+rgoiUhJI+USC+9yU 6xorqBWMB5/6ugJ8aFqvMlTe5EL9+Quxr7dco5RyS1zoBKojG7VJfPlsJntQ0+r7QMpSJX Roa9F1UMgRvJLj1O/5m16vWlqzj545JfmV0KDjGa1u+wJ37gFmoY6FrTuS3joD2qcAPXmb 3UFohzmGSr/OsXBOFz7VsAGJq85+9UG8kivCqBZEmxHTdHnQXMnnTyt4Qapl1LObGduErQ ozmGLqLzvNF2zGpmnVSzL+TCjEUUrh8Wf87rAe4SeZRRxSATVcXubOJIabGSAg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYc4HRgz7jV for ; Tue, 19 May 2026 16:46:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cbee by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 74d5c2bb861a - stable/14 - if_vxlan: Update *m0 after a pullup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 74d5c2bb861a6bd257b99697154fd08e891bf582 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:44 +0000 Message-Id: <6a0c93f4.1cbee.4f539b2a@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=74d5c2bb861a6bd257b99697154fd08e891bf582 commit 74d5c2bb861a6bd257b99697154fd08e891bf582 Author: Mark Johnston AuthorDate: 2026-05-12 17:50:15 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:29 +0000 if_vxlan: Update *m0 after a pullup vxlan_input()'s caller is supposed to free *m0 if it is non-NULL after the function returns. vxlan_input() failed to update *m0 after the pullup however, so if it hits an error case after the pullup, we'll free the mbuf twice. Currently this can happen only if the interface is brought down or due to a packet loop. Reported by: Yuxiang Yang, Yizhou Zhao, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM5.1 from Z.ai Reviewed by: pouria, zlei MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56944 (cherry picked from commit a6c4fe2d1a38885914b1c3e85508b965ccdb7874) --- sys/net/if_vxlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c index 1f242d86ece5..ac7c352bac31 100644 --- a/sys/net/if_vxlan.c +++ b/sys/net/if_vxlan.c @@ -2877,8 +2877,7 @@ vxlan_input(struct vxlan_socket *vso, uint32_t vni, struct mbuf **m0, ifp = sc->vxl_ifp; if (m->m_len < ETHER_HDR_LEN && - (m = m_pullup(m, ETHER_HDR_LEN)) == NULL) { - *m0 = NULL; + (m = *m0 = m_pullup(m, ETHER_HDR_LEN)) == NULL) { error = ENOBUFS; goto out; } From nobody Tue May 19 16:46:43 2026 X-Original-To: dev-commits-src-branches@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 4gKgYb6cq0z6fSDy for ; Tue, 19 May 2026 16:46:43 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKgYb4RsNz3C4q for ; Tue, 19 May 2026 16:46:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209203; 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=yp7BBpa8RGk7e1yGXWJOnmsv13KJYmzfZ9Dz/au8nqw=; b=K1YRIA0DdGfqftng6leKb1z1ydQD2IEGBiHZljwUOTVJIgaPJlObKFXMCt8sXssdTJ/XAi GkL40jyDRU6A1RACpC8LygOxbi4aP/DTx95tNtE+rtLzEx49Bk9faVRSLFJhwL5mw4VyBB pPziBauXktTKaMmU9FjuEu57UOOR+rsM6Ab6hfet3zM9u5bagf5eQ1z8OwIyLzJhmlTdyx +Z5UqnNq6poug5QXQmImC6qEhQewUznzVypcJ/5+kJYefjIi9zG+8bV71U3tHKTJ5gT+ly r0xvRCDsACgc6xRKdoSgJaE7Fa0w98Z8zhCEjQ3L8DUnKLFRDLDWByodr6GavA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779209203; a=rsa-sha256; cv=none; b=blm9TSwJeOhJnPhezbZroZjoGuygPDlHZFZm35afDvofk8HHrOlsF0bm1lu86z0kIJhyM5 8GCRhWjGrDvDFpgFhqHDMIbICbI8E9rPR9wYWRze1uXbdxsxUMrNRkZGMZwOf2e6/ba6L8 MQEQa5+jKV4aLo2aLheTe0WKJ7BiPdem8qSt2aXkgPWtiYna/NIVnVLk+j4pMnl64gfAZk bOnk/VT3gxP7HiQ6df7yQdcHh1HPR3SUgvkmZu2tlSps+cTPWOmC3/tm4kxVeIO1VTb2/D WnqynU+O6qIEyAOvpjrWVhCwvHQgcGjsTbETIPGmq+QzRWK9h8TzgL8/hGswrg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779209203; 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=yp7BBpa8RGk7e1yGXWJOnmsv13KJYmzfZ9Dz/au8nqw=; b=BTlz4lpwXDzA33oIT13qBXp1rPVMzDPfdEoEdS+3/No9wJCBQx3bwXrmE8PcbPn6/cXbGu SAn3zSZc7QunbDt1PWqA98tisPCaDwEJbI6kZ+1XHYcRRvow4W1dpRxvKSGvm4sQ+NSkol jlr4CJIl6YKUm/KNWC6LhMtPyrQTneg8MEyemD320akoUmbBVCUS4Kk38D3rvVgfB5O+fZ CAJTXJIEEvVdMrnapCvlWzGH+Vz6uYNwZiPItOmCMHgw1dr+OTo62X2weIF+Tm1J1CCVZG 7KpGcJcgxyjFk0NQiqMIKUg0jB0FdKBMtr4CgxXEqw7gxJG34qYLBa+R49+uQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKgYb3yS7z7pP for ; Tue, 19 May 2026 16:46:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d9c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 16:46:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 5937f2ffe3e3 - stable/14 - tests/if_lagg: Minor improvements List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5937f2ffe3e37b8668e6b29ac817c1612cb81865 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 16:46:43 +0000 Message-Id: <6a0c93f3.1d9c8.78c97ea0@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5937f2ffe3e37b8668e6b29ac817c1612cb81865 commit 5937f2ffe3e37b8668e6b29ac817c1612cb81865 Author: Mark Johnston AuthorDate: 2026-05-03 15:48:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 16:46:28 +0000 tests/if_lagg: Minor improvements - Set require.kmods instead of relying on ifconfig to load if_lagg.ko, as this doesn't work when running within a jail. - Simplify helper functions which create tap and lagg devices. MFC after: 1 week (cherry picked from commit 47ae0135d461854b72b905ac77bf3e1f5b2868bc) --- tests/sys/net/if_lagg_test.sh | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/tests/sys/net/if_lagg_test.sh b/tests/sys/net/if_lagg_test.sh index 6b99aaedfbbf..8484470c54ee 100755 --- a/tests/sys/net/if_lagg_test.sh +++ b/tests/sys/net/if_lagg_test.sh @@ -35,6 +35,7 @@ create_head() { atf_set "descr" "Create a lagg and assign an address" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } create_body() { @@ -78,6 +79,7 @@ status_stress_head() { atf_set "descr" "Simultaneously query a lagg while also creating or destroying it." atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } status_stress_body() { @@ -137,6 +139,7 @@ create_destroy_stress_head() { atf_set "descr" "Simultaneously create and destroy a lagg" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } create_destroy_stress_body() { @@ -193,6 +196,7 @@ lacp_linkstate_destroy_stress_head() { atf_set "descr" "Simultaneously destroy an LACP lagg and change its childrens link states" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } lacp_linkstate_destroy_stress_body() { @@ -256,6 +260,7 @@ up_destroy_stress_head() { atf_set "descr" "Simultaneously up and destroy a lagg" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } up_destroy_stress_body() { @@ -315,6 +320,7 @@ set_ether_head() { atf_set "descr" "Set a lagg's ethernet address" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } set_ether_body() { @@ -353,6 +359,7 @@ updown_head() { atf_set "descr" "upping or downing a lagg ups or downs its children" atf_set "require.user" "root" + atf_set "require.kmods" if_lagg } updown_body() { @@ -434,35 +441,15 @@ atf_init_test_cases() # Creates a new tap(4) interface, registers it for cleanup, and echoes it get_tap() { - local TAPN=0 - while ! ifconfig tap${TAPN} create > /dev/null 2>&1; do - if [ "$TAPN" -ge 8 ]; then - atf_skip "Could not create a tap(4) interface" - else - TAPN=$(($TAPN + 1)) - fi - done - local TAPD=tap${TAPN} - # Record the TAP device so we can clean it up later - echo ${TAPD} >> "devices_to_cleanup" - echo ${TAPD} + ifconfig tap create > tap + cat tap | tee -a devices_to_cleanup } # Creates a new lagg(4) interface, registers it for cleanup, and echoes it get_lagg() { - local LAGGN=0 - while ! ifconfig lagg${LAGGN} create > /dev/null 2>&1; do - if [ "$LAGGN" -ge 8 ]; then - atf_skip "Could not create a lagg(4) interface" - else - LAGGN=$(($LAGGN + 1)) - fi - done - local LAGGD=lagg${LAGGN} - # Record the lagg device so we can clean it up later - echo ${LAGGD} >> "devices_to_cleanup" - echo ${LAGGD} + ifconfig lagg create > lagg + cat lagg | tee -a devices_to_cleanup } cleanup_tap_and_lagg() From nobody Tue May 19 23:03:59 2026 X-Original-To: dev-commits-src-branches@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 4gKqwv5Hd2z6dhhx for ; Tue, 19 May 2026 23:03:59 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKqwv4XFqz44mX for ; Tue, 19 May 2026 23:03:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779231839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=De7dgrRrUe914M21yMFLHPn63v/fhE9iWjaMQI3qH+c=; b=RNoQzRIlUoofka40SpfMh5pVecf3U7axgJsevgneVsVKIrwfdj80bvLLPhaE6yG9Kqf00J Qp6Qwduz2zWqAg+IJ10m8WInMlFW3clBP6wpj/fOVBYVASTQvu0N+Gjnz4Qd4oQOsxP/qk GuofGHr0i3qOBlWPfCBlW9LXCnlshDDYrzY3nurqBjaki5TZTpreo0Ax8Of78TTJhlKNBC MPW2GjOS7XCDZhtmuVCQnepeheA8IQoALVFOee8T7Iu3dhur9wuE4aJ24Es7c+oQ/z5rXp hbLz3EAKy+YI3pxvTtzhyJevdJuPexU2mUEZxbtCqAXyu9Cngzx7dp+OLXJlvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779231839; a=rsa-sha256; cv=none; b=XoByyVY1gWdnADIwlbMtxrFoNrFFAvyZxPWLJxw06pUoiI1347kj4sE04itfm+czMKDdMq ziKHlmb3HfPk71ojZx4954Jxt9cdvpIh4VTxiVFcd2NPISwAN6eDsGcMid0fJDUDeuBzq4 loYB1S1DjOkLXoTNaFXXGW/HxCKij+7TBzpSUjtW9DXGDUdmdPwocu2HRI652FLJfDOZdu 7QvtOo+LHI82f8xMiki4wgHxEWtqFiB2EXN8WaxJGftt4gFUzzdRhMy5uHqQzbBSalIT/n 2vUgmJKFWs8d5TkS2BboggCncZYqhSIdwFFwbfIGX9WkW0p+8ApRvomDD8X2HQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779231839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=De7dgrRrUe914M21yMFLHPn63v/fhE9iWjaMQI3qH+c=; b=hOSeyd69xk3Jtphc+fRIslmXzqZxGNio0I+Kz7lwMgqYM9v14/eCmxDv0CMoWM8QxvK59c ZZ3xfjBtirCe9RmN+4zAkHTgZ7TajxL7KYDM1YlMVS8TKCRmFLKKYPwILDdRPjhP/vrQc4 UEHCwj2e8SDgb1wUkxpNZenQRRozcJCzTx2J4uS+6scNQVufSzvp/5aBnh3jC+Ybs/s6tU BADLBGCu0d5E0ZHSvRuUrKe1NQuPtlsLJ4lfxCcnU7uwhB63KxMv++EXDEnLR8eVBnAOSZ A1BPTaFIrmherqDYFyGea5/RSqgAbXNaLW2v5mM1F10OXgp921UE7r6EjcJSdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKqwv3klQzbD9 for ; Tue, 19 May 2026 23:03:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d70f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 23:03:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: 7eb3fd691d64 - stable/15 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7eb3fd691d64dd42f9d32e04cb9b5811fd7c8e55 Auto-Submitted: auto-generated Date: Tue, 19 May 2026 23:03:59 +0000 Message-Id: <6a0cec5f.1d70f.228cfd3@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7eb3fd691d64dd42f9d32e04cb9b5811fd7c8e55 commit 7eb3fd691d64dd42f9d32e04cb9b5811fd7c8e55 Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:03:26 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 5887fe3c407e..67eec73cae7e 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1122,12 +1122,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1200,6 +1225,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1258,6 +1286,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Tue May 19 23:04:13 2026 X-Original-To: dev-commits-src-branches@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 4gKqxB04GJz6dhtw for ; Tue, 19 May 2026 23:04:14 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKqx95Yqwz45DG for ; Tue, 19 May 2026 23:04:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779231853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yu9jLFI5QjxiVJrR5omHpa1RIGqkN+DTQ5vxLOFvML8=; b=QD/RHD/eQZUOjhxjcVOIfPVwA0TaxPs0khCmJsgd8uYsrD4wUcU/cqlo7bVbG2mEtp6Czr ziRXkOo1GKpExag9Oob2fkBXhniQd/g7O3pNaqMegWnjxmIXf6vnToISw0yQ7sA9pIGQHW 3Dk7/3nXET68j9EqyZGTB3WH7JeT8F3mqwjk9CC5K2Et7oD6lGiguWT+N/3k0soZlENO8e 0NG7r9K3ofNTD3KLyVB3YbHaytt3FyTUvsijLcLIBc+WCgsG5mBVjZAwDPiEB+kptvDXDG qPxLo5exGnoK6lfdRP84bIyA+BMOtGzUUP6DpV20K54qPcmc6q+A5B0GNKSBNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779231853; a=rsa-sha256; cv=none; b=craN5Qh6JP4jk68lKV+hZtQdfzRkqCcRVNDtgPUPBfJvQl01l/XAaCa94NCRp0WzNIwZmM 2ggDzcjBZDRcvCtlqO32vlMo87Y1WpQVO+A2jUY8Gx0afb/GGkLVW3/V62qu/XhWkk5i10 wndJb0+5ULRRqLwlCDq4f+HmrlRcpn/gg5pw99H7XyBw8CyPEZS2tGoIcM4LgZUxTWkdYd +eCKEQsGMWfGWKFpyJoTSonSpNrxldRQaBx55rQ+0OlDNsjiWJ6/mF5cJCsHY9QutsN29M P6JdZ8GoEfnHOXGSUFC02U38HNuuz1LBaJYj14bo1JdhJsN9zbWETAjlsEuHdA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779231853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yu9jLFI5QjxiVJrR5omHpa1RIGqkN+DTQ5vxLOFvML8=; b=UGnQIKf9hsP9hyOlkn7fPEORTjAP1SXHfP8QUW40yp/SLhqmQrEAGyUg8b5jUVIr0u/99P vamxIYHc5oaRG/jgcYZQMAqFa2CUJgmsPjMglBI+id98oxyaLJlffjuMbkXMZ8IpuN1pDA BDR027GauqqrZlP6ZPW3pxzz+Arba/WYHTD/Hq9wKQ32oBHIzRMqxSkvV1NyXvRTtjL+Wn sQOgnXrAwuZjsB/rJ+laLe97JxvyAvV3JLqawDSsfumyBOlK8Fj16f6p+Y+ue3BZJ+KQwm XE43H1nZB6UA8sEbZT5f7lv/OY6vHz0wLBf5y+de7JWUlBbL3zhMl4V+4U9Eng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKqx94XkwzbpC for ; Tue, 19 May 2026 23:04:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18dec by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 19 May 2026 23:04:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: b79faca1c596 - stable/14 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b79faca1c5964d89c125d02de35928b733041f3f Auto-Submitted: auto-generated Date: Tue, 19 May 2026 23:04:13 +0000 Message-Id: <6a0cec6d.18dec.5523895e@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b79faca1c5964d89c125d02de35928b733041f3f commit b79faca1c5964d89c125d02de35928b733041f3f Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:04:05 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 40d18319ae28..303a8e4b2120 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1099,12 +1099,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1177,6 +1202,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1235,6 +1263,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Wed May 20 00:33:35 2026 X-Original-To: dev-commits-src-branches@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 4gKswH5x0hz6dpp6 for ; Wed, 20 May 2026 00:33: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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKswH5G8Nz4J4V for ; Wed, 20 May 2026 00:33:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779237215; 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=QdoyVYjWKYqdfe6XJP4kKVKuN+3C9Qn8VmNhFSB9UsY=; b=w0P68RLdYF6JmeAtAXzLnKv57yUBRak+bB0lOCsWjg5b1jzwCB0dKLWPg1PlKmtPZPlL0j 6JWqfr/pI4HyN4OvTqvyWB7B2a7H4ki8s7RBEBLOnAbKIqSmPmIA8GWMbDHhYL/xItM669 W0ddT3YOFGX/nXBz2npbNSWedTmwX4mz2Ib11eUG7ISoxWA9aZ0CrG6KXwUI5ar2fMOLJt lqw3AHUHBimFgeUJBjUU6PDpeg1d9CksdN4JUJOMLvGoX+6TzsXvI3LxcAEaEMH6YYASKu aD/CZdLxJk+YG3tKtn2JHLX7jObO3JMtBzP7Ejd3d1Xq8nmb9iyQOy9m3FR8gQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779237215; a=rsa-sha256; cv=none; b=veyHVLDiaz8cgWd0UEqLlCqjfZIJn1L6SqcMB+0Y3of0dJMibyuIGbVMNKUu+2/lKEbWkf FD4b7YANTRDOtPLwuA0NDDTwS5i5vguzWHeYX3xycCv+sHLZC2j9DUIeWZpfGyCHKmkUe+ LoPbCVBMhGkBcukd3FA3/+KSj8NM0uRhtoTHYTdb2EKEq/071949pIgiH5TR7m7KwJUpuL VtAzRRBqpHPBeZCYNuYiIZfyxat8w+ss3sC5aSrpDmZcggO6Xm294ZVp6wjs+9HXW6gJqU edLqabrHTMO6oGB25hHgQYnYcempWoHnA3thVZYc0dSO1ZI8f/PGXEbyn6hJvQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779237215; 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=QdoyVYjWKYqdfe6XJP4kKVKuN+3C9Qn8VmNhFSB9UsY=; b=KJsGLWPQxfoFXAmOtVAuhJedkrCRPXH/EnBj6WF7AmkUKq5gYt6j/qQr2gYaRQI1U7TDcm MEYz7+Ovz+ZaemcebOAbOj94Qe3b09+lU5TaQpygfETld8Qnb3IHQ+iVYUT0o00bMKHE7d oGR/7WA4azSobYkKi9JQBILCVgEUdoGcHu9Wz1sMqEAejIIS7yOUZ++xTdje5oZOHM2PGi 0NEPruZWQvgo++Qf28tFgJ4Sion0GheX0plseFH+jEMf0908UxLFWvpdfN3UV8B5FjEJop cBvdEsLt7tKSG0KhtZkrLgmI3vU+uOCyW48v3OMkvESDYKc1Be1G4YAmu5iJxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKswH4qcmzfBq for ; Wed, 20 May 2026 00:33:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 268a7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 00:33:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e6623a912911 - stable/15 - locking.9: warn about using sleepable lock address as a sleep channel List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: e6623a91291117c498113f63cc0053c8a459cf27 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 00:33:35 +0000 Message-Id: <6a0d015f.268a7.747ff700@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e6623a91291117c498113f63cc0053c8a459cf27 commit e6623a91291117c498113f63cc0053c8a459cf27 Author: Konstantin Belousov AuthorDate: 2026-05-15 11:05:45 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-20 00:33:08 +0000 locking.9: warn about using sleepable lock address as a sleep channel (cherry picked from commit 56bc43f5d02bd0745d597db44c285bf78d083762) --- share/man/man9/locking.9 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/share/man/man9/locking.9 b/share/man/man9/locking.9 index ad044b6e1d46..9afdcd56f4f6 100644 --- a/share/man/man9/locking.9 +++ b/share/man/man9/locking.9 @@ -205,11 +205,6 @@ The functions and .Fn wakeup_one also handle event-based thread blocking. -Unlike condition variables, -arbitrary addresses may be used as wait channels and a dedicated -structure does not need to be allocated. -However, care must be taken to ensure that wait channel addresses are -unique to an event. If a thread must wait for an external event, it is put to sleep by .Fn tsleep , .Fn msleep , @@ -222,6 +217,16 @@ Threads may also wait using one of the locking primitive sleep routines or .Xr sx_sleep 9 . .Pp +Unlike condition variables, +arbitrary addresses may be used as wait channels and a dedicated +structure does not need to be allocated. +However, care must be taken to ensure that wait channel addresses are +unique to an event. +For example, the memory address of a sleepable lock such as a +.Xr sx 9 +must not be used as a sleep channel, because the lock implementation +will internally use the same address as a wait channel. +.Pp The parameter .Fa chan is an arbitrary address that uniquely identifies the event on which From nobody Wed May 20 01:03:33 2026 X-Original-To: dev-commits-src-branches@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 4gKtZs4mwdz6drJ2 for ; Wed, 20 May 2026 01:03:33 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKtZs4Bpnz4L8R for ; Wed, 20 May 2026 01:03:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779239013; 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=RvjwYUHh6l/VmsV4QBfr9C5Z5KXkMk2WIDW/QKzpjek=; b=UGDREK/IiKTvMDMdQ3YmZB7ka4UmSFW0JoV0MMQjJZlFoyLUGh5W4Li2nAiUYNBLv9B7cJ JEt+o0/oUgGz6BpOR4PTwkZkjl+SABe37oO2WsbkwkVvuBj1EfMM2q2liQ3ZWPD9q68DY0 Sq3529hzYblW9pEPYIMY2Lz+ptaKsLkEhW5pXU5BX3fKwm8bOTfKdud2Q6dyuVlA0quPs5 1ry4ZOg3v9IO2I/G9iHzHtkypXtgG9yCCFyw8Ne8GcKrPu1ZC78Cq4Np9qMSlCBLziUB0H 6MDlv1v7bSSmCdLkJTZrHnQYb+ypja1Wk0lbbkkTqPGygrUqaDrMiHq8wUPSQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779239013; a=rsa-sha256; cv=none; b=SBGTe6RGAJnr+IX0byr0sq4VWj4ioLkyKXHX8xCkrUOMj8WF7cQSQfDDvSY7Xny0y9Duy4 v5QWK+BtoDm3Oxilb8U102a8Cs8I9OiS1PdJ8J5kF1brwZwIvINGHemr+b8CsZ24j9DP8n oAYKzY6nKJafUM4QOCRCZmAf1fjtzfFy3PoHhhGgkgpUyvAyhNK2+0i4VJeNR0v9yhU4S4 VhUw9qL/l/1tgTJkVVq6Q+w5ZS560pXFyBVNyH7t4kC2b+GMdb5oywcyJRvY67TQCrRaBs J7QoXYrCJVj6LPBcYrQQ/9skf9d668dheo2DNDZm/aL4FUApVNOQ4dYHo4ptYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779239013; 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=RvjwYUHh6l/VmsV4QBfr9C5Z5KXkMk2WIDW/QKzpjek=; b=apI4wLAIK6eeX/8D1ZuGFkHBFNy2Y2rt6a3zHVKnKNaLUI7R4NKwYIECU05H/DnYFtHgwW arlt6I70Fh82FVK0Qg0xU6rgaVWVJJhsIrYWCBBuCd4Nn3xYBrVqNhRgcWK/vpxbb2yIwH +q1lfClbS7IIJirnO0kCVDaYSC/oOycPhdbTEEu5k7QdgtBiqD4WDz8E0hwg5WTxcphtK5 s/cFeYRhS1/OwKvUr4OOcnSrpeYN2k9Czxc6VApPH1Jj0KhrcgoOzTkT0I/uzTk6IMfQDm TrVYbf/r65dPUQVuR85bUdK5sJzQgCNh44Uht4Go1glVWxk2uLi7sVAVUC789A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKtZs3p3bzfwc for ; Wed, 20 May 2026 01:03:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3064e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:03:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 3aab0373ddb6 - stable/15 - nfs_clsubs.c: Fix ncl_getcookie() when "pos" is negative List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3aab0373ddb61e8c6b422c8a4368b708640da2e9 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:03:33 +0000 Message-Id: <6a0d0865.3064e.6f6a0a22@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3aab0373ddb61e8c6b422c8a4368b708640da2e9 commit 3aab0373ddb61e8c6b422c8a4368b708640da2e9 Author: Rick Macklem AuthorDate: 2026-05-06 14:54:55 +0000 Commit: Rick Macklem CommitDate: 2026-05-20 00:01:44 +0000 nfs_clsubs.c: Fix ncl_getcookie() when "pos" is negative In ncl_getcookie(), a very large value for "off" for a directory can result in "pos" being set to a bogus value (including a negative one), due to truncation. When "pos" is negative, is can skip past the while (pos >= NFSNUMCOOKIES) loop and return a bogus pointer instead of NULL. This patch changes the type to u_int and also adds a sanity check for a very large "off" to ensure that a NULL pointer is returned for this case. This bug has been in the code for decades and I am not aware of any report of it causing a problem for users. (cherry picked from commit 448b4c3f7f7dd4c7e1707d7b833a26294c297182) --- sys/fs/nfsclient/nfs_clsubs.c | 10 +++++++++- sys/fs/nfsclient/nfsnode.h | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clsubs.c b/sys/fs/nfsclient/nfs_clsubs.c index ae9fa51947cc..6361ae5f2901 100644 --- a/sys/fs/nfsclient/nfs_clsubs.c +++ b/sys/fs/nfsclient/nfs_clsubs.c @@ -263,9 +263,17 @@ nfsuint64 * ncl_getcookie(struct nfsnode *np, off_t off, int add) { struct nfsdmap *dp, *dp2; - int pos; + u_int pos; nfsuint64 *retval = NULL; + /* + * Limiting "off" to 50Gbytes sets a limit of 100 million directory + * entries of maximum filename length. Much more with shorter + * file names. This limit ensures "pos" will not be truncated + * in the devision below. + */ + if (off > 53687091200ull) + goto out; pos = (uoff_t)off / NFS_DIRBLKSIZ; if (pos == 0 || off < 0) { KASSERT(!add, ("nfs getcookie add at <= 0")); diff --git a/sys/fs/nfsclient/nfsnode.h b/sys/fs/nfsclient/nfsnode.h index 07c7ccb0ff10..cd9ded943c2f 100644 --- a/sys/fs/nfsclient/nfsnode.h +++ b/sys/fs/nfsclient/nfsnode.h @@ -61,7 +61,7 @@ struct sillyrename { struct nfsdmap { LIST_ENTRY(nfsdmap) ndm_list; - int ndm_eocookie; + u_int ndm_eocookie; union { nfsuint64 ndmu3_cookies[NFSNUMCOOKIES]; uint64_t ndmu4_cookies[NFSNUMCOOKIES]; From nobody Wed May 20 01:06:20 2026 X-Original-To: dev-commits-src-branches@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 4gKtf51k3hz6drW4 for ; Wed, 20 May 2026 01:06:21 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKtf46NKyz4LRL for ; Wed, 20 May 2026 01:06:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779239180; 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=5D9liE9aU/iYNLxmPRWVfXy10Uf7uRweqicCFjv6G4g=; b=txZQPuJXtu97tuJD9bVg4d0QNzqDF/pNLhc8V6QZ4e/xdgKcUG7hYaI98cdoldzvuRhiXg pbj1P9jBfVu0SNWbRBErr1BWkzQxnRM9IDhbGn8QWZ+WgyUr4aQlVMyW8q0oleseFPebVB CjlHOc0rkH6mrUgsf7Pl4GDmGWhXm4MXjyVVFrZ1/ivKJ8/gCml2ApFdjin0bm+rEDGOrd 63l9gcMbVQmRw54VjV58zYq2ID0Mp5mf/TUPZzoTnSPPwIYkrZssGiC2OkhT7qSTF0qjLS PCrXwmjOe4AoEm53XqvImVtsIQSFFqi6RGivq/bZk2eP1/fk7eVxPqxPZZLdLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779239180; a=rsa-sha256; cv=none; b=V0IuMtib8iKUOc+Wk8Pfdp/4hauY784tzUMI50pSoqbtYVfh3ZNadRHtih84yRKnaQsmBZ fP2DpWXEA2WghUv4WuwKh77C13kLqwsnXX6330EuTHQJrlogFrXW3lgVNHz7OHKfcmMZON QvA67+/F1ttIggq5cY7Luo2PJd0ejWQ/sCvhhHYj0JDxqsviFmR2tNl10XzB/6VXFSjvzW rdUpicZBYWo3CgVM8nIf/VI3OQsmeArPCL9Y6XjK4LuWM6x7F6qR8uD3KegFx3o7kczrY9 0Zaucv+/mdhuzZfk4Ds6tUE6L0QQhp+29lEqO5qbd6jEOxwBqgFuJiUm8/MB4w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779239180; 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=5D9liE9aU/iYNLxmPRWVfXy10Uf7uRweqicCFjv6G4g=; b=TmuUepa2Id99u34B4yARmOkHId0IQRcn1w8YIuMEYMyDu75PGzTjLGZ+WPHVf7AdW7hf3S iQxJfXgESgY+SpXvdp+e3UEGCukBTip0zd2JQELbsdyx5/zq/5G1eyCwADJyWYyhWA7Mbv +Q0e1CNda7LWlsYH5E5EJLu12yO/dNVEV9YZkj63DhtScn+AeyM6j5hSYHqDMuzfSKQG+/ csckBg2wwheAlVN3X9FoehDnDLe3pC5yygHTNTDC86T5EtSKNrD6s/GH8kv+ulE8TUfZlQ 8J3v3aifc3p88tD/moWJXYHHMGXJ2WVnwiiB86c8aY3pGlYQrxwTOhaoDrc/6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKtf45CtTzgD8 for ; Wed, 20 May 2026 01:06:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 309ab by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:06:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: af8675b11e3c - stable/14 - nfs_clsubs.c: Fix ncl_getcookie() when "pos" is negative List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: af8675b11e3c6b426ebd2cdb1fc5bfb9b1d06cff Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:06:20 +0000 Message-Id: <6a0d090c.309ab.17d922f@gitrepo.freebsd.org> The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=af8675b11e3c6b426ebd2cdb1fc5bfb9b1d06cff commit af8675b11e3c6b426ebd2cdb1fc5bfb9b1d06cff Author: Rick Macklem AuthorDate: 2026-05-06 14:54:55 +0000 Commit: Rick Macklem CommitDate: 2026-05-20 00:04:41 +0000 nfs_clsubs.c: Fix ncl_getcookie() when "pos" is negative In ncl_getcookie(), a very large value for "off" for a directory can result in "pos" being set to a bogus value (including a negative one), due to truncation. When "pos" is negative, is can skip past the while (pos >= NFSNUMCOOKIES) loop and return a bogus pointer instead of NULL. This patch changes the type to u_int and also adds a sanity check for a very large "off" to ensure that a NULL pointer is returned for this case. This bug has been in the code for decades and I am not aware of any report of it causing a problem for users. (cherry picked from commit 448b4c3f7f7dd4c7e1707d7b833a26294c297182) --- sys/fs/nfsclient/nfs_clsubs.c | 10 +++++++++- sys/fs/nfsclient/nfsnode.h | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clsubs.c b/sys/fs/nfsclient/nfs_clsubs.c index 8bb51e29e1d1..ed61e6c9c804 100644 --- a/sys/fs/nfsclient/nfs_clsubs.c +++ b/sys/fs/nfsclient/nfs_clsubs.c @@ -268,9 +268,17 @@ nfsuint64 * ncl_getcookie(struct nfsnode *np, off_t off, int add) { struct nfsdmap *dp, *dp2; - int pos; + u_int pos; nfsuint64 *retval = NULL; + /* + * Limiting "off" to 50Gbytes sets a limit of 100 million directory + * entries of maximum filename length. Much more with shorter + * file names. This limit ensures "pos" will not be truncated + * in the devision below. + */ + if (off > 53687091200ull) + goto out; pos = (uoff_t)off / NFS_DIRBLKSIZ; if (pos == 0 || off < 0) { KASSERT(!add, ("nfs getcookie add at <= 0")); diff --git a/sys/fs/nfsclient/nfsnode.h b/sys/fs/nfsclient/nfsnode.h index cc1959b7bf79..e66d135b0587 100644 --- a/sys/fs/nfsclient/nfsnode.h +++ b/sys/fs/nfsclient/nfsnode.h @@ -61,7 +61,7 @@ struct sillyrename { struct nfsdmap { LIST_ENTRY(nfsdmap) ndm_list; - int ndm_eocookie; + u_int ndm_eocookie; union { nfsuint64 ndmu3_cookies[NFSNUMCOOKIES]; uint64_t ndmu4_cookies[NFSNUMCOOKIES]; From nobody Wed May 20 01:28:24 2026 X-Original-To: dev-commits-src-branches@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 4gKv7X5Q4Yz6dt7V for ; Wed, 20 May 2026 01:28:24 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKv7X4fNYz4NwJ for ; Wed, 20 May 2026 01:28:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779240504; 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=glpc7KZRjtwrjz2QzquboHLwMj2LkEJiTPMbUUp+Lv0=; b=jrkCRcKSCJW0tWAMB2rrQIoJvTWtcwTMQH+DCmd4TbuFX11dZMdlm5mf19f94SPC+LKDPO mLzF3RH8H4I9O8WG0qYWwzHgEMzWhxs2qccy9RTGGlUOyt31s5aZYfQrtxC1+U9HKa5Bef BLhO4iWCjCP2OVB3TBfalvXtPNk+yTnavWEe9pcUWAGrra/iPg1MU11v0ZDMO6RiwuGAUV p+IfQ+dLgDkjmda/QlP4XGf3njAmc9nLHPrzE9pe8z6ryxo0Kwlm3/t3M3gnphv3HeCn90 Ix22KZE4sxuVqN7KrUmbCVD5CWl4owvFd3tPEBkPCt6gbK8h9qY6cGCbhP+Mdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779240504; a=rsa-sha256; cv=none; b=Gl8c95uEHQZpz/YDidZyxuF51+siTCAtJr/qOnmHOU6AIssv46+zpeRF84hGge/FeLYcB8 zXAum2zq5s9RiDLLF+Tz183qqYgIN5HR+qj/SbBKg6q7p9M4m7HEnuv/pq+Ej0xw9/EVCp LxbFOzTZrRiHrF5b+J2rrvwX8l/O2jyMDc4ZE4UbSXyEKKDznpHR9lyo84j0BzceBdJ/7R pF0D24wVK+A9Ne2azz0wEvJGHgsRH1lrowrCOFBa5/Ga0LS/OTIKH2TdaqGyRjPoq/JR9y KlfoQ7uF1gP+Os2ZJVtCIyEvE9D+zrptGdORGImnWnARfjDeuEDY22LvTjoV/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779240504; 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=glpc7KZRjtwrjz2QzquboHLwMj2LkEJiTPMbUUp+Lv0=; b=dxyiUi1iJOLbS5PLeLE6r0++Ya6n/aAXD1evsratn2OBCoLkiOf3bUpeML82blZw3z8adZ vqWHDDmhp/l/0e92AKzVIcDYsCN0qvRFFTSTBEl5Q/pE7FkeAaVrWiburTGv7MbJsXNQhV MxJ18TPXrgCQxbvWVmKmeAQ+DKyBumynkGNXXHeuM9X/s/xx/dzwXUtCdhJMDfX/7kqk4j bLmcXeBqTqaD1qmEv0rK4Rbc/YY+21YxcKitMCDWe1Eij7o6AtehwaylzAnRJho+5B/uOP w28rYaGQd0eGo+AAqV8riHHp0rLhV7L1DGfenff25JAepftQGWKipFznDw2m7A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKv7X4CmRzgWc for ; Wed, 20 May 2026 01:28:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32ff8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:28:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: 5642fd4b1e44 - stable/15 - ping: fix listing test cases when scapy is not installed List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5642fd4b1e44a773a989d3c28869584611da0a54 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:28:24 +0000 Message-Id: <6a0d0e38.32ff8.7f07185a@gitrepo.freebsd.org> The branch stable/15 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=5642fd4b1e44a773a989d3c28869584611da0a54 commit 5642fd4b1e44a773a989d3c28869584611da0a54 Author: Alan Somers AuthorDate: 2026-05-01 23:06:35 +0000 Commit: Alan Somers CommitDate: 2026-05-20 01:12:32 +0000 ping: fix listing test cases when scapy is not installed The ATF-python test program was attempting to list test cases that require scapy. But it attempted to import the scapy module before the test cases had been listed, resulting in an ImportError that kyua interpreted as a test program crash. Fix this behavior by handling that ImportError well enough to list test cases, but not run them. If scapy isn't present, Kyua will refuse to run the test cases. But it needs to be able to list them in order to know to skip them. Sponsored by: ConnectWise Reviewed by: maxim Differential Revision: https://reviews.freebsd.org/D56765 (cherry picked from commit 3e845b1090565912375c5578cf0399d27b7fa70c) --- sbin/ping/tests/test_ping.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 3f9a3aecf924..fdf9c875329c 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -12,7 +12,31 @@ from typing import List from typing import Optional logging.getLogger("scapy").setLevel(logging.CRITICAL) -import scapy.all as sc +try: + import scapy.all as sc +except ImportError as e: + # Fake scapy well enough to be able to list test cases + from types import SimpleNamespace + sc = SimpleNamespace( + scapy=SimpleNamespace( + fields=SimpleNamespace( + SourceIPField=0, + ByteEnumField=0, + MultiEnumField=0, + BitField=0, + FlagsField=0, + ByteField=0, + IPField=0, + ShortField=0, + ), + layers=SimpleNamespace( + inet=SimpleNamespace( + DestIPField=0, + ICMPTimeStampField=0, + ) + ) + ) + ) def build_response_packet(echo, ip, icmp, oip_ihl, special): From nobody Wed May 20 01:47:05 2026 X-Original-To: dev-commits-src-branches@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 4gKvYB211bz6dvV8 for ; Wed, 20 May 2026 01:47:10 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKvYB1JrCz3CDh for ; Wed, 20 May 2026 01:47:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779241630; 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=YDwJyZbVrf2ORQu8CqZCWUIZhk2hIiJKp0gM4Mdg+7E=; b=dBOcmXDEeZv+QghgAiPKuuwWkxtP0pTa3hlNTMgScHkbMiOx+H+ihwYAeBgJobeKXeqwvh bl0bgXPc9w0d2fBuB9bVh6Hc1gdSTYDEEXVC7OCKczjKdvGjcJvl++1zt1JsBVLxH6uWDZ JdKuDPNQxAuWrmMgQspoOi8G081rDfjspEO/IOjyccHsps2/zQZpkdh8kvFSyQKJBaBp2m ixqYTyJyrkZByrkzVWX+xg2oJ02koaWqGWGqR17PMUcgCgMjXhNov3mY58ZtD2uTq9PGGF 2ACwr+kSnlHe/OiS5V3+TnrtX7g0C/r4UyIJmCiIYo/cDvUIGnb5tlBaVtwmnQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779241630; a=rsa-sha256; cv=none; b=ENFK0lPZs5wpaq29fGtxMMejrRAzMrNLo22RL2tw6Sj3clOOBpe96ELEh8p1siZnAUlZ3d Pk84odtAukq1QGwXSt9eVxDCAZXVJHAHeOhUxsuOlBcmLot6KY6mSgezBuqFxFN1KISinS CVHDhHb29uA2EkIvOtGQmpYgq3IKYZ4ASOE5SCBZLIfl/9LgnCB/e9mbgNzFSOv+LUNK6F +vj4sWb+LJlNKneSOereAbmx2CjwD7QugEVoub3RFK37meWdL9gw+Vs2fId4T48INRcBFZ LXWhj1QRLk2ub2oGtPAdPflJC4FM+JspM7pn4TN3IWvKHWMftelUB2MbupLpFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779241630; 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=YDwJyZbVrf2ORQu8CqZCWUIZhk2hIiJKp0gM4Mdg+7E=; b=JJ/RxDnLLAPmfNhnR/r71FtT0sMUr71F+aVnPhyYlIZxp4P6I71uD6ca22ps/QTFvPeDRH zn6NM+uN8YP7TdKaAWVGzkd4Dy6q9u2Q21B4Gsl0u/RxaFus1aTeGAnyOhv1uk9/4LrSWo oNUrJNqQcYQXsIo8+Ljh5kMqfk5FvxsDdbXVjvGCmyct14/MmG0oy4nz9ZfU5s/WGyM/Dq 4jqpGX7TuRQVOsocOSi7Gbv/tlyZ3arxiV/MDvzvw3bN2SdJhehQg29zwNPvmor0WI1lP9 3Om8PJHqcapz5/FEEpA/hZsAVwai/lGxgXYvGIMjiXwa0B/od6ECp4WTo7Suuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKvYB0tK5zgS7 for ; Wed, 20 May 2026 01:47:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 368a1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:47:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: 57fb48f8e2fc - stable/15 - linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 57fb48f8e2fca5f069e9bc3cf080608f602919a9 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:47:05 +0000 Message-Id: <6a0d1299.368a1.74298d9@gitrepo.freebsd.org> The branch stable/15 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=57fb48f8e2fca5f069e9bc3cf080608f602919a9 commit 57fb48f8e2fca5f069e9bc3cf080608f602919a9 Author: Alan Somers AuthorDate: 2026-05-16 18:03:49 +0000 Commit: Alan Somers CommitDate: 2026-05-20 01:28:33 +0000 linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8 For Linux binaries, sopt->sopt_td may be null. And there's also no need to check it, since struct l_ucred has the same layout on 32-bit systems as on 64-bit ones. PR: 295333 Reported by: Miguel Gomes Fixes: 1d24638d3e8 ("Fix LOCAL_PEERCRED in 32-bit compat mode") Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D57032 (cherry picked from commit 4cee16d471d47f4673e4d2c66f7a96d4e6d86ee9) --- sys/kern/uipc_usrreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 8e8261c9644e..90c13f7e17c4 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -2759,7 +2759,9 @@ uipc_ctloutput(struct socket *so, struct sockopt *sopt) if (error != 0) break; #ifdef COMPAT_FREEBSD32 - if (SV_PROC_FLAG(sopt->sopt_td->td_proc, SV_ILP32)) { + if (sopt->sopt_td && + SV_PROC_FLAG(sopt->sopt_td->td_proc, SV_ILP32)) + { struct xucred32 xu32 = {}; int i; From nobody Wed May 20 01:53:26 2026 X-Original-To: dev-commits-src-branches@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 4gKvhQ2mD6z6dvf3 for ; Wed, 20 May 2026 01:53:26 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKvhQ1tYBz3Cjs for ; Wed, 20 May 2026 01:53:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779242006; 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=OB0XzbR/1TMkj8AJvdJebFDrpe/hi/xvbKhUkRyClJg=; b=DyQH8H7imMSMkLMN/TpeW1io/e6AVmvTKVJm8WV2litOhgbqjrXrbAcj1BMrkLKAc8lQTE 55VJaFfB1TLXgPsF4mrb80aqOAuKcrmK0zqVW/o4o/wJOQxLzSnoHdM8BBThOGj/nrokLJ W/h76Y/YxIO4AIjt60j6tg8O4ZHnCakMr20EUQ6Ceeapw6Dv8AIgoR3ZyudeDh2oE1BHfc zzyIyVsPMUIsZ/LyorLF276+Gq6YwxVOvWMM+lamCKiPcs0YuErB5oGvULsATjasX8zazx ZIlVeKRHdiVq71dimRBQItuv0NjqI5yOeBXFXSQfE2M+rETaNflNtj9yxFXsGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779242006; a=rsa-sha256; cv=none; b=HZhpqVdwWRLIxHYVkCOeLx+CoO75NsFk/xd8OpvpeI8eNh2jewhmgy7ikcFiS7pruGV6oS uHCkkbPC8+uejr/TlEs2iu2Zq/4n312LZVmbUqwvKz3MP5VKhtFFR3uISK6WTT4Mo3gY7s 03onkol/SeLEdFQHzlZeuxG52vFLy0ZrrE1p5rBKRW4VAoYnzNMDdWCzu5szo9M8SnroQJ xA4v8tb3ojFltpcKQwuwzO8BGDVZdNAEqr8+yIaLsJanWB2yre4fZF6eXRMlZlHMc0mJQh /BWydG/oGYBPt1j5vgo0Vrn8DLm11Xu58JVo0soCgrBJQNEBwkl2ePfn57xa5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779242006; 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=OB0XzbR/1TMkj8AJvdJebFDrpe/hi/xvbKhUkRyClJg=; b=hmIrCZVRC0ne4ooyVCI4ZlCMQQvJ7Sd0iiPV34oyhk337KKNHuDkfhDs2i4an1qkGws8ns xl/Q96sRcu2NvyErcC4+rkHl7EzDRXDCbWYDiWQkYWd2fdS/Y9kDs4mbr+iCjaAx4GBBPj vxWr/BnUm1LvF7pq8H+GPorcWCRDB24k/bdxKLfneWBGmdQ9+j7182Aep3lIIhwPH5Rkkq MgjoOjB9ZQTLmc70VnOLTv3yuqOcsnOTZBK2AG6A0jM00SqyeKjHz/JCtyXQo/K3nVMbNp g/hWGZ3N8KPevNvYqwGb886yb0UxXt1sO1ehyZzUJ9uoV2szuzf8zdpZXpKPLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKvhQ1Pt1zgVr for ; Wed, 20 May 2026 01:53:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36e38 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:53:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Justin Hibbits Subject: git: 237e851009e8 - stable/15 - pseries/llan: call init when ioctl sets interface UP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 237e851009e81f519a0fcb57220cff0d35223b88 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:53:26 +0000 Message-Id: <6a0d1416.36e38.41b75e56@gitrepo.freebsd.org> The branch stable/15 has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=237e851009e81f519a0fcb57220cff0d35223b88 commit 237e851009e81f519a0fcb57220cff0d35223b88 Author: Justin Hibbits AuthorDate: 2026-04-23 03:12:37 +0000 Commit: Justin Hibbits CommitDate: 2026-05-20 01:52:50 +0000 pseries/llan: call init when ioctl sets interface UP This should fix dhcp on an unitialized interface. This solution was found while comparing against another driver, SIOCSIFFLAGS is used by dhclient to force the interface up before it has an IP address. However, all setup work is done in llan_init(), so the interface would not be enabled if configured via only the SIOCSIFFLAGS ioctl. By running llan_init() when the interface is forced up via SIOCSIFFLAGS, the interface is initialized properly. PR: 292164 (cherry picked from commit 74dff310698b9a4da9804ed0ded00428b0aebbe8) --- sys/powerpc/pseries/phyp_llan.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/powerpc/pseries/phyp_llan.c b/sys/powerpc/pseries/phyp_llan.c index 4ba4549a9cf5..763eebc15b36 100644 --- a/sys/powerpc/pseries/phyp_llan.c +++ b/sys/powerpc/pseries/phyp_llan.c @@ -547,6 +547,10 @@ llan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) err = ifmedia_ioctl(ifp, (struct ifreq *)data, &sc->media, cmd); break; case SIOCSIFFLAGS: + if ((if_getflags(ifp) & IFF_UP) && + !(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) + llan_init(sc); + break; default: err = ether_ioctl(ifp, cmd, data); break; From nobody Wed May 20 01:58:50 2026 X-Original-To: dev-commits-src-branches@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 4gKvpg04CHz6dwMV for ; Wed, 20 May 2026 01:58:51 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKvpf6RB9z3DcN for ; Wed, 20 May 2026 01:58:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779242330; 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=6TgxBZrdnwLAz1UKNTI4sZdq2I0ja26ke7u9evKJqVA=; b=BzX+ktmqIeP7cmu6lF9kvq4xsYhhG5FHaW/oLXTU5NptZLmK0LVIuY6uI7tonH44pU2fnA YvaIZ2qWtnBn71TJrhAzmOa9k7vhMyWhslDJEQ33l9oWKTkFTl1KxBJajNu4QDIOU/DyGL iWS574ZMTJX+4OsL16ad+9nx5sPhhJy9Xt/Odws8nCigE+P/9Z8a4LIw/yfMX6TItdAzeT mV7c1mXaKqONRaDgpYRQ/i8HfdLqG8EVxvGBmRx1qdAKzgdbSgsHkCBG98AjSh5SGbdd/m lbYn9Bx5mgRbvvhOvYR/9eGvQvU3sFdf3N8PEKjwgS53dj5WxpjTzDy6W1z7fw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779242330; a=rsa-sha256; cv=none; b=I41cgIm6LGx81GctJaSmYPZs6h67TaoSF+nIsmqQ/2P3k5h7JhRo+yb+7xJfz7BvZOgCxb TO48I940QkZa0WXGDcoaOIAHrnFCocMumrWDDRHdRct1CsFrn7YOMg8kTax1c7jOm/UCyi S5sxgz9HsRh6UHbsKy63rV+OdzmzjRsup3wstvk+DPmcEkl1N+cWYzTXNv7FACscFLdSm+ qrjj/JCJDml025LnJTBhSj+BWg/WsqoWg/Nbm7Selttx0R5bFM1ndqfZeWOtqZXtqFSoSn Ny3TK4rj11QnNiSdxI/1pwt2bs7Fc0oGs/ePpgnu0RVwtxOxVLm7aOIQY1AyYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779242330; 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=6TgxBZrdnwLAz1UKNTI4sZdq2I0ja26ke7u9evKJqVA=; b=p1qZ2i5ApYtPZTpa1esn26nH9QkP/H7/KNk7aBUp4dg4N6Vv8a77yOOneBsamaiCmjeKeS qbMPILtbLnkKM+AkIygQjWUpOV+RUduCYZ3rXJbna2g8KvR8bC9m4LE8hH1vIITjxa9WaV FeL9A12qzwu5Fmx3keXXnLohSJh9UZeZzVHKeOwmyhM1w0ykb28MJWCZi47kNgjG5PVBif XFI7dLOvb7sFIGMorD3QNSc28/qnLCjP8IPHgnpLNUViecmC40KP5szJsSaSxVdy1fD0jJ yAQIPPw8yFY7zaGH9ofcaTublXtqWEugn6gKYdQ33hFRmZ0+uFH9IJU82cIEIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKvpf6255zhbJ for ; Wed, 20 May 2026 01:58:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37dbb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 01:58:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Justin Hibbits Subject: git: 0b158de11091 - stable/14 - pseries/llan: call init when ioctl sets interface UP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0b158de1109174cd5a189e244198ee02062984f0 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 01:58:50 +0000 Message-Id: <6a0d155a.37dbb.7700940b@gitrepo.freebsd.org> The branch stable/14 has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=0b158de1109174cd5a189e244198ee02062984f0 commit 0b158de1109174cd5a189e244198ee02062984f0 Author: Justin Hibbits AuthorDate: 2026-04-23 03:12:37 +0000 Commit: Justin Hibbits CommitDate: 2026-05-20 01:55:31 +0000 pseries/llan: call init when ioctl sets interface UP This should fix dhcp on an unitialized interface. This solution was found while comparing against another driver, SIOCSIFFLAGS is used by dhclient to force the interface up before it has an IP address. However, all setup work is done in llan_init(), so the interface would not be enabled if configured via only the SIOCSIFFLAGS ioctl. By running llan_init() when the interface is forced up via SIOCSIFFLAGS, the interface is initialized properly. PR: 292164 (cherry picked from commit 74dff310698b9a4da9804ed0ded00428b0aebbe8) --- sys/powerpc/pseries/phyp_llan.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/powerpc/pseries/phyp_llan.c b/sys/powerpc/pseries/phyp_llan.c index 26209d744101..5da5fd78fcc3 100644 --- a/sys/powerpc/pseries/phyp_llan.c +++ b/sys/powerpc/pseries/phyp_llan.c @@ -548,6 +548,10 @@ llan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) err = ifmedia_ioctl(ifp, (struct ifreq *)data, &sc->media, cmd); break; case SIOCSIFFLAGS: + if ((if_getflags(ifp) & IFF_UP) && + !(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) + llan_init(sc); + break; default: err = ether_ioctl(ifp, cmd, data); break; From nobody Wed May 20 03:00:25 2026 X-Original-To: dev-commits-src-branches@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 4gKx9j5JZyz6f1Gc for ; Wed, 20 May 2026 03:00:25 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKx9j4YmJz3MvV for ; Wed, 20 May 2026 03:00:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779246025; 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=Tg0Q3zA2LqM0HZ2uYaT0KglLvv1JDYZ6ReOBdqpuvYY=; b=StDWEIIS1vfhSYcrFAIgZ2NCVGpWrs3pVL8KJtmsIeExK5E1LffNYP3CdMW4RBPgylcgus lb8W+zMIuie7CvlVNjnPUInfZk5ZXSztOhBDOwWg8GUtGiZXTSS96aOdTmTDZjeYok7xoa sx8qZ/jh7tBNaN98FhfufMJK91qU8tpEdUl73iMPQ8wdVx5eki/xmZ+bCYmxAsb4RA7eel MSxLUjcHcediEKbtfFFDAmVghzsEJ69V/T214XDZSiDSiPXVeGYJ+vxI6Evdew0tUrRBpM a6hakFjohOFspig765FyJiPBySJuH3Qz2vXI9GgYTXIbXNIWuZACS6w0XblAIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779246025; a=rsa-sha256; cv=none; b=yTiQK2sK6hO2vAdgCAlMSZofmFy6H+kX5v5lL38rVM31Co5PZ35t8ciGs//wrTBtG3xlmt cMWgMlOFrLrkNU3w8ktqLlrHIIrSPwfGy+7i9ckko5vsQxf0lK1JvF6iJvhvhj+XUY0qMs u/7HWVNRC+ASoIDpnW2WhyCOC+H0uL3FhH7QKRpqAWd2JbXYMgM8/uCdvfg75GdqEbN0D5 ODCIvf/mM8OCQXTMG3ITH7wGodo0PDqDUJEuMkCvs+27fdV06aODK2bAx2dpVjwsueqR9I TfvGFIhWQHEV9TrppvhwYwUEdub4bKW4A3XTdA0yfnWbjIXc34NgyiJ85dk6eQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779246025; 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=Tg0Q3zA2LqM0HZ2uYaT0KglLvv1JDYZ6ReOBdqpuvYY=; b=x7xZF4t0DsFtgYQnkwB0oNMGrIryEIjTJTYjmpnrWRa8+f5o1mZuXbroTaShUjTFm38ZEj 3jI/y6wZ7I3kZpb0kxGyqcQLO5c74YPPD7COdWW5OSKcNKY7m1VsJl+6btGn8EAw7Wm424 /0XfX9Hmh7gCu7oWCP2nyx6IEooo12KupjVbaUijmGVanGymXQ1kHSRjsauPEEqROLemSi L/QUsXcYcXeFh31vXimAd11ouHOzfCtxLK1yQqifP1NtZV2YZud0Hy0NxszbsMO/atIq7S JN67c52Obj1H4Z4uNF0W5rcw6ajhjorTos65NTzLfhq4pqgAFofHczZgNlozEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKx9j3wf3zjbQ for ; Wed, 20 May 2026 03:00:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e41b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 03:00:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 659a27e48969 - stable/15 - contrib/expat: import expat 2.8.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: philip X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 659a27e48969f49a1b737791a14c2cc6a1626d00 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 03:00:25 +0000 Message-Id: <6a0d23c9.3e41b.189820d1@gitrepo.freebsd.org> The branch stable/15 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=659a27e48969f49a1b737791a14c2cc6a1626d00 commit 659a27e48969f49a1b737791a14c2cc6a1626d00 Author: Philip Paeps AuthorDate: 2026-05-13 03:17:00 +0000 Commit: Philip Paeps CommitDate: 2026-05-20 02:50:51 +0000 contrib/expat: import expat 2.8.1 Changes: https://github.com/libexpat/libexpat/blob/R_2_8_1/expat/Changes Security: CVE-2026-45186 (cherry picked from commit 9cc9b8b372842b9a941d235c5e9949a214e5284f) --- contrib/expat/Changes | 26 ++++ contrib/expat/README.md | 2 +- contrib/expat/configure.ac | 2 +- contrib/expat/doc/reference.html | 2 +- contrib/expat/doc/xmlwf.1 | 2 +- contrib/expat/doc/xmlwf.xml | 2 +- contrib/expat/lib/expat.h | 2 +- contrib/expat/lib/xmlparse.c | 36 ++++- contrib/expat/tests/alloc_tests.c | 4 +- contrib/expat/tests/basic_tests.c | 310 ++++++++++++++++++++++++++++++++++++-- contrib/expat/tests/common.c | 5 +- contrib/expat/tests/handlers.c | 34 +++-- contrib/expat/tests/handlers.h | 2 + contrib/expat/tests/memcheck.c | 6 +- contrib/expat/tests/minicheck.c | 10 +- contrib/expat/tests/misc_tests.c | 7 +- contrib/expat/tests/structdata.c | 7 +- contrib/expat/xmlwf/unixfilemap.c | 5 +- contrib/expat/xmlwf/xmlfile.c | 4 +- contrib/expat/xmlwf/xmlwf.c | 83 +++++----- lib/libexpat/expat_config.h | 6 +- lib/libexpat/libbsdxml.3 | 4 +- 22 files changed, 450 insertions(+), 111 deletions(-) diff --git a/contrib/expat/Changes b/contrib/expat/Changes index 87611eea5c01..313b3dc60cd0 100644 --- a/contrib/expat/Changes +++ b/contrib/expat/Changes @@ -29,6 +29,32 @@ !! THANK YOU! Sebastian Pipping -- Berlin, 2026-03-17 !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Release 2.8.1 Sun May 10 2026 + Security fixes: + #1216 CVE-2026-45186 -- Fix quadratic runtime from attribute name + collision checks that allowed denial of service attacks + through moderately sized crafted XML input (CWE-407). + Please note that a layer of compression around XML can + significantly reduce the minimum attack payload size. + + Other changes: + #1209 #1213 Drop more casts related to `void *` that C99 does not need + #1213 xmlwf: Streamline use of `mmap` + #1214 #1217 Version info bumped from 13:0:12 (libexpat*.so.1.12.0) + to 13:1:12 (libexpat*.so.1.12.1); see https://verbump.de/ + for what these numbers do + + Infrastructure: + #1210 CI: Cover compilation with Visual Studio 18 2026 on Windows + #1215 CI: Cover compilation for ARM64 on Windows + #1212 CI: Bump WASI SDK from 32 to 33 + + Special thanks to: + Berkay Eren Ürün + Matthew Fernandez + Nick Wellnhofer + Tania Somanna + Release 2.8.0 Fri April 24 2026 Security fixes: #47 #1183 CVE-2026-41080 -- The existing hash flooding protection diff --git a/contrib/expat/README.md b/contrib/expat/README.md index 619e60b2d16b..7a5ed463b6d5 100644 --- a/contrib/expat/README.md +++ b/contrib/expat/README.md @@ -11,7 +11,7 @@ > at the top of the `Changes` file. -# Expat, Release 2.8.0 +# Expat, Release 2.8.1 This is Expat, a C99 library for parsing [XML 1.0 Fourth Edition](https://www.w3.org/TR/2006/REC-xml-20060816/), started by diff --git a/contrib/expat/configure.ac b/contrib/expat/configure.ac index 87633650f321..fb492dfd79f7 100644 --- a/contrib/expat/configure.ac +++ b/contrib/expat/configure.ac @@ -90,7 +90,7 @@ dnl If the API changes incompatibly set LIBAGE back to 0 dnl LIBCURRENT=13 # sync -LIBREVISION=0 # with +LIBREVISION=1 # with LIBAGE=12 # CMakeLists.txt! AC_CONFIG_HEADERS([expat_config.h]) diff --git a/contrib/expat/doc/reference.html b/contrib/expat/doc/reference.html index 195bd183fd82..07d331ed7b56 100644 --- a/contrib/expat/doc/reference.html +++ b/contrib/expat/doc/reference.html @@ -53,7 +53,7 @@

- The Expat XML Parser Release 2.8.0 + The Expat XML Parser Release 2.8.1

diff --git a/contrib/expat/doc/xmlwf.1 b/contrib/expat/doc/xmlwf.1 index 0736f110e3c1..12760944a5da 100644 --- a/contrib/expat/doc/xmlwf.1 +++ b/contrib/expat/doc/xmlwf.1 @@ -5,7 +5,7 @@ \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac -.TH XMLWF 1 "April 24, 2026" "" "" +.TH XMLWF 1 "May 10, 2026" "" "" .SH NAME xmlwf \- Determines if an XML document is well-formed .SH SYNOPSIS diff --git a/contrib/expat/doc/xmlwf.xml b/contrib/expat/doc/xmlwf.xml index 3a3897750cb1..529dbba16722 100644 --- a/contrib/expat/doc/xmlwf.xml +++ b/contrib/expat/doc/xmlwf.xml @@ -21,7 +21,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ Scott"> Bronson"> - April 24, 2026"> + May 10, 2026"> 1"> bronson@rinspin.com"> diff --git a/contrib/expat/lib/expat.h b/contrib/expat/lib/expat.h index 79c609f19aa4..ec3f58544cb0 100644 --- a/contrib/expat/lib/expat.h +++ b/contrib/expat/lib/expat.h @@ -1094,7 +1094,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); */ # define XML_MAJOR_VERSION 2 # define XML_MINOR_VERSION 8 -# define XML_MICRO_VERSION 0 +# define XML_MICRO_VERSION 1 # ifdef __cplusplus } diff --git a/contrib/expat/lib/xmlparse.c b/contrib/expat/lib/xmlparse.c index 620d1e4b46e2..890a9389f15d 100644 --- a/contrib/expat/lib/xmlparse.c +++ b/contrib/expat/lib/xmlparse.c @@ -1,4 +1,4 @@ -/* a5d18f6a50f536615ac1c70304f87d94f99cc85a86b502188952440610ccf0f8 (2.8.0+) +/* 75ef4224f81c052e9e5aeea2ac7de75357d2169ff9908e39edc08b9dc3052513 (2.8.1+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -387,6 +387,7 @@ typedef struct { int nDefaultAtts; int allocDefaultAtts; DEFAULT_ATTRIBUTE *defaultAtts; + HASH_TABLE defaultAttsNames; } ELEMENT_TYPE; typedef struct { @@ -3769,6 +3770,8 @@ storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr, sizeof(ELEMENT_TYPE)); if (! elementType) return XML_ERROR_NO_MEMORY; + if (! elementType->defaultAttsNames.parser) + hashTableInit(&(elementType->defaultAttsNames), parser); if (parser->m_ns && ! setElementTypePrefix(parser, elementType)) return XML_ERROR_NO_MEMORY; } @@ -7102,10 +7105,10 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, if (value || isId) { /* The handling of default attributes gets messed up if we have a default which duplicates a non-default. */ - int i; - for (i = 0; i < type->nDefaultAtts; i++) - if (attId == type->defaultAtts[i].id) - return 1; + NAMED *const nameFound + = (NAMED *)lookup(parser, &(type->defaultAttsNames), attId->name, 0); + if (nameFound) + return 1; if (isId && ! type->idAtt && ! attId->xmlns) type->idAtt = attId; } @@ -7152,6 +7155,12 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, att->isCdata = isCdata; if (! isCdata) attId->maybeTokenized = XML_TRUE; + + NAMED *const nameAddedOrFound = (NAMED *)lookup( + parser, &(type->defaultAttsNames), attId->name, sizeof(NAMED)); + if (! nameAddedOrFound) + return 0; + type->nDefaultAtts += 1; return 1; } @@ -7477,6 +7486,7 @@ dtdReset(DTD *p, XML_Parser parser) { ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); if (! e) break; + hashTableDestroy(&(e->defaultAttsNames)); if (e->allocDefaultAtts != 0) FREE(parser, e->defaultAtts); } @@ -7518,6 +7528,7 @@ dtdDestroy(DTD *p, XML_Bool isDocEntity, XML_Parser parser) { ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); if (! e) break; + hashTableDestroy(&(e->defaultAttsNames)); if (e->allocDefaultAtts != 0) FREE(parser, e->defaultAtts); } @@ -7611,6 +7622,10 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, sizeof(ELEMENT_TYPE)); if (! newE) return 0; + + if (! newE->defaultAttsNames.parser) + hashTableInit(&(newE->defaultAttsNames), parser); + if (oldE->nDefaultAtts) { /* Detect and prevent integer overflow. * The preprocessor guard addresses the "always false" warning @@ -7635,8 +7650,9 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), oldE->prefix->name, 0); for (i = 0; i < newE->nDefaultAtts; i++) { + const XML_Char *const attributeName = oldE->defaultAtts[i].id->name; newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup( - oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0); + oldParser, &(newDtd->attributeIds), attributeName, 0); newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata; if (oldE->defaultAtts[i].value) { newE->defaultAtts[i].value @@ -7645,6 +7661,12 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, return 0; } else newE->defaultAtts[i].value = NULL; + + NAMED *const nameAddedOrFound = (NAMED *)lookup( + parser, &(newE->defaultAttsNames), attributeName, sizeof(NAMED)); + if (! nameAddedOrFound) { + return 0; + } } } @@ -8391,6 +8413,8 @@ getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr, sizeof(ELEMENT_TYPE)); if (! ret) return NULL; + if (! ret->defaultAttsNames.parser) + hashTableInit(&(ret->defaultAttsNames), getRootParserOf(parser, NULL)); if (ret->name != name) poolDiscard(&dtd->pool); else { diff --git a/contrib/expat/tests/alloc_tests.c b/contrib/expat/tests/alloc_tests.c index 5ae6c6a72025..433bf611808a 100644 --- a/contrib/expat/tests/alloc_tests.c +++ b/contrib/expat/tests/alloc_tests.c @@ -20,6 +20,7 @@ Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow Copyright (c) 2025 Berkay Eren Ürün + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -2136,8 +2137,7 @@ START_TEST(test_alloc_tracker_pointer_alignment) { XML_Parser parser = XML_ParserCreate(NULL); #if XML_GE == 1 assert_true(sizeof(long long) >= sizeof(size_t)); // self-test - long long *const ptr - = (long long *)expat_malloc(parser, 4 * sizeof(long long), -1); + long long *const ptr = expat_malloc(parser, 4 * sizeof(long long), -1); ptr[0] = 0LL; ptr[1] = 1LL; ptr[2] = 2LL; diff --git a/contrib/expat/tests/basic_tests.c b/contrib/expat/tests/basic_tests.c index 537c7e0e5a5c..b5088bcda988 100644 --- a/contrib/expat/tests/basic_tests.c +++ b/contrib/expat/tests/basic_tests.c @@ -19,8 +19,9 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow - Copyright (c) 2024-2025 Berkay Eren Ürün + Copyright (c) 2024-2026 Berkay Eren Ürün Copyright (c) 2026 Francesco Bertolaccini + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -2491,11 +2492,9 @@ START_TEST(test_attributes) { {XCS("id"), XCS("one")}, {NULL, NULL}}; AttrInfo tag_info[] = {{XCS("c"), XCS("3")}, {NULL, NULL}}; - ElementInfo info[] = {{XCS("doc"), 3, XCS("id"), NULL}, - {XCS("tag"), 1, NULL, NULL}, - {NULL, 0, NULL, NULL}}; - info[0].attributes = doc_info; - info[1].attributes = tag_info; + ElementInfo info[] = {{XCS("doc"), 3, 0, XCS("id"), doc_info}, + {XCS("tag"), 1, 0, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; XML_Parser parser = XML_ParserCreate(NULL); assert_true(parser != NULL); @@ -2514,6 +2513,279 @@ START_TEST(test_attributes) { } END_TEST +START_TEST(test_duplicate_cdata_attribute) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_1) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("identifier"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_2) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{NULL, NULL}}; + + ElementInfo info[] + = {{XCS("doc"), 0, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_2) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")}, {NULL, NULL}}; + AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 0, 1, NULL, doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_3) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text + = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")}, + {XCS("second_attribute"), XCS("second_expected_doc")}, + {NULL, NULL}}; + AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 0, 2, NULL, doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_multiple_attlistdecl) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] + = {{XCS("identifier"), XCS("doc_identity")}, {NULL, NULL}}; + AttrInfo tag_info[] + = {{XCS("identifier"), XCS("identifier_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 1, 0, XCS("identifier"), doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + /* Test reset works correctly in the middle of processing an internal * entity. Exercises some obscure code in XML_ParserReset(). */ @@ -3435,8 +3707,7 @@ external_bom_checker(XML_Parser parser, const XML_Char *context, fail("Could not create external entity parser"); if (! xcstrcmp(systemId, XCS("004-2.ent"))) { - struct bom_testdata *const testdata - = (struct bom_testdata *)XML_GetUserData(parser); + struct bom_testdata *const testdata = XML_GetUserData(parser); const char *const external = testdata->external; const int split = testdata->split; testdata->nested_callback_happened = XML_TRUE; @@ -5501,7 +5772,7 @@ START_TEST(test_deep_nested_entity) { const size_t N_LINES = 60000; const size_t SIZE_PER_LINE = 50; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -5547,7 +5818,7 @@ START_TEST(test_deep_nested_attribute_entity) { const size_t N_LINES = 60000; const size_t SIZE_PER_LINE = 100; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -5568,8 +5839,8 @@ START_TEST(test_deep_nested_attribute_entity) { (long unsigned)(N_LINES - 1)); AttrInfo doc_info[] = {{XCS("name"), XCS("deepText")}, {NULL, NULL}}; - ElementInfo info[] = {{XCS("foo"), 1, NULL, NULL}, {NULL, 0, NULL, NULL}}; - info[0].attributes = doc_info; + ElementInfo info[] + = {{XCS("foo"), 1, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; XML_Parser parser = XML_ParserCreate(NULL); ParserAndElementInfo parserPlusElemenInfo = {parser, info}; @@ -5590,7 +5861,7 @@ START_TEST(test_deep_nested_entity_delayed_interpretation) { const size_t N_LINES = 70000; const size_t SIZE_PER_LINE = 100; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -6069,7 +6340,7 @@ START_TEST(test_bypass_heuristic_when_close_to_bufsize) { } const int document_length = 65536; - char *const document = (char *)malloc(document_length); + char *const document = malloc(document_length); assert_true(document != NULL); const XML_Memory_Handling_Suite memfuncs = { @@ -6180,7 +6451,7 @@ START_TEST(test_varying_buffer_fills) { return; // this test is slow, and doesn't use _XML_Parse_SINGLE_BYTES(). } - char *const document = (char *)malloc(document_length); + char *const document = malloc(document_length); assert_true(document != NULL); memset(document, 'x', document_length); document[0] = '<'; @@ -6400,6 +6671,15 @@ make_basic_test_case(Suite *s) { tcase_add_test__ifdef_xml_dtd(tc_basic, test_empty_foreign_dtd); tcase_add_test(tc_basic, test_set_base); tcase_add_test(tc_basic, test_attributes); + tcase_add_test(tc_basic, test_duplicate_cdata_attribute); + tcase_add_test(tc_basic, test_duplicate_id_attribute_1); + tcase_add_test(tc_basic, test_duplicate_id_attribute_2); + tcase_add_test(tc_basic, test_duplicate_cdata_attribute_multiple_attlistdecl); + tcase_add_test(tc_basic, + test_duplicate_cdata_attribute_multiple_attlistdecl_2); + tcase_add_test(tc_basic, + test_duplicate_cdata_attribute_multiple_attlistdecl_3); + tcase_add_test(tc_basic, test_duplicate_id_attribute_multiple_attlistdecl); tcase_add_test__if_xml_ge(tc_basic, test_reset_in_entity); tcase_add_test(tc_basic, test_resume_invalid_parse); tcase_add_test(tc_basic, test_resume_resuspended); diff --git a/contrib/expat/tests/common.c b/contrib/expat/tests/common.c index b2537d0deee1..389d61f00b3a 100644 --- a/contrib/expat/tests/common.c +++ b/contrib/expat/tests/common.c @@ -19,6 +19,7 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -261,7 +262,7 @@ _run_attribute_check(const char *text, const XML_Char *expected, void _run_ext_character_check(const char *text, ExtTest *test_data, const XML_Char *expected, const char *file, int line) { - CharData *const storage = (CharData *)malloc(sizeof(CharData)); + CharData *const storage = malloc(sizeof(CharData)); CharData_Init(storage); test_data->storage = storage; @@ -320,7 +321,7 @@ portable_strndup(const char *s, size_t n) { n = portable_strnlen(s, n); - char *const buffer = (char *)malloc(n + 1); + char *const buffer = malloc(n + 1); if (buffer == NULL) { errno = ENOMEM; return NULL; diff --git a/contrib/expat/tests/handlers.c b/contrib/expat/tests/handlers.c index e456df21c77c..cef04ed849b0 100644 --- a/contrib/expat/tests/handlers.c +++ b/contrib/expat/tests/handlers.c @@ -19,6 +19,8 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez + Copyright (c) 2026 Berkay Eren Ürün Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -137,7 +139,7 @@ counting_start_element_handler(void *userData, const XML_Char *name, fail("ID does not have the correct name"); return; } - for (i = 0; i < info->attr_count; i++) { + for (i = 0; i < info->attr_count + info->default_attr_count; i++) { attr = info->attributes; while (attr->name != NULL) { if (! xcstrcmp(atts[0], attr->name)) @@ -155,6 +157,9 @@ counting_start_element_handler(void *userData, const XML_Char *name, /* Remember, two entries in atts per attribute (see above) */ atts += 2; } + + // Self-test that the test case's list of expected attributes is complete + assert_true(atts[0] == NULL); } void XMLCALL @@ -423,7 +428,7 @@ int XMLCALL external_entity_optioner(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtOption *options = (ExtOption *)XML_GetUserData(parser); + ExtOption *options = XML_GetUserData(parser); XML_Parser ext_parser; UNUSED_P(base); @@ -449,7 +454,7 @@ int XMLCALL external_entity_loader(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtTest *test_data = (ExtTest *)XML_GetUserData(parser); + ExtTest *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -477,7 +482,7 @@ external_entity_faulter(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { XML_Parser ext_parser; - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); UNUSED_P(base); UNUSED_P(systemId); @@ -650,7 +655,7 @@ external_entity_suspending_faulter(XML_Parser parser, const XML_Char *context, const XML_Char *systemId, const XML_Char *publicId) { XML_Parser ext_parser; - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); void *buffer; int parse_len = (int)strlen(fault->parse_text); @@ -981,7 +986,7 @@ external_entity_valuer(XML_Parser parser, const XML_Char *context, == XML_STATUS_ERROR) xml_failure(ext_parser); } else if (! xcstrcmp(systemId, XCS("004-2.ent"))) { - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); enum XML_Status status; enum XML_Error error; @@ -1083,7 +1088,7 @@ int XMLCALL external_entity_public(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - const char *text1 = (const char *)XML_GetUserData(parser); + const char *text1 = XML_GetUserData(parser); const char *text2 = ""; const char *text = NULL; XML_Parser ext_parser; @@ -1139,7 +1144,7 @@ int XMLCALL external_entity_oneshot_loader(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtHdlrData *test_data = (ExtHdlrData *)XML_GetUserData(parser); + ExtHdlrData *test_data = XML_GetUserData(parser); XML_Parser ext_parser; UNUSED_P(base); @@ -1164,7 +1169,7 @@ int XMLCALL external_entity_loader2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtTest2 *test_data = (ExtTest2 *)XML_GetUserData(parser); + ExtTest2 *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -1191,7 +1196,7 @@ int XMLCALL external_entity_faulter2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtFaults2 *test_data = (ExtFaults2 *)XML_GetUserData(parser); + ExtFaults2 *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -1309,7 +1314,7 @@ int XMLCALL external_entity_dbl_handler(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - int *pcallno = (int *)XML_GetUserData(parser); + int *pcallno = XML_GetUserData(parser); int callno = *pcallno; const char *text; XML_Parser new_parser = NULL; @@ -1366,7 +1371,7 @@ int XMLCALL external_entity_dbl_handler_2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - int *pcallno = (int *)XML_GetUserData(parser); + int *pcallno = XML_GetUserData(parser); int callno = *pcallno; const char *text; XML_Parser new_parser; @@ -1461,7 +1466,7 @@ int XMLCALL external_entity_alloc(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - const char *text = (const char *)XML_GetUserData(parser); + const char *text = XML_GetUserData(parser); XML_Parser ext_parser; int parse_res; @@ -1516,8 +1521,7 @@ accounting_external_entity_ref_handler(XML_Parser parser, UNUSED_P(base); UNUSED_P(publicId); - const struct AccountingTestCase *const testCase - = (const struct AccountingTestCase *)XML_GetUserData(parser); + const struct AccountingTestCase *const testCase = XML_GetUserData(parser); const char *externalText = NULL; if (xcstrcmp(systemId, XCS("first.ent")) == 0) { diff --git a/contrib/expat/tests/handlers.h b/contrib/expat/tests/handlers.h index fcde27ae4940..be8f8931982c 100644 --- a/contrib/expat/tests/handlers.h +++ b/contrib/expat/tests/handlers.h @@ -19,6 +19,7 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Berkay Eren Ürün Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -88,6 +89,7 @@ typedef struct attrInfo { typedef struct elementInfo { const XML_Char *name; int attr_count; + int default_attr_count; const XML_Char *id_name; AttrInfo *attributes; } ElementInfo; diff --git a/contrib/expat/tests/memcheck.c b/contrib/expat/tests/memcheck.c index de9254997214..2f43347e1717 100644 --- a/contrib/expat/tests/memcheck.c +++ b/contrib/expat/tests/memcheck.c @@ -9,6 +9,7 @@ Copyright (c) 2017 Rhodri James Copyright (c) 2017-2023 Sebastian Pipping Copyright (c) 2022 Sean McBride + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -55,8 +56,7 @@ static AllocationEntry *find_allocation(const void *ptr); /* Allocate some memory and keep track of it. */ void * tracking_malloc(size_t size) { - AllocationEntry *const entry - = (AllocationEntry *)malloc(sizeof(AllocationEntry)); + AllocationEntry *const entry = malloc(sizeof(AllocationEntry)); if (entry == NULL) { printf("Allocator failure\n"); @@ -142,7 +142,7 @@ tracking_realloc(void *ptr, size_t size) { entry = find_allocation(ptr); if (entry == NULL) { printf("Attempting to realloc unallocated memory at %p\n", ptr); - entry = (AllocationEntry *)malloc(sizeof(AllocationEntry)); + entry = malloc(sizeof(AllocationEntry)); if (entry == NULL) { printf("Reallocator failure\n"); return NULL; diff --git a/contrib/expat/tests/minicheck.c b/contrib/expat/tests/minicheck.c index baccd76b4415..d452864e00fc 100644 --- a/contrib/expat/tests/minicheck.c +++ b/contrib/expat/tests/minicheck.c @@ -16,6 +16,7 @@ Copyright (c) 2018 Marco Maggi Copyright (c) 2019 David Loffredo Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -54,7 +55,7 @@ Suite * suite_create(const char *name) { - Suite *suite = (Suite *)calloc(1, sizeof(Suite)); + Suite *suite = calloc(1, sizeof(Suite)); if (suite != NULL) { suite->name = name; } @@ -63,7 +64,7 @@ suite_create(const char *name) { TCase * tcase_create(const char *name) { - TCase *tc = (TCase *)calloc(1, sizeof(TCase)); + TCase *tc = calloc(1, sizeof(TCase)); if (tc != NULL) { tc->name = name; } @@ -94,8 +95,7 @@ tcase_add_test(TCase *tc, tcase_test_function test) { if (tc->allocated == tc->ntests) { int nalloc = tc->allocated + 100; size_t new_size = sizeof(tcase_test_function) * nalloc; - tcase_test_function *const new_tests - = (tcase_test_function *)realloc(tc->tests, new_size); + tcase_test_function *const new_tests = realloc(tc->tests, new_size); assert(new_tests != NULL); tc->tests = new_tests; tc->allocated = nalloc; @@ -130,7 +130,7 @@ suite_free(Suite *suite) { SRunner * srunner_create(Suite *suite) { - SRunner *const runner = (SRunner *)calloc(1, sizeof(SRunner)); + SRunner *const runner = calloc(1, sizeof(SRunner)); if (runner != NULL) { runner->suite = suite; } diff --git a/contrib/expat/tests/misc_tests.c b/contrib/expat/tests/misc_tests.c index 6d1a2f1488b0..015fb87295e6 100644 --- a/contrib/expat/tests/misc_tests.c +++ b/contrib/expat/tests/misc_tests.c @@ -20,6 +20,7 @@ Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow Copyright (c) 2025 Berkay Eren Ürün + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -212,7 +213,7 @@ START_TEST(test_misc_version) { if (! versions_equal(&read_version, &parsed_version)) fail("Version mismatch"); - if (xcstrcmp(version_text, XCS("expat_2.8.0")) + if (xcstrcmp(version_text, XCS("expat_2.8.1")) != 0) /* needs bump on releases */ fail("XML_*_VERSION in expat.h out of sync?\n"); } *** 421 LINES SKIPPED *** From nobody Wed May 20 04:20:22 2026 X-Original-To: dev-commits-src-branches@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 4gKyxy4hjRz6f6Pm for ; Wed, 20 May 2026 04:20:22 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gKyxy4Bd4z3Vtv for ; Wed, 20 May 2026 04:20:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779250822; 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=HtC+4mLMm3a/uy4mW0nzVh+MnhBqtMB6+wpPQDyJv2I=; b=h3c5FOe3nEcceFviu0FB0Q0PsqvuxRc2u+Wubyf/FMrbq0a5UOt8uZQ3RSg+nupgmSIyXV Cs9tWj7Fn91lbYG5a+9hWVxxLQEfI7rKs2ynCTQtNSDV9IIytmZnrnv+t1g/zxllVIJ4Bp 9pBOt4Hg3Bjd6sBgSCq0CVkh9JvhQ3ruGbVWYDChUNBmUdCL74c15P+Wd4Iec36DgUUEOp JTLog2LbE2Yzu0aI2QXG7CVvYInDh/Eg1mp3O+Hln6bQue1xlG5EJB7VLFtMY5WLKUgou7 T4sLM0nlsg6GSYk7mfRkM28IhG9OFY9XtLKr1BBIcak7iCxsNhmaqjKiZIuuSw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779250822; a=rsa-sha256; cv=none; b=Agt6fGomolTTpylQFDFe3hjgbEaqWvhda+N3zvzz9N50XWThYpTlNIedpaEowL4HW6JOoK AtFX9FkQMfzyOFmzJB0IDq3huTLj8l8zAZW3GADLSNTkmAdZyZJlRXut69Pf0kYb7EByyP bhZyQbomm4GyoTflZFtWb14CMnDtA6IlmlD5w8xLA1/QbjyuHc8U/tRKguPgH5vfdnD0hf 1pnpmRCKTwW7UslfRXaP2MoZ6AHIGskkF3rqiXUSEjbkvDjuNhuJ7KKFDiBCpBR87j2w1U V4qIyw/eyakuTkQya18AFjfDMMbCljbPBjA3z7pShyJvVYaXDr5OEnoP2cSwYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779250822; 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=HtC+4mLMm3a/uy4mW0nzVh+MnhBqtMB6+wpPQDyJv2I=; b=pdzA85JOlptxWfDTvGiTG69cm60bU7YmlnQZwqCW4Gvczm1jsqbkuSr906kQV9iycRVChR mSBiljpstT1foGwRBquSDS4xwxtbOxpcBFAG0U07fGMu7Nm+jG2Dn4grAzSV6n4n34AOSx GWCZ2PnQEuiAXgvyP4Pf4kB9jY7RYBDzFMoyl87bWilNFX9eKj7z/OMo78XR3pBtoeIVeO CttXulL8FJFXWoiUrQfudQB8S3+HyGN9lg0AUpELq6KlSIVhEHAkN4cVwvr6nYNxAvTGlK ILuKSYSDN970E7uyaZdwgb58ndgWPJpTT6ycX+9fr5dLSlZFzw8gWBB8mo7xzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gKyxy3VCKzm3S for ; Wed, 20 May 2026 04:20:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e8e6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 04:20:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 84f7ee30767b - stable/14 - contrib/expat: import expat 2.8.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: philip X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 84f7ee30767b874eb24f5e29f2947a9331d645fc Auto-Submitted: auto-generated Date: Wed, 20 May 2026 04:20:22 +0000 Message-Id: <6a0d3686.1e8e6.b1c9243@gitrepo.freebsd.org> The branch stable/14 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=84f7ee30767b874eb24f5e29f2947a9331d645fc commit 84f7ee30767b874eb24f5e29f2947a9331d645fc Author: Philip Paeps AuthorDate: 2026-05-13 03:17:00 +0000 Commit: Philip Paeps CommitDate: 2026-05-20 03:00:52 +0000 contrib/expat: import expat 2.8.1 Changes: https://github.com/libexpat/libexpat/blob/R_2_8_1/expat/Changes Security: CVE-2026-45186 (cherry picked from commit 9cc9b8b372842b9a941d235c5e9949a214e5284f) --- contrib/expat/Changes | 26 ++++ contrib/expat/README.md | 2 +- contrib/expat/configure.ac | 2 +- contrib/expat/doc/reference.html | 2 +- contrib/expat/doc/xmlwf.1 | 2 +- contrib/expat/doc/xmlwf.xml | 2 +- contrib/expat/lib/expat.h | 2 +- contrib/expat/lib/xmlparse.c | 36 ++++- contrib/expat/tests/alloc_tests.c | 4 +- contrib/expat/tests/basic_tests.c | 310 ++++++++++++++++++++++++++++++++++++-- contrib/expat/tests/common.c | 5 +- contrib/expat/tests/handlers.c | 34 +++-- contrib/expat/tests/handlers.h | 2 + contrib/expat/tests/memcheck.c | 6 +- contrib/expat/tests/minicheck.c | 10 +- contrib/expat/tests/misc_tests.c | 7 +- contrib/expat/tests/structdata.c | 7 +- contrib/expat/xmlwf/unixfilemap.c | 5 +- contrib/expat/xmlwf/xmlfile.c | 4 +- contrib/expat/xmlwf/xmlwf.c | 83 +++++----- lib/libexpat/expat_config.h | 6 +- lib/libexpat/libbsdxml.3 | 4 +- 22 files changed, 450 insertions(+), 111 deletions(-) diff --git a/contrib/expat/Changes b/contrib/expat/Changes index 87611eea5c01..313b3dc60cd0 100644 --- a/contrib/expat/Changes +++ b/contrib/expat/Changes @@ -29,6 +29,32 @@ !! THANK YOU! Sebastian Pipping -- Berlin, 2026-03-17 !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Release 2.8.1 Sun May 10 2026 + Security fixes: + #1216 CVE-2026-45186 -- Fix quadratic runtime from attribute name + collision checks that allowed denial of service attacks + through moderately sized crafted XML input (CWE-407). + Please note that a layer of compression around XML can + significantly reduce the minimum attack payload size. + + Other changes: + #1209 #1213 Drop more casts related to `void *` that C99 does not need + #1213 xmlwf: Streamline use of `mmap` + #1214 #1217 Version info bumped from 13:0:12 (libexpat*.so.1.12.0) + to 13:1:12 (libexpat*.so.1.12.1); see https://verbump.de/ + for what these numbers do + + Infrastructure: + #1210 CI: Cover compilation with Visual Studio 18 2026 on Windows + #1215 CI: Cover compilation for ARM64 on Windows + #1212 CI: Bump WASI SDK from 32 to 33 + + Special thanks to: + Berkay Eren Ürün + Matthew Fernandez + Nick Wellnhofer + Tania Somanna + Release 2.8.0 Fri April 24 2026 Security fixes: #47 #1183 CVE-2026-41080 -- The existing hash flooding protection diff --git a/contrib/expat/README.md b/contrib/expat/README.md index 619e60b2d16b..7a5ed463b6d5 100644 --- a/contrib/expat/README.md +++ b/contrib/expat/README.md @@ -11,7 +11,7 @@ > at the top of the `Changes` file. -# Expat, Release 2.8.0 +# Expat, Release 2.8.1 This is Expat, a C99 library for parsing [XML 1.0 Fourth Edition](https://www.w3.org/TR/2006/REC-xml-20060816/), started by diff --git a/contrib/expat/configure.ac b/contrib/expat/configure.ac index 87633650f321..fb492dfd79f7 100644 --- a/contrib/expat/configure.ac +++ b/contrib/expat/configure.ac @@ -90,7 +90,7 @@ dnl If the API changes incompatibly set LIBAGE back to 0 dnl LIBCURRENT=13 # sync -LIBREVISION=0 # with +LIBREVISION=1 # with LIBAGE=12 # CMakeLists.txt! AC_CONFIG_HEADERS([expat_config.h]) diff --git a/contrib/expat/doc/reference.html b/contrib/expat/doc/reference.html index 195bd183fd82..07d331ed7b56 100644 --- a/contrib/expat/doc/reference.html +++ b/contrib/expat/doc/reference.html @@ -53,7 +53,7 @@

- The Expat XML Parser Release 2.8.0 + The Expat XML Parser Release 2.8.1

diff --git a/contrib/expat/doc/xmlwf.1 b/contrib/expat/doc/xmlwf.1 index 0736f110e3c1..12760944a5da 100644 --- a/contrib/expat/doc/xmlwf.1 +++ b/contrib/expat/doc/xmlwf.1 @@ -5,7 +5,7 @@ \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac -.TH XMLWF 1 "April 24, 2026" "" "" +.TH XMLWF 1 "May 10, 2026" "" "" .SH NAME xmlwf \- Determines if an XML document is well-formed .SH SYNOPSIS diff --git a/contrib/expat/doc/xmlwf.xml b/contrib/expat/doc/xmlwf.xml index 3a3897750cb1..529dbba16722 100644 --- a/contrib/expat/doc/xmlwf.xml +++ b/contrib/expat/doc/xmlwf.xml @@ -21,7 +21,7 @@ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ Scott"> Bronson"> - April 24, 2026"> + May 10, 2026"> 1"> bronson@rinspin.com"> diff --git a/contrib/expat/lib/expat.h b/contrib/expat/lib/expat.h index 79c609f19aa4..ec3f58544cb0 100644 --- a/contrib/expat/lib/expat.h +++ b/contrib/expat/lib/expat.h @@ -1094,7 +1094,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); */ # define XML_MAJOR_VERSION 2 # define XML_MINOR_VERSION 8 -# define XML_MICRO_VERSION 0 +# define XML_MICRO_VERSION 1 # ifdef __cplusplus } diff --git a/contrib/expat/lib/xmlparse.c b/contrib/expat/lib/xmlparse.c index 620d1e4b46e2..890a9389f15d 100644 --- a/contrib/expat/lib/xmlparse.c +++ b/contrib/expat/lib/xmlparse.c @@ -1,4 +1,4 @@ -/* a5d18f6a50f536615ac1c70304f87d94f99cc85a86b502188952440610ccf0f8 (2.8.0+) +/* 75ef4224f81c052e9e5aeea2ac7de75357d2169ff9908e39edc08b9dc3052513 (2.8.1+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -387,6 +387,7 @@ typedef struct { int nDefaultAtts; int allocDefaultAtts; DEFAULT_ATTRIBUTE *defaultAtts; + HASH_TABLE defaultAttsNames; } ELEMENT_TYPE; typedef struct { @@ -3769,6 +3770,8 @@ storeAtts(XML_Parser parser, const ENCODING *enc, const char *attStr, sizeof(ELEMENT_TYPE)); if (! elementType) return XML_ERROR_NO_MEMORY; + if (! elementType->defaultAttsNames.parser) + hashTableInit(&(elementType->defaultAttsNames), parser); if (parser->m_ns && ! setElementTypePrefix(parser, elementType)) return XML_ERROR_NO_MEMORY; } @@ -7102,10 +7105,10 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, if (value || isId) { /* The handling of default attributes gets messed up if we have a default which duplicates a non-default. */ - int i; - for (i = 0; i < type->nDefaultAtts; i++) - if (attId == type->defaultAtts[i].id) - return 1; + NAMED *const nameFound + = (NAMED *)lookup(parser, &(type->defaultAttsNames), attId->name, 0); + if (nameFound) + return 1; if (isId && ! type->idAtt && ! attId->xmlns) type->idAtt = attId; } @@ -7152,6 +7155,12 @@ defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata, att->isCdata = isCdata; if (! isCdata) attId->maybeTokenized = XML_TRUE; + + NAMED *const nameAddedOrFound = (NAMED *)lookup( + parser, &(type->defaultAttsNames), attId->name, sizeof(NAMED)); + if (! nameAddedOrFound) + return 0; + type->nDefaultAtts += 1; return 1; } @@ -7477,6 +7486,7 @@ dtdReset(DTD *p, XML_Parser parser) { ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); if (! e) break; + hashTableDestroy(&(e->defaultAttsNames)); if (e->allocDefaultAtts != 0) FREE(parser, e->defaultAtts); } @@ -7518,6 +7528,7 @@ dtdDestroy(DTD *p, XML_Bool isDocEntity, XML_Parser parser) { ELEMENT_TYPE *e = (ELEMENT_TYPE *)hashTableIterNext(&iter); if (! e) break; + hashTableDestroy(&(e->defaultAttsNames)); if (e->allocDefaultAtts != 0) FREE(parser, e->defaultAtts); } @@ -7611,6 +7622,10 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, sizeof(ELEMENT_TYPE)); if (! newE) return 0; + + if (! newE->defaultAttsNames.parser) + hashTableInit(&(newE->defaultAttsNames), parser); + if (oldE->nDefaultAtts) { /* Detect and prevent integer overflow. * The preprocessor guard addresses the "always false" warning @@ -7635,8 +7650,9 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes), oldE->prefix->name, 0); for (i = 0; i < newE->nDefaultAtts; i++) { + const XML_Char *const attributeName = oldE->defaultAtts[i].id->name; newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup( - oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0); + oldParser, &(newDtd->attributeIds), attributeName, 0); newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata; if (oldE->defaultAtts[i].value) { newE->defaultAtts[i].value @@ -7645,6 +7661,12 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, return 0; } else newE->defaultAtts[i].value = NULL; + + NAMED *const nameAddedOrFound = (NAMED *)lookup( + parser, &(newE->defaultAttsNames), attributeName, sizeof(NAMED)); + if (! nameAddedOrFound) { + return 0; + } } } @@ -8391,6 +8413,8 @@ getElementType(XML_Parser parser, const ENCODING *enc, const char *ptr, sizeof(ELEMENT_TYPE)); if (! ret) return NULL; + if (! ret->defaultAttsNames.parser) + hashTableInit(&(ret->defaultAttsNames), getRootParserOf(parser, NULL)); if (ret->name != name) poolDiscard(&dtd->pool); else { diff --git a/contrib/expat/tests/alloc_tests.c b/contrib/expat/tests/alloc_tests.c index 5ae6c6a72025..433bf611808a 100644 --- a/contrib/expat/tests/alloc_tests.c +++ b/contrib/expat/tests/alloc_tests.c @@ -20,6 +20,7 @@ Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow Copyright (c) 2025 Berkay Eren Ürün + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -2136,8 +2137,7 @@ START_TEST(test_alloc_tracker_pointer_alignment) { XML_Parser parser = XML_ParserCreate(NULL); #if XML_GE == 1 assert_true(sizeof(long long) >= sizeof(size_t)); // self-test - long long *const ptr - = (long long *)expat_malloc(parser, 4 * sizeof(long long), -1); + long long *const ptr = expat_malloc(parser, 4 * sizeof(long long), -1); ptr[0] = 0LL; ptr[1] = 1LL; ptr[2] = 2LL; diff --git a/contrib/expat/tests/basic_tests.c b/contrib/expat/tests/basic_tests.c index 537c7e0e5a5c..b5088bcda988 100644 --- a/contrib/expat/tests/basic_tests.c +++ b/contrib/expat/tests/basic_tests.c @@ -19,8 +19,9 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow - Copyright (c) 2024-2025 Berkay Eren Ürün + Copyright (c) 2024-2026 Berkay Eren Ürün Copyright (c) 2026 Francesco Bertolaccini + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -2491,11 +2492,9 @@ START_TEST(test_attributes) { {XCS("id"), XCS("one")}, {NULL, NULL}}; AttrInfo tag_info[] = {{XCS("c"), XCS("3")}, {NULL, NULL}}; - ElementInfo info[] = {{XCS("doc"), 3, XCS("id"), NULL}, - {XCS("tag"), 1, NULL, NULL}, - {NULL, 0, NULL, NULL}}; - info[0].attributes = doc_info; - info[1].attributes = tag_info; + ElementInfo info[] = {{XCS("doc"), 3, 0, XCS("id"), doc_info}, + {XCS("tag"), 1, 0, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; XML_Parser parser = XML_ParserCreate(NULL); assert_true(parser != NULL); @@ -2514,6 +2513,279 @@ START_TEST(test_attributes) { } END_TEST +START_TEST(test_duplicate_cdata_attribute) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_1) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("identifier"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_2) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one definition is provided for the same attribute of a given + element type, the first declaration is binding and later declarations are + ignored. + */ + + const char *text + = "\n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{NULL, NULL}}; + + ElementInfo info[] + = {{XCS("doc"), 0, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected")}, {NULL, NULL}}; + ElementInfo info[] + = {{XCS("doc"), 0, 1, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_2) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")}, {NULL, NULL}}; + AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 0, 1, NULL, doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_cdata_attribute_multiple_attlistdecl_3) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text + = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] = {{XCS("attribute"), XCS("expected_doc")}, + {XCS("second_attribute"), XCS("second_expected_doc")}, + {NULL, NULL}}; + AttrInfo tag_info[] = {{XCS("attribute"), XCS("expected_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 0, 2, NULL, doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + +START_TEST(test_duplicate_id_attribute_multiple_attlistdecl) { + /* + https://www.w3.org/TR/xml/#attdecls + + Test the following statement from the linked specification: + When more than one AttlistDecl is provided for a given element type, + the contents of all those provided are merged. + */ + const char *text = "\n" + " \n" + " \n" + "]>\n" + "\n"; + AttrInfo doc_info[] + = {{XCS("identifier"), XCS("doc_identity")}, {NULL, NULL}}; + AttrInfo tag_info[] + = {{XCS("identifier"), XCS("identifier_tag")}, {NULL, NULL}}; + ElementInfo info[] = {{XCS("doc"), 1, 0, XCS("identifier"), doc_info}, + {XCS("tag"), 0, 1, NULL, tag_info}, + {NULL, 0, 0, NULL, NULL}}; + + XML_Parser parser = XML_ParserCreate(NULL); + assert_true(parser != NULL); + + ParserAndElementInfo parserAndElementInfos = { + parser, + info, + }; + + XML_SetStartElementHandler(parser, counting_start_element_handler); + XML_SetUserData(parser, &parserAndElementInfos); + + if (_XML_Parse_SINGLE_BYTES(parser, text, (int)strlen(text), XML_TRUE) + != XML_STATUS_OK) + xml_failure(parser); + + XML_ParserFree(parser); +} +END_TEST + /* Test reset works correctly in the middle of processing an internal * entity. Exercises some obscure code in XML_ParserReset(). */ @@ -3435,8 +3707,7 @@ external_bom_checker(XML_Parser parser, const XML_Char *context, fail("Could not create external entity parser"); if (! xcstrcmp(systemId, XCS("004-2.ent"))) { - struct bom_testdata *const testdata - = (struct bom_testdata *)XML_GetUserData(parser); + struct bom_testdata *const testdata = XML_GetUserData(parser); const char *const external = testdata->external; const int split = testdata->split; testdata->nested_callback_happened = XML_TRUE; @@ -5501,7 +5772,7 @@ START_TEST(test_deep_nested_entity) { const size_t N_LINES = 60000; const size_t SIZE_PER_LINE = 50; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -5547,7 +5818,7 @@ START_TEST(test_deep_nested_attribute_entity) { const size_t N_LINES = 60000; const size_t SIZE_PER_LINE = 100; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -5568,8 +5839,8 @@ START_TEST(test_deep_nested_attribute_entity) { (long unsigned)(N_LINES - 1)); AttrInfo doc_info[] = {{XCS("name"), XCS("deepText")}, {NULL, NULL}}; - ElementInfo info[] = {{XCS("foo"), 1, NULL, NULL}, {NULL, 0, NULL, NULL}}; - info[0].attributes = doc_info; + ElementInfo info[] + = {{XCS("foo"), 1, 0, NULL, doc_info}, {NULL, 0, 0, NULL, NULL}}; XML_Parser parser = XML_ParserCreate(NULL); ParserAndElementInfo parserPlusElemenInfo = {parser, info}; @@ -5590,7 +5861,7 @@ START_TEST(test_deep_nested_entity_delayed_interpretation) { const size_t N_LINES = 70000; const size_t SIZE_PER_LINE = 100; - char *const text = (char *)malloc((N_LINES + 4) * SIZE_PER_LINE); + char *const text = malloc((N_LINES + 4) * SIZE_PER_LINE); if (text == NULL) { fail("malloc failed"); } @@ -6069,7 +6340,7 @@ START_TEST(test_bypass_heuristic_when_close_to_bufsize) { } const int document_length = 65536; - char *const document = (char *)malloc(document_length); + char *const document = malloc(document_length); assert_true(document != NULL); const XML_Memory_Handling_Suite memfuncs = { @@ -6180,7 +6451,7 @@ START_TEST(test_varying_buffer_fills) { return; // this test is slow, and doesn't use _XML_Parse_SINGLE_BYTES(). } - char *const document = (char *)malloc(document_length); + char *const document = malloc(document_length); assert_true(document != NULL); memset(document, 'x', document_length); document[0] = '<'; @@ -6400,6 +6671,15 @@ make_basic_test_case(Suite *s) { tcase_add_test__ifdef_xml_dtd(tc_basic, test_empty_foreign_dtd); tcase_add_test(tc_basic, test_set_base); tcase_add_test(tc_basic, test_attributes); + tcase_add_test(tc_basic, test_duplicate_cdata_attribute); + tcase_add_test(tc_basic, test_duplicate_id_attribute_1); + tcase_add_test(tc_basic, test_duplicate_id_attribute_2); + tcase_add_test(tc_basic, test_duplicate_cdata_attribute_multiple_attlistdecl); + tcase_add_test(tc_basic, + test_duplicate_cdata_attribute_multiple_attlistdecl_2); + tcase_add_test(tc_basic, + test_duplicate_cdata_attribute_multiple_attlistdecl_3); + tcase_add_test(tc_basic, test_duplicate_id_attribute_multiple_attlistdecl); tcase_add_test__if_xml_ge(tc_basic, test_reset_in_entity); tcase_add_test(tc_basic, test_resume_invalid_parse); tcase_add_test(tc_basic, test_resume_resuspended); diff --git a/contrib/expat/tests/common.c b/contrib/expat/tests/common.c index b2537d0deee1..389d61f00b3a 100644 --- a/contrib/expat/tests/common.c +++ b/contrib/expat/tests/common.c @@ -19,6 +19,7 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -261,7 +262,7 @@ _run_attribute_check(const char *text, const XML_Char *expected, void _run_ext_character_check(const char *text, ExtTest *test_data, const XML_Char *expected, const char *file, int line) { - CharData *const storage = (CharData *)malloc(sizeof(CharData)); + CharData *const storage = malloc(sizeof(CharData)); CharData_Init(storage); test_data->storage = storage; @@ -320,7 +321,7 @@ portable_strndup(const char *s, size_t n) { n = portable_strnlen(s, n); - char *const buffer = (char *)malloc(n + 1); + char *const buffer = malloc(n + 1); if (buffer == NULL) { errno = ENOMEM; return NULL; diff --git a/contrib/expat/tests/handlers.c b/contrib/expat/tests/handlers.c index e456df21c77c..cef04ed849b0 100644 --- a/contrib/expat/tests/handlers.c +++ b/contrib/expat/tests/handlers.c @@ -19,6 +19,8 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez + Copyright (c) 2026 Berkay Eren Ürün Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -137,7 +139,7 @@ counting_start_element_handler(void *userData, const XML_Char *name, fail("ID does not have the correct name"); return; } - for (i = 0; i < info->attr_count; i++) { + for (i = 0; i < info->attr_count + info->default_attr_count; i++) { attr = info->attributes; while (attr->name != NULL) { if (! xcstrcmp(atts[0], attr->name)) @@ -155,6 +157,9 @@ counting_start_element_handler(void *userData, const XML_Char *name, /* Remember, two entries in atts per attribute (see above) */ atts += 2; } + + // Self-test that the test case's list of expected attributes is complete + assert_true(atts[0] == NULL); } void XMLCALL @@ -423,7 +428,7 @@ int XMLCALL external_entity_optioner(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtOption *options = (ExtOption *)XML_GetUserData(parser); + ExtOption *options = XML_GetUserData(parser); XML_Parser ext_parser; UNUSED_P(base); @@ -449,7 +454,7 @@ int XMLCALL external_entity_loader(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtTest *test_data = (ExtTest *)XML_GetUserData(parser); + ExtTest *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -477,7 +482,7 @@ external_entity_faulter(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { XML_Parser ext_parser; - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); UNUSED_P(base); UNUSED_P(systemId); @@ -650,7 +655,7 @@ external_entity_suspending_faulter(XML_Parser parser, const XML_Char *context, const XML_Char *systemId, const XML_Char *publicId) { XML_Parser ext_parser; - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); void *buffer; int parse_len = (int)strlen(fault->parse_text); @@ -981,7 +986,7 @@ external_entity_valuer(XML_Parser parser, const XML_Char *context, == XML_STATUS_ERROR) xml_failure(ext_parser); } else if (! xcstrcmp(systemId, XCS("004-2.ent"))) { - ExtFaults *fault = (ExtFaults *)XML_GetUserData(parser); + ExtFaults *fault = XML_GetUserData(parser); enum XML_Status status; enum XML_Error error; @@ -1083,7 +1088,7 @@ int XMLCALL external_entity_public(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - const char *text1 = (const char *)XML_GetUserData(parser); + const char *text1 = XML_GetUserData(parser); const char *text2 = ""; const char *text = NULL; XML_Parser ext_parser; @@ -1139,7 +1144,7 @@ int XMLCALL external_entity_oneshot_loader(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtHdlrData *test_data = (ExtHdlrData *)XML_GetUserData(parser); + ExtHdlrData *test_data = XML_GetUserData(parser); XML_Parser ext_parser; UNUSED_P(base); @@ -1164,7 +1169,7 @@ int XMLCALL external_entity_loader2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtTest2 *test_data = (ExtTest2 *)XML_GetUserData(parser); + ExtTest2 *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -1191,7 +1196,7 @@ int XMLCALL external_entity_faulter2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - ExtFaults2 *test_data = (ExtFaults2 *)XML_GetUserData(parser); + ExtFaults2 *test_data = XML_GetUserData(parser); XML_Parser extparser; UNUSED_P(base); @@ -1309,7 +1314,7 @@ int XMLCALL external_entity_dbl_handler(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - int *pcallno = (int *)XML_GetUserData(parser); + int *pcallno = XML_GetUserData(parser); int callno = *pcallno; const char *text; XML_Parser new_parser = NULL; @@ -1366,7 +1371,7 @@ int XMLCALL external_entity_dbl_handler_2(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - int *pcallno = (int *)XML_GetUserData(parser); + int *pcallno = XML_GetUserData(parser); int callno = *pcallno; const char *text; XML_Parser new_parser; @@ -1461,7 +1466,7 @@ int XMLCALL external_entity_alloc(XML_Parser parser, const XML_Char *context, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId) { - const char *text = (const char *)XML_GetUserData(parser); + const char *text = XML_GetUserData(parser); XML_Parser ext_parser; int parse_res; @@ -1516,8 +1521,7 @@ accounting_external_entity_ref_handler(XML_Parser parser, UNUSED_P(base); UNUSED_P(publicId); - const struct AccountingTestCase *const testCase - = (const struct AccountingTestCase *)XML_GetUserData(parser); + const struct AccountingTestCase *const testCase = XML_GetUserData(parser); const char *externalText = NULL; if (xcstrcmp(systemId, XCS("first.ent")) == 0) { diff --git a/contrib/expat/tests/handlers.h b/contrib/expat/tests/handlers.h index fcde27ae4940..be8f8931982c 100644 --- a/contrib/expat/tests/handlers.h +++ b/contrib/expat/tests/handlers.h @@ -19,6 +19,7 @@ Copyright (c) 2020 Tim Gates Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Berkay Eren Ürün Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -88,6 +89,7 @@ typedef struct attrInfo { typedef struct elementInfo { const XML_Char *name; int attr_count; + int default_attr_count; const XML_Char *id_name; AttrInfo *attributes; } ElementInfo; diff --git a/contrib/expat/tests/memcheck.c b/contrib/expat/tests/memcheck.c index de9254997214..2f43347e1717 100644 --- a/contrib/expat/tests/memcheck.c +++ b/contrib/expat/tests/memcheck.c @@ -9,6 +9,7 @@ Copyright (c) 2017 Rhodri James Copyright (c) 2017-2023 Sebastian Pipping Copyright (c) 2022 Sean McBride + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -55,8 +56,7 @@ static AllocationEntry *find_allocation(const void *ptr); /* Allocate some memory and keep track of it. */ void * tracking_malloc(size_t size) { - AllocationEntry *const entry - = (AllocationEntry *)malloc(sizeof(AllocationEntry)); + AllocationEntry *const entry = malloc(sizeof(AllocationEntry)); if (entry == NULL) { printf("Allocator failure\n"); @@ -142,7 +142,7 @@ tracking_realloc(void *ptr, size_t size) { entry = find_allocation(ptr); if (entry == NULL) { printf("Attempting to realloc unallocated memory at %p\n", ptr); - entry = (AllocationEntry *)malloc(sizeof(AllocationEntry)); + entry = malloc(sizeof(AllocationEntry)); if (entry == NULL) { printf("Reallocator failure\n"); return NULL; diff --git a/contrib/expat/tests/minicheck.c b/contrib/expat/tests/minicheck.c index baccd76b4415..d452864e00fc 100644 --- a/contrib/expat/tests/minicheck.c +++ b/contrib/expat/tests/minicheck.c @@ -16,6 +16,7 @@ Copyright (c) 2018 Marco Maggi Copyright (c) 2019 David Loffredo Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -54,7 +55,7 @@ Suite * suite_create(const char *name) { - Suite *suite = (Suite *)calloc(1, sizeof(Suite)); + Suite *suite = calloc(1, sizeof(Suite)); if (suite != NULL) { suite->name = name; } @@ -63,7 +64,7 @@ suite_create(const char *name) { TCase * tcase_create(const char *name) { - TCase *tc = (TCase *)calloc(1, sizeof(TCase)); + TCase *tc = calloc(1, sizeof(TCase)); if (tc != NULL) { tc->name = name; } @@ -94,8 +95,7 @@ tcase_add_test(TCase *tc, tcase_test_function test) { if (tc->allocated == tc->ntests) { int nalloc = tc->allocated + 100; size_t new_size = sizeof(tcase_test_function) * nalloc; - tcase_test_function *const new_tests - = (tcase_test_function *)realloc(tc->tests, new_size); + tcase_test_function *const new_tests = realloc(tc->tests, new_size); assert(new_tests != NULL); tc->tests = new_tests; tc->allocated = nalloc; @@ -130,7 +130,7 @@ suite_free(Suite *suite) { SRunner * srunner_create(Suite *suite) { - SRunner *const runner = (SRunner *)calloc(1, sizeof(SRunner)); + SRunner *const runner = calloc(1, sizeof(SRunner)); if (runner != NULL) { runner->suite = suite; } diff --git a/contrib/expat/tests/misc_tests.c b/contrib/expat/tests/misc_tests.c index 6d1a2f1488b0..015fb87295e6 100644 --- a/contrib/expat/tests/misc_tests.c +++ b/contrib/expat/tests/misc_tests.c @@ -20,6 +20,7 @@ Copyright (c) 2021 Donghee Na Copyright (c) 2023 Sony Corporation / Snild Dolkow Copyright (c) 2025 Berkay Eren Ürün + Copyright (c) 2026 Matthew Fernandez Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -212,7 +213,7 @@ START_TEST(test_misc_version) { if (! versions_equal(&read_version, &parsed_version)) fail("Version mismatch"); - if (xcstrcmp(version_text, XCS("expat_2.8.0")) + if (xcstrcmp(version_text, XCS("expat_2.8.1")) != 0) /* needs bump on releases */ fail("XML_*_VERSION in expat.h out of sync?\n"); } *** 421 LINES SKIPPED *** From nobody Wed May 20 14:30:29 2026 X-Original-To: dev-commits-src-branches@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 4gLDTx6J8pz6dspD for ; Wed, 20 May 2026 14:30:29 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLDTx50v2z3bGX for ; Wed, 20 May 2026 14:30:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IqlYQpmld9mh56T552Hqurzesil1IGu6q05F4BJtQm4=; b=UMkPnrWnerXSK9xhbUMO3E7o04VMaoWaNYbxmWy4vQLkGLAodm5qi+8PVW//WluigZVnWm qTZLqw/RcfWpPrewJYOGb2/TVAxnX5I0bmb5+DouhbAOT6Gnw8kPffiE/l05eF82yCR6og CT11C9AfEjR1J6Aoo2XL//0y1F1D9wuAQsaccLkEp/6hBuIi/5TiDI8lLPxwdbsqb3Rmmz /Nzf7Xlm6yG7TBldxZjDKlvLpb70g6ZTClTNFmv9FnKxO+RG7ovCPMSoS9EoKCvcWmLSic aDU3yy3ww05idT6Q0PeNfxYLjpQjWLWkqDlHQO2DB7m1/8HNpWyjrVBr8DtEEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779287429; a=rsa-sha256; cv=none; b=gQ0zdgp1LUFr+hVWLgG+gPVUyUA0zQGzp61WrUU+JN8qJ2vRiaa2y7gnm3E+/32JqYen+c lEi62SFV9KAhAMdF5ev6Pojxo0rc+1G9SjRLblY+gC1lAK624+ojTF6RirHewtZ+Rfjrni vsaXTz/l+OIEXB/f5ra2YkISUhCnjzNh5ylYeM1dCbdzl4th6Ui0SkcH09F84BTD8OtIK2 NlMQpDN3/WZ49G22wtihyHvhWVNlNNVnc8kXppCfC2lcDMfJG1ZFKqbsaVlteiznN4WAZw BClL+B9wNt5rGm6aTX9UPSMulqffCEhmDYNHO1WUi7l3a+BmbK2+DwKDgZ4RaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IqlYQpmld9mh56T552Hqurzesil1IGu6q05F4BJtQm4=; b=iJq1Jnyak5pkzu7EZQDIONzqO4USioDVWAUr5Ht6CeSop7D8oWULT9pHvNMAK7AIfhIte4 Ahgt9Jzuitj31piNYG65lOp+JYF0nksyzS1yhf3O0L/UQI0uEkB3tr+JKhgjybtW27AtTL tuvmmHTlIIiyATiMgHlZNYj2M/1U+Mi6CUXPt1KRI4XvBbBrSwOd8foTs3Hured/C4Bp69 jgjDU0XCVeFe44sNsy9Lm26UZWs9bb0fP8TD+WeqUnE0TGogCuRkdHEY6Vcua1sDkN3HFX PJWgOEhPm1wtWF+Gp2UoVUDSESAhAuqta3RbL+PFJlJVLjNI2asAmB34iGGepQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLDTx4MYFz150L for ; Wed, 20 May 2026 14:30:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3edc5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 14:30:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 0d001f2e100e - stable/15 - bsd-family-tree: add FreeBSD 14.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0d001f2e100e21b2b36717fcf3570cae14831b48 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 14:30:29 +0000 Message-Id: <6a0dc585.3edc5.3c36a3c0@gitrepo.freebsd.org> The branch stable/15 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=0d001f2e100e21b2b36717fcf3570cae14831b48 commit 0d001f2e100e21b2b36717fcf3570cae14831b48 Author: Maxim Konovalov AuthorDate: 2026-03-10 01:42:40 +0000 Commit: Sergey A. Osokin CommitDate: 2026-05-20 14:29:35 +0000 bsd-family-tree: add FreeBSD 14.4 (cherry picked from commit d1180d47c9653335c75f6ec9e18eff19109f0119) --- share/misc/bsd-family-tree | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 36910c9ad94a..ee528f6ec0dd 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -480,11 +480,13 @@ FreeBSD 5.2 | | | | | | | | | DragonFly 6.4.2 | FreeBSD | | | | | 14.3 | | | | - | macOS | | | - | 26 | | | - | | | OpenBSD 7.8 | - *--FreeBSD | | | | - | 15.0 | | | | + | | macOS | | | + | `------. 26 | | | + | | | | OpenBSD 7.8 | + *--FreeBSD | | | | | + | 15.0 | | | | | + | FreeBSD | | | | + | 14.4 | | | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -933,6 +935,7 @@ FreeBSD 14.3 2025-06-10 [FBD] macOS 26 2025-09-15 [APL] OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] +FreeBSD 14.4 2026-03-10 [FBD] Bibliography ------------------------ From nobody Wed May 20 14:30:30 2026 X-Original-To: dev-commits-src-branches@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 4gLDTz0k3dz6dspG for ; Wed, 20 May 2026 14:30:31 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLDTy567zz3bVD for ; Wed, 20 May 2026 14:30:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287430; 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=pUHeW2L66VKpkQq/6bLtHAVPFVumTKGMiADUrYkFwkY=; b=ZFCbG01t4iSNTJoiHx7vEarQONnSVvYPqEm2DZjUhRHIWPjJVYhKersv5cgbJUN/mnLG84 GBAAn2FCPSX9H68ijtCl/ooHry+x0M+RcS4eUhQPbNnAUvfLqyFXHUgHHdme3RJzOC8lJA NME5YLS4SgtP5ucIecSoT7MZ7XBANPuZFGQVhINA5U1NrVdZoT3zL3AHR3gGI8G7O/7xtA +xDPvBD8v9EZF8FOQ+ESuVE2yfqBcEc6W7Wz5ScUYPNOdAT4OLO++KbviZacaQ3YiOAohH HQPRKDaokjKmL3HHFFhsxoFT3QDi1VWDS5LqB43EbhCzhGlk3u2jmRemytXS9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779287430; a=rsa-sha256; cv=none; b=ciqhZczE3si437Kys/h5NlUHBGCfTcK7D4bOLe3+oLS9m44Ov7guZA+yUbCLSI1C18s6qs lYspLrELc/WXFPFFOmb72fGDH50JbbSPmCyj+f1AkXbbZOzOEbecj1sDLX2aSAUr3w4/OC /2JgSvJ0l6yTOp3D94OvrX3WWrmzThAkzO2FvbeKjHQGg4wjBnhNx9nXrdEC0V/hcrhtRe 5Rsibwup7c+8YUPmJYJk6/VUrsgdstsF3z746GgxL/DBtE2SbqSIC4n7yyIAO1jWH/F3tw ZCz0W5fBI0dc4JPC5mKNI0zd5RTnwWqaeHT0R6vkZI2gyz3qBeJCE4nXq6oHMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287430; 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=pUHeW2L66VKpkQq/6bLtHAVPFVumTKGMiADUrYkFwkY=; b=LzX4r+FTy0yZmMxtu6GVdO8Zpb3pcQ2JSllQTfc+ld3jMzOYFvomdQaoot7isqXhyijgs0 pwPn30AO2PqcOeiIoTVo4Jg0v9rWofjbcdMOG26OB0ZDQ/hZIx/fWs26pjvgT4C4xLO/2T rJm6qO/YXheL5BT0FpwXBm67aM4gWoSndjtOhOgAx7Jcs53azkfPQwVDTICMdfs5a5kRh0 5He5dGNUpDm8CmrowOrS9PZabxukMLk6R+0laUKSdRiiwJLxExm3NE7UaKwwD/zVNMBYpX M8vMKLzEqqEj/HVhxet3TSQ+vDymaffMV04nETDHWEApo7TZI8xNZ3qu01OG3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLDTy4fXCz14x5 for ; Wed, 20 May 2026 14:30:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ee3f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 14:30:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Sergey A. Osokin Subject: git: 8df71e03bdc1 - stable/15 - bsd-family-tree: add OpenBSD 7.9 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8df71e03bdc146a3ef19fc15927967c951102c03 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 14:30:30 +0000 Message-Id: <6a0dc586.3ee3f.4b6f0b5f@gitrepo.freebsd.org> The branch stable/15 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=8df71e03bdc146a3ef19fc15927967c951102c03 commit 8df71e03bdc146a3ef19fc15927967c951102c03 Author: Sergey A. Osokin AuthorDate: 2026-05-19 14:33:30 +0000 Commit: Sergey A. Osokin CommitDate: 2026-05-20 14:30:03 +0000 bsd-family-tree: add OpenBSD 7.9 (cherry picked from commit 9958d0f1dc64fafe73ff6f93c65b3a9f8b39f960) --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index ee528f6ec0dd..1847105e5f34 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -487,6 +487,7 @@ FreeBSD 5.2 | | | | | 15.0 | | | | | | FreeBSD | | | | | 14.4 | | | | + | | | | OpenBSD 7.9 | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -936,6 +937,7 @@ macOS 26 2025-09-15 [APL] OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] +OpenBSD 7.9 2026-05-19 [OBD] Bibliography ------------------------ From nobody Wed May 20 14:32:06 2026 X-Original-To: dev-commits-src-branches@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 4gLDWp6q07z6dt4C for ; Wed, 20 May 2026 14:32:06 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLDWp68TFz3cNf for ; Wed, 20 May 2026 14:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VyxuLYIClHRnWvpRJdTr0I9eKBfye/E6MAp4dyfZjI=; b=cJzdy4A9UJj9Y8esMUqnsErqW4t6dqAzQmrXb0upRFmfealf/nPKW5zdQBOxgVdYinpkF2 NUVxlPANKYfKPSA/XNjSBcGC8y0O9cxuiA51qU7z5UUUrU2G2DqroM+8q8Uq4Jr4Ng6t5z lyJFUXHFVR1+nIEDSqCJzd5D8TiUl/+KIzEmJJ4coBK7VzeuAoLUX5sH4dhlGNMmeYG5y+ WqAPztfsrD9IneFfRiktBeotUtI/SWMMVeucmOIMQBSjvTE5C0XKyUVtoB3n27SEIukGJS T9Lz8qb+iDGxTUV+BtyWYK0mQ/OFLVpAXM8UpFgsAcVE8r9vqKENw04mJTczHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779287526; a=rsa-sha256; cv=none; b=pt4Ae7e2SgAUcttc5mTbL1x3NcL3nejnWpn4uKb/0s98b5nHLLue8lw4rI643f5BZ+63d2 dzyij8p69BWwsmPEoco0F3A8TiAb4M/kp4VOxzHBxTu3LSl9gHMj1MSb2ZDDgE9fAGBNQD FbVEw4VOKJglHG4oF8LGJRDGyQbgmnTxQDUmL37cKoQuD/nFTzAE+iqLKXXYZUelOSW9O+ 7j+luXbRhL4ocb3PXxWpg4rigA+0iJDpt1tca2CBa2UT1lhzzdcXDlpsaePbw+Dt5TAe6n cQPjrH0YBg21Hwv/Tatdx0SzkRTxzDTAq6czrqnUugx9kyLHri4sOfew48rvDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VyxuLYIClHRnWvpRJdTr0I9eKBfye/E6MAp4dyfZjI=; b=TtRRDfnO9P6Vm9bzbYhzgAeqgyDspTpAe+2Z13VrjnUV+GHW881o5A+mHbzEAMa6iaA+L5 p/qutiA/8RnDHsujf9nVCKsuDBZ05POlUFdM5A0/iPBEa5iRYI60Ibk19eWPs3Gxdzcanr g9RlT3BahuG/G8shDrgmTvBbkZHDRKyfEBtd9iXizxoMLFZlTtq6pA+i31oW7gXQ9P9tim n1sO8eMMSZhsLCJm3SRtQryJVMgaAZQS72fGhBUazPstGAlcbYq/IgBjtyt33MkR+eCQGU 07FwqwCwR0zAn5NXOqsUZaN4NEjtAfBrhTJ+beOvq5WCKxZKLLLjJ7tBRIh6sw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLDWp5lh4z159x for ; Wed, 20 May 2026 14:32:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fd99 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 14:32:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 554527188c06 - stable/14 - bsd-family-tree: add FreeBSD 14.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 554527188c062e46ddccce5e62adf620a6093d33 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 14:32:06 +0000 Message-Id: <6a0dc5e6.3fd99.5fc37f34@gitrepo.freebsd.org> The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=554527188c062e46ddccce5e62adf620a6093d33 commit 554527188c062e46ddccce5e62adf620a6093d33 Author: Maxim Konovalov AuthorDate: 2026-03-10 01:42:40 +0000 Commit: Sergey A. Osokin CommitDate: 2026-05-20 14:31:45 +0000 bsd-family-tree: add FreeBSD 14.4 (cherry picked from commit d1180d47c9653335c75f6ec9e18eff19109f0119) --- share/misc/bsd-family-tree | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index ec70048523ba..e958d18e452c 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -480,11 +480,13 @@ FreeBSD 5.2 | | | | | | | | | DragonFly 6.4.2 | FreeBSD | | | | | 14.3 | | | | - | macOS | | | - | 26 | | | - | | | OpenBSD 7.8 | - *--FreeBSD | | | | - | 15.0 | | | | + | | macOS | | | + | `------. 26 | | | + | | | | OpenBSD 7.8 | + *--FreeBSD | | | | | + | 15.0 | | | | | + | FreeBSD | | | | + | 14.4 | | | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -934,6 +936,7 @@ FreeBSD 14.3 2025-06-10 [FBD] macOS 26 2025-09-15 [APL] OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] +FreeBSD 14.4 2026-03-10 [FBD] Bibliography ------------------------ From nobody Wed May 20 14:32:07 2026 X-Original-To: dev-commits-src-branches@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 4gLDWr1MSNz6dsgf for ; Wed, 20 May 2026 14:32:08 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLDWr00k3z3cCb for ; Wed, 20 May 2026 14:32:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287528; 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=gsP8tN2WY4NNYZFqQdTVUjAvoBuopQ5UsRj43KnZgt0=; b=B+DIq34e0QFgPzrscrJeHe5n1QbAnVqOmIC7b0e0zlN9Fb1riEOu+blVeC/bvrinSPA6fz CQ0x/RggDngMwd0Tabg6JEsnVuSCgasBrmIlZZmrSThg1H8Bnnatv1iYLaZum+syPoKpHG RKR354SmnYGMk3adPSwAWfPK09tK/p9pmTX/RQU7aU6P8tgpg5u+PxzfESvXxfYv6NDSZ4 63lOdhF2E4utaKj0m6SE4x7isjcLbghpQvl3wb9lLoK46Xg5FrIzW8YnqfqwlONsGFaHdJ vd2T0vc+TH+RiYlC6IVIU6YT5p7rjcesSAKJdz1YeQUWyCC78dvQLR0gA6UyDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779287528; a=rsa-sha256; cv=none; b=Pt12q7ri5NZlvYDirUu8/LJltn+Cl2nFK+O11g4baxtK4HsvGRRXT5jWulhxFgZoJuY1zt UyjGo/V3q6bwRljIwvY3W/LgzB8qvbFDZdaOp5ycKA89tBPn9HRpU7f/+PQzVUJjNaAxvs YFwB52lAo1AGSc2GQCztZGTx4+Sl9RdCDn2LchI3YVfisd2BTBW9XkmwjeGf5pn3Dg8pWN 0rgED2rS5POzZ9OwR2tGDFby4md9Oqm9wGlZBvKSJPsfhr7ZA2weAOQqgNl3RK3nC9kyWz cQE+ws0WbY8ym15Mp8Cygrz49UR5/holMDZBrYhRoOvd+t7sRvD8vu7upmnEMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779287528; 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=gsP8tN2WY4NNYZFqQdTVUjAvoBuopQ5UsRj43KnZgt0=; b=ZkMLireSVmiC34cZAWpTKF1PAayf8b5IJ1dmHPkSVwBCDgycIVkQANJiZLaz7gsVapvwlw yIisN1ij0wUGShpKkSEsmc/VNtqaADDUSAioZQHwo9PhMr9zbogm/3te7/guncN6vVGl5Q 9JA8bU2AykoSynFEL+BwzZkkTaNa23IwBFmFhzzisXIhbrn1Vt09kdSPyUc0LlDWwEg/Q0 3dhJ4XW7M0Emn5mxJn16luPS5p/n3Ky94ZZnycif4Xv2KV383rpp03KAyAw9BuYzLTH9TI Avk7+irqt5oFN+UNua+8kAaNjfejI+Z0kr3s0thLVrns2g++c83md1OS5SMQgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLDWq6RKlz150h for ; Wed, 20 May 2026 14:32:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3edce by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 14:32:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Sergey A. Osokin Subject: git: 5cf14032ddf3 - stable/14 - bsd-family-tree: add OpenBSD 7.9 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5cf14032ddf35ec8a3da4b858e2376e56484cd54 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 14:32:07 +0000 Message-Id: <6a0dc5e7.3edce.1f77897b@gitrepo.freebsd.org> The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=5cf14032ddf35ec8a3da4b858e2376e56484cd54 commit 5cf14032ddf35ec8a3da4b858e2376e56484cd54 Author: Sergey A. Osokin AuthorDate: 2026-05-19 14:33:30 +0000 Commit: Sergey A. Osokin CommitDate: 2026-05-20 14:31:55 +0000 bsd-family-tree: add OpenBSD 7.9 (cherry picked from commit 9958d0f1dc64fafe73ff6f93c65b3a9f8b39f960) --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index e958d18e452c..b5569952b9e3 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -487,6 +487,7 @@ FreeBSD 5.2 | | | | | 15.0 | | | | | | FreeBSD | | | | | 14.4 | | | | + | | | | OpenBSD 7.9 | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -937,6 +938,7 @@ macOS 26 2025-09-15 [APL] OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] +OpenBSD 7.9 2026-05-19 [OBD] Bibliography ------------------------ From nobody Wed May 20 19:36:35 2026 X-Original-To: dev-commits-src-branches@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 4gLMH807Zgz6fJLv for ; Wed, 20 May 2026 19:36:36 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMH75Kvfz3Rf8 for ; Wed, 20 May 2026 19:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305795; 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=sD9xr2JgKvScN3ybMDlA+aTONFCZgQT0omK9b0oOt0c=; b=ExG/5Cp3W8I3IOWRI86tg+Ly4G/KfCL24drhFdxa+ImZmxtQUpNIMl+lLZ6UViyf395o2a tGP6OHejA7/XYJ9Z8PA31s5Vr7mI/OI+A8yx/+VMbpo2kkBY4KD0Ivb602eoa6ayfuRc7P 1gUlKfJIl4n0YWhrCxJGXA1Ke+bs/A1Zg9k5j1JppYwT58AyS/aNEu5UVO5p1uTFsGQgSS jEyAPF9iD436m0yGuy5WHSL7PSUZgQ1Y1cY/vvlAWQdrHoHsJWdU68Ipwbotv1ukFqD47F wANNqNIMiKRQwlP25qk4AGTJzS4RoPeEV2k8J7Sn2dL5kUrvsM9h3bkTIVazJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305795; a=rsa-sha256; cv=none; b=qhgwttgR6SuSRYgtxoE8t9LUiv2WZ86kM/MHF6Z8kQBzOU7imxbnLDTjXLBLS09ZcoArJK UTdxt8d1JRk6ebqtT9pOOALdvkKV+HHqoNMWzlU3OhIMTSPeq5ageX7BHTJToL9atvny+A s4RRfHHZME/MajLgTue/OI8jJRmJ0px6wwQS3fDO5G/RuWx9EXneXfiZLgkwaUqu/40MmQ 47dox3DMke4fAdk23usio3I3ELdZvCOEKotbh3tyKV1eQGWUdNqW4cJKaHict9fEKqu1i8 mYMCw0jwgQnWpTsuWbtIi3ET6SG9tCmRnBdGMQAlCTDClh8U4IdpjhalMQUpTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305795; 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=sD9xr2JgKvScN3ybMDlA+aTONFCZgQT0omK9b0oOt0c=; b=Hgu+c58LBxLoa1S/RnEvEweRExHX9MMgTWKNrLNST7NSSDqKg/rX610hWHFa06bPKIW4f1 qac4RYPklPgdGcJDUO+1ZUP11OG6uO5GU/H4lAmeWYYdnm7ysosJlgAwjlQ40utkRiomQR SckNyfC8IUS5pKnso/WwEtAczVpL9Ya4HnyFmNxYxa43xVIoWMW1nl6H7UMxhcIV6UDvwE t7yvh4WZu4JXnjN1+14BtwTgtwb7+mbUR6+ewThvg0Vg/BDg5vyv9LbFPt/vNwSrasHqC5 x9M13Ogj8AdkN2SylLznV91HFO7uUaEljiIcfaHgZzW74Zzq9sdq08g3P3PpHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMH74chcz1Drb for ; Wed, 20 May 2026 19:36:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37a23 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d7e63dfcc3e3 - stable/15 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d7e63dfcc3e362f2db89c2a2c5b184ba7f9c3f4b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:35 +0000 Message-Id: <6a0e0d43.37a23.737a45b3@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d7e63dfcc3e362f2db89c2a2c5b184ba7f9c3f4b commit d7e63dfcc3e362f2db89c2a2c5b184ba7f9c3f4b Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:00 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++---- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 1 + tests/sys/kern/procdesc.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 89 insertions(+), 9 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index ec3b37f96148..9360ec147f8a 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -274,6 +274,7 @@ procdesc_free(struct procdesc *pd) if (pd->pd_pid != -1) proc_id_clear(PROC_ID_PID, pd->pd_pid); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -316,10 +317,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); @@ -438,10 +436,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index b477903f8053..a6be5dbe576c 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 6adb2dab02c9..437403443037 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -103,6 +103,7 @@ LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util LIBADD.listener_wakeup+= pthread +LIBADD.procdesc+= pthread LIBADD.shutdown_dgram+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c index 3334ee404518..2d710ef057f2 100644 --- a/tests/sys/kern/procdesc.c +++ b/tests/sys/kern/procdesc.c @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,8 +33,12 @@ #include #include -#include +#include +#include #include +#include + +#include /* Tests for procdesc(4) that aren't specific to any one syscall */ @@ -90,9 +95,88 @@ ATF_TC_BODY(pid_recycle, tc) close(pd); } +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, pid_recycle); + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); return (atf_no_error()); } From nobody Wed May 20 19:36:37 2026 X-Original-To: dev-commits-src-branches@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 4gLMHB3QxBz6fJSM for ; Wed, 20 May 2026 19:36:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMH96gqXz3Ry4 for ; Wed, 20 May 2026 19:36:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305797; 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=hdhJEZFN936bVDsQb4KsMtmbkiyTuQFs2Bwf+E2mI4E=; b=yr3Kk/IMXQ5JvhmIT85XQuajtgO//S+2Ewge5GeQ/Y6JoQxFgqD2GF6JQRZudaqXTq1K+O WlN1l1jEki1vE9A44KiPRusGIUxLDAWDAYVDntrDQPR2qKeAlvH7Sg3YaLfFSfFhaImg6b 9jHFWtgYHLavRzsjN1XaVnkvWYxPt6a5VHeG2UJ8aLhkk4aYzE69GI7XGvHHYFuk2j+lxn DzAZGkbNmTVUoY+j2vJ1A7FCN4OLt4BmhuOcPsqPsA2G7t74m/yom6tS1BEVl/Z5mykmP9 0smP/PTcliP63bFCwOTVn+Re9cT6mv+yKfUXmuqBHcYLj1P3saOGvj/JyZ7B+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305797; a=rsa-sha256; cv=none; b=gV7hREhA4Hn+Pa1KeIDHXUoJncOmUJLYpniozofdM3EfSYWvmF7ER9vLHe4nPgPdz+hrQz 4qAQEDAdH+lR16NxDuaJATeX7RvK/AxLDSSU+OZps2ny6lXfQsMO5iaueFLWZswP8fzG4J XVHOG2l26JPyFhPAUfE7hXNuZhzGv8y7gUal+btAfEImx1bf33gNsvWar+ZppKIGlQu4OR 3GkZAN6XHlnKGXMm/Hn3s6LnePcHh+4BP0NyjQbIvoS3QNrABdipW+N+5v7OBCdNuqdB8J 4ie8zRvn7ouDSzpxVqEP/y/lbY8zWM5Dcw2zLTPRg5kdPGFT7tgcNDHKEtKJEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305797; 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=hdhJEZFN936bVDsQb4KsMtmbkiyTuQFs2Bwf+E2mI4E=; b=pDqpg621/0hIJ110KKw8u1EeIhgv4QJHRYtlahatEHxnEfkG26pfGHx+ccXjmeloRwIGGg QuVNWPnjByA6Lr7Iy/JfHENJBCMAVsSaRe0ElwJC1tG3wUXcdBNvf6MFwJ/Epf1x73cJgU UQhv0ghm/LAcPPJcZbGTmH3HrcC5abEZJY+FRqv+NUANdbmj0W+cTgI8s7nSS1lDxG9U3V NrySuOT1DlmNUd8OW6j2MLxb20rZoxHUbWZ+gx4dxsvzbTbj3rifF6xtsumOeEA4E1BqzF zTpDVGujK/JuwsJDBPHlccPjfdpsHORCVLmuLE2tCppkPvn6TvZVi+GxP1wxPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMH96H9Tz1Dbs for ; Wed, 20 May 2026 19:36:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3918a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 53a78e582a6f - stable/15 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 53a78e582a6f4c74ff9f8a49c942bf4a675d4403 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:37 +0000 Message-Id: <6a0e0d45.3918a.654db51b@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=53a78e582a6f4c74ff9f8a49c942bf4a675d4403 commit 53a78e582a6f4c74ff9f8a49c942bf4a675d4403 Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:00 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index 9fb4370129f3..2241bfc970a6 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:36:38 2026 X-Original-To: dev-commits-src-branches@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 4gLMHC3jywz6fJBw for ; Wed, 20 May 2026 19:36:39 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMHC0NyCz3S68 for ; Wed, 20 May 2026 19:36:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ac//mFIv5+2ycbAfnVTtUVZQ6tiVaBBxgfF1fP5aZ1w=; b=LxCLMVxtdiW7pA9K8wWIztjeqn6LFxmDdnmsWDCZ9l47kLUZftJqVE1dB/g/8dv1qQy5il gzfYTUIg8fhY4LUbWaQZG4QuJwPmdZ4plELU3/py2V306nt7d2iN0NTLZ3hSEjfzRbwZnI f/txhHvVr+upNNOzmzZ/imGUKoshN6hoo4Jipsx+JTMny0zdYC3CneqQP4cgJbgR2duayS /UkWff1TV0lArqMM0rSWhnNWyO6XLaTDn3YMuSrkUfhE0VNbsgD8cxdixDv0Vn1SyAaWGw 9Hx69ygxviwWpva/UN8ExI0pxA2lyybXDQhJOpz9OV2eoxHbSbDA5H2ylo8RXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305799; a=rsa-sha256; cv=none; b=MCwwjiPHdFG3vrGYEVVSeAbFZl7SZiuELIFZSKGt8DERpTpnS0FRBSz6a6qF/7oxQTMgus +sVtOVb20ckB9BiA2pBn8NYnuU0Abrlnt7ooBBjdTq4mQl5ppOhrVRU5iIZvTdr8fBC/RE kM1dXdrt3gchdTID3JqFKzrdH+/YfYM/w9eGmS6tHDcJVyXBkbeH27AhKN5DTZ+t0X3kKe cvluwRQa64/Mrzpg808xJsjhx/9ggcRnMfiIjJYNsIlnwiYYXyg6ZtuxfwSph4GssbSMWe hc7hiQguFxxmG1TpVEj2RawZ5uWKP8JIvR9HqT2GccvxUvHO1+gv3M5426dQTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305799; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ac//mFIv5+2ycbAfnVTtUVZQ6tiVaBBxgfF1fP5aZ1w=; b=QWcMhkU8DZpZRpax4kCs6i8bpB0SC7Mk8K2bcHmiGU9fs1HAbGiOh4c9UORuLuh/v2Touv FhxYDNtsNfCXTkz3eZMcukosRPkZY48KgMF8rdPIQb42sX9jJex0jPwxWMY8OuqnZvUkuM M1O49BLCmjcc9RcyIHg8FrFzGcA541cZ40i3sSlY/sIp/CfxcUkLAoTSc3MvL1pmHhK41C xHIPe7rwvFvhm2MJ4GtgpPGkaMlScUJvGSBEhaX2zVwKq8KGOnlNPhCdAS3iL7lsm6OQ6P pVJyOeKm8D2LjBDGxjTclmurvgBGxxFOKvzFILpqbCibcRX2zDYhYvhrDmhtlA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMHC00V5z1Drf for ; Wed, 20 May 2026 19:36:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38b8f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: df3f3fa82775 - stable/15 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: df3f3fa82775ad9dc2189df24da0f1dbf5f096cd Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:38 +0000 Message-Id: <6a0e0d46.38b8f.6a2b87eb@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=df3f3fa82775ad9dc2189df24da0f1dbf5f096cd commit df3f3fa82775ad9dc2189df24da0f1dbf5f096cd Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:00 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 18 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index 374d0891617d..69501adf4e64 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -238,6 +238,7 @@ struct fuse_data { #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ #define FSESS_WARN_DOT_LOOKUP 0x2000000 /* Inconsistent . LOOKUP response */ #define FSESS_WARN_INODE_MISMATCH 0x4000000 /* ino != nodeid */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 43a0d2de0d1a..1923325bba19 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2895,8 +2895,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2905,7 +2905,14 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EXTERROR(EIO, + "The FUSE server returned a malformed list")); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2961,6 +2968,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -3041,8 +3049,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -3059,7 +3065,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index afeacd4a249e..6dfda55079eb 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -492,6 +492,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:36:36 2026 X-Original-To: dev-commits-src-branches@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 4gLMH92Qmfz6fJFB for ; Wed, 20 May 2026 19:36:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMH85rqkz3Rxt for ; Wed, 20 May 2026 19:36:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305796; 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=uvJlvCvFQtTzFCMiSYeRzGYMDXFOefABk9bpVDQj4hA=; b=rJ67B+J4r3VziuC9pM+k5CmzzcWI1duT/exQ/UtlWoEOsnjYZ0JMpQw9Aed5Mtbf78V8JT h3KN294yQZF+eNpxb6aPwFvQ2eO6WVNoGICFA7h1pM70zJy4mNpQzpTzAPj8Y/k+iW37+7 VD977w7ZwxlVajDJLvieYtJ21fl2Myk/Lx5/gnCMYt9+6dR+OWFs5DdEZUx4uHN60g5Yrw ZNBiQvbj5NZzFW6Jhjce/iiNjmPOqHg8R4M6AORUO1XPUjtVsMdJlCunqIttInyUgbjz2e 5tUuvxlD34HxCURBbdPYeUWZDno4woF345+KQPqG6WHCn3MjytcA/+UOvjD4ng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305796; a=rsa-sha256; cv=none; b=ZFx8XmzjRF1w8AkHoCUm7a1xUUN8jyTf5fUWiRfGQ55wx3x3pfgFn/Te7suvZfSj4nonUh CuvbGK5XXG5sYoFKAx/VJ/ClRkXXU5PbYhA/znOJilr7qX8RjWWsJGTYldD3rJ1uHHczRA V1dlA7UIyfwzt6f0M5dxLdnu1NzwsbE9MrcHYpu7UaAQiworSHtIdvwgpHFZ19dFtnUaT2 FSMjNhfQ79913DTPgVPj1skAEe3gqxClVZnFIsLNcu8OS9xe7V19ghpENnYNiKs0BLdRnZ w/Xr23lndXOcYkF4pLUpNbEPlW+iw2P7r3yXzVhW9OsJnRz2mKUhym0+SIYrPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305796; 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=uvJlvCvFQtTzFCMiSYeRzGYMDXFOefABk9bpVDQj4hA=; b=yS4mOp3t7nvm2avPPVi6RDFaVmdHHVQxS8K/ssEQ7J1vlvoKm7c3991TEAqcOz+5vQw0tj m/+/kb1NZ4aUjEQHdtbegqP4yV6TsGOsSsOO5lt1ociY8vIN0uXVmElNikRrD6mnSnBBAr lrihEV8Z10PYkwNrq3HZOdyendDa88I+t/fv1kgRMI01FyOLlnvfpREBM9AIqg1r1B61YT 9j6gxjXYzFRC29ph5ycW7FjLxsPR0pMoPAslFsvi3WIs0WwvlCD5V6oCNxJ/hmXkOVDsKl Qrdo7lEd95IwTTf6y0fwbnIwlamva3SFEMMRkS9oRQlwkvjgxW7Kcu+hJm54HA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMH85Sypz1Drd for ; Wed, 20 May 2026 19:36:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3840d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: f45a4f995dac - stable/15 - jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f45a4f995dac8a393710b7c4dbc165b32a7e96b9 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:36 +0000 Message-Id: <6a0e0d44.3840d.1e46988e@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f45a4f995dac8a393710b7c4dbc165b32a7e96b9 commit f45a4f995dac8a393710b7c4dbc165b32a7e96b9 Author: Mark Johnston AuthorDate: 2026-05-10 15:15:45 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:00 +0000 jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() Otherwise they may be left on a freed selinfo list after the corresponding jaildesc struct is freed. This can be exploited to elevate privileges. Remove the JDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Fixes: 66d8ffe3046d ("jaildesc: add kevent support") Reviewed by: kib, jamie Differential Revision: https://reviews.freebsd.org/D56945 --- sys/kern/kern_jaildesc.c | 10 +-- sys/sys/jaildesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/jaildesc.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_jaildesc.c b/sys/kern/kern_jaildesc.c index f4e31801201f..d6a7649ec484 100644 --- a/sys/kern/kern_jaildesc.c +++ b/sys/kern/kern_jaildesc.c @@ -197,10 +197,7 @@ jaildesc_knote(struct prison *pr, long hint) JAILDESC_LOCK(jd); if (hint == NOTE_JAIL_REMOVE) { jd->jd_flags |= JDF_REMOVED; - if (jd->jd_flags & JDF_SELECTED) { - jd->jd_flags &= ~JDF_SELECTED; - selwakeup(&jd->jd_selinfo); - } + selwakeup(&jd->jd_selinfo); } KNOTE_LOCKED(&jd->jd_selinfo.si_note, hint); JAILDESC_UNLOCK(jd); @@ -257,6 +254,7 @@ jaildesc_close(struct file *fp, struct thread *td) } prison_free(pr); } + seldrain(&jd->jd_selinfo); knlist_destroy(&jd->jd_selinfo.si_note); JAILDESC_LOCK_DESTROY(jd); free(jd, M_JAILDESC); @@ -276,10 +274,8 @@ jaildesc_poll(struct file *fp, int events, struct ucred *active_cred, JAILDESC_LOCK(jd); if (jd->jd_flags & JDF_REMOVED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &jd->jd_selinfo); - jd->jd_flags |= JDF_SELECTED; - } JAILDESC_UNLOCK(jd); return (revents); } diff --git a/sys/sys/jaildesc.h b/sys/sys/jaildesc.h index fda270d62e70..77c017f7e14d 100644 --- a/sys/sys/jaildesc.h +++ b/sys/sys/jaildesc.h @@ -71,7 +71,6 @@ struct jaildesc { /* * Flags for the jd_flags field */ -#define JDF_SELECTED 0x00000001 /* issue selwakeup() */ #define JDF_REMOVED 0x00000002 /* jail was removed */ #define JDF_OWNING 0x00000004 /* closing descriptor removes jail */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 437403443037..ca6f863fbb7d 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -23,6 +23,7 @@ ATF_TESTS_C+= exterr_test ATF_TESTS_C+= fdgrowtable_test ATF_TESTS_C+= getdirentries_test ATF_TESTS_C+= jail_lookup_root +ATF_TESTS_C+= jaildesc ATF_TESTS_C+= inotify_test ATF_TESTS_C+= kill_zombie .if ${MK_OPENSSL} != "no" @@ -92,6 +93,7 @@ PROGS+= sendfile_helper LIBADD.copy_file_range+= md LIBADD.jail_lookup_root+= jail util +LIBADD.jaildesc+= pthread CFLAGS.sys_getrandom+= -I${SRCTOP}/sys/contrib/zstd/lib LIBADD.sys_getrandom+= zstd LIBADD.sys_getrandom+= c diff --git a/tests/sys/kern/jaildesc.c b/tests/sys/kern/jaildesc.c new file mode 100644 index 000000000000..11d751554887 --- /dev/null +++ b/tests/sys/kern/jaildesc.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2026 Mark Johnston + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* + * Create a persistent jail and return an owning descriptor for it. + * The jail is removed when the returned descriptor is closed. + */ +static int +create_jail(const char *name) +{ + struct iovec iov[8]; + int desc, jid, n; + + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = __DECONST(void *, name); + iov[n++].iov_len = strlen(name) + 1; + iov[n].iov_base = __DECONST(void *, "path"); + iov[n++].iov_len = strlen("path") + 1; + iov[n].iov_base = __DECONST(void *, "/"); + iov[n++].iov_len = strlen("/") + 1; + iov[n].iov_base = __DECONST(void *, "persist"); + iov[n++].iov_len = strlen("persist") + 1; + iov[n].iov_base = NULL; + iov[n++].iov_len = 0; + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_set(iov, n, JAIL_CREATE | JAIL_OWN_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_set: %s", strerror(errno)); + return (desc); +} + +static void * +poll_jaildesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test for the case where a jail descriptor is closed while a + * thread is blocking in poll(2) on it. + */ +ATF_TC(poll_close_race); +ATF_TC_HEAD(poll_close_race, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_close_race"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a jail descriptor returns POLLHUP when the jail + * is removed. + */ +ATF_TC(poll_remove_wakeup); +ATF_TC_HEAD(poll_remove_wakeup, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_remove_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_remove_wakeup"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(jail_remove_jd(jd) == 0, + "jail_remove_jd: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); +} + +static int +get_jaildesc(const char *name) +{ + struct iovec iov[4]; + char namebuf[MAXHOSTNAMELEN]; + int desc, jid, n; + + strlcpy(namebuf, name, sizeof(namebuf)); + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = namebuf; + iov[n++].iov_len = sizeof(namebuf); + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_get(iov, n, JAIL_GET_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_get: %s", strerror(errno)); + return (desc); +} + +/* + * Regression test for the same use-after-free as poll_close_race, but with a + * non-owning JAIL_GET_DESC descriptor obtained without root privileges. + */ +ATF_TC(poll_close_race_get_desc); +ATF_TC_HEAD(poll_close_race_get_desc, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race_get_desc, tc) +{ + struct passwd *pw; + pthread_t thr; + uintptr_t revents; + int error, jd, owning_jd; + + /* Create the jail as root; keep the owning descriptor for cleanup. */ + owning_jd = create_jail("jaildesc_poll_close_get_desc"); + + /* + * Drop root privileges. jail_get(2) with JAIL_GET_DESC does not + * require PRIV_JAIL_REMOVE, so a non-root process in the host prison + * can obtain a read-only descriptor for any visible jail. + */ + pw = getpwnam("nobody"); + ATF_REQUIRE_MSG(pw != NULL, "getpwnam: %s", strerror(errno)); + ATF_REQUIRE_MSG(setuid(pw->pw_uid) == 0, "setuid: %s", strerror(errno)); + + jd = get_jaildesc("jaildesc_poll_close_get_desc"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); + + ATF_REQUIRE_MSG(close(owning_jd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_remove_wakeup); + ATF_TP_ADD_TC(tp, poll_close_race_get_desc); + + return (atf_no_error()); +} From nobody Wed May 20 19:36:40 2026 X-Original-To: dev-commits-src-branches@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 4gLMHD3dFtz6fJVl for ; Wed, 20 May 2026 19:36:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMHD1YPSz3S1P for ; Wed, 20 May 2026 19:36:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305800; 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=Nh06cmk3QXMplJDvG5L4tdCgrGimGelwVxVEEfQKXlc=; b=p06IXbA/iir40Ux7WBAb0kmIIiqtLlQ8aYiHFLShKcjEVHwIJMdebwZxYibermyjiz5DyA IFosbYidzFI56ECMiTMyittjfCVWi+mzLDS75XBXXLbowgKRnTCBuwpfvBSOGF/yD2OuZU Cy76+fJrCb6jjjj2ZuM2yCBIWm3m6fng6FdH2FIC2i3eOY5YRFS3K7SLzgUhlnwxbz4lr1 ZqwYQqZcGOwQmQ2h8LuwBKkGDCT4r3p3LCCKEZYwW5qbMzhJ3+Hfcu5RWZi6QVZl3PnLYu vpjIc46nTsLbfiAcNn0i0BthHQfZnHU/QMOszCmANWyeJORv9NLJSP7ikQj5XA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305800; a=rsa-sha256; cv=none; b=EWyrz3/2X+Lox8z79FkgJyfOqXd5I/+kmAbjPeerewDaOQ+Ric+fMhSF9Epud3T/ZamebN XugKrknDyoAJDUEFnRJg/IBCwBhjw1n/pt8YL+mY0XTYu9Ko1+YR2ffa15zcI9kISdePsX 3xaNMFHX87CT5Aw8IcEcduMd32cAcWkcGEcpOkmfYIbaRelYnnuQJquL0IRrJvnHP5IBy8 wVCbGCeJG1qUVXxlMSFS2Y+Rwa4aKu1gAUi2XzlNCL8W0okhS5qLG+cZxMyJWQd3se+BWg wjg+Mv/EmQyeGQP7yYSFbymLLHmNHJRTXrh/m90eJeps7yO6MLSvMcEMnZsjtw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305800; 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=Nh06cmk3QXMplJDvG5L4tdCgrGimGelwVxVEEfQKXlc=; b=dibiykvIeCqvTYyY46ge6ZuxzvPG/NLTs20QFRts9djPYikH0lN3f6zovJirhhgv9uklBg sRkU+7kL1/0T1rfAdQukes+zciooePh/Ggkh/FowXc+x0e+OXuvKE/5lWB8WcCDuHxDnFE 6DqLu47DO+YviT2osl+oLmS1mDBgz0AD2pXBkPh4nonmtnQXGbe931f+UR1uLQTK/1pUu/ KOh0Nxa/0vTfPf00VoXNCGuR+1KKf+2Qb9jPIuM9QNKOHJA13h2br2KDEMwjj8sf2oTlNp JpW2wjkY7+E8MEf7yQcBBW01VirUedkv4a2FyfLBm8qNC4Tr7kORhvOhJ6W94g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMHD0qVyz1DXg for ; Wed, 20 May 2026 19:36:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 368e3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3b4afab9add2 - stable/15 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3b4afab9add29d2950152668e70194e1c76b0f69 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:40 +0000 Message-Id: <6a0e0d48.368e3.74f3fb96@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3b4afab9add29d2950152668e70194e1c76b0f69 commit 3b4afab9add29d2950152668e70194e1c76b0f69 Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:01 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 85 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index a55f3c761449..9be7c82ee98b 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2679,23 +2679,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index fee0bd2ffa38..c1a5d226e990 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4362,6 +4362,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4386,35 +4405,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4657,6 +4703,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); ATF_TP_ADD_TC(tp, ptrace__PT_DETACH_continued); From nobody Wed May 20 19:36:42 2026 X-Original-To: dev-commits-src-branches@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 4gLMHG6l82z6fJSP for ; Wed, 20 May 2026 19:36:42 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMHG3FNQz3RwH for ; Wed, 20 May 2026 19:36:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305802; 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=eR7S3x15pN2MGePjlNoE6xErNwtlXAfxE1FhXsmiKF0=; b=CcUvSLm29f4kMifd80Kk8FJRZaP2fA6XCiQgFoUOwGdvEavdVnpKNGbwu+k7XOB/KWoRsD C6sCK6XpqE2vC/GyyJTwabjXL4FjQDENP1uc+Kba5FbI3qlacTeX2X5JVTrTziummZ+YJl WubgzqIRMSi0Ab/hk3npkHZiMgIXtWG6N9V1yhg+4t/EOdIufTWBnZr/csNqSGAZ9AmNg5 4lm+v+eI5nDmSzobCFVoOt//Pkodp5pdr5iZZSGJh/sr2DdCCM+pjuRIbdytoU5UOP0bSz FkT81pT5CnhMn89VqVHNeZXotGg91t24WfMZExqNJPdx/+pyv8zbhJlUreGl8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305802; a=rsa-sha256; cv=none; b=omWJ6YgbgRLcR8GDviPGRujgKtJXzlMPrWjXNJwjr6cv2ybKcAtZ434jHXnBWW+A27JsT7 NWmztvMC/DvLPblUoxE8R8ZQtf+Kf623pgVXe7rqjtBCtDOiN32BznfaT0yQg0bb+rVrmv W6gAK9dS4Tfe/Pohs9hF3s+jVWZgw/siycerDUvBPf09Dj57e/ABJX3D5VM6z9q8NsmeVo v2TzCAs6MYX9R4VZZ0Ocy/U8ulH+pzbAdp5poaHwyqNPteMU6AJJ51Dm4N8hZVYTRsrgfF KkNfs+d6JeZSOt+uFjrZws8KgnA2ExO27cjIUXYq7hp5IiAWg0enMxnOsVnVIg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305802; 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=eR7S3x15pN2MGePjlNoE6xErNwtlXAfxE1FhXsmiKF0=; b=vXAsDksXTzfGH7gjrVeWf9lLueaUYO60zWGONNcth8DhUZl395llalb6pMilg85cUBaTIz 0FokyICcJoUVnzkzEnBkPp3ZYyj+1ENRlO/fCVesV4zIyOvA8vdmJoX/jU2+ggQky2wEIB BaQP1ndaXnXvyv4GdzEQTNAiLrURVx2yp0NrHD24qOgQIqSzXiJmqSemh838r84BWwjyMY Ym/B4OwKw6rr4xfs0kvbiiqi2Zw+3AyubSgrGcNs1gQ3JqKMsh3mi+cIgwvgMIy1d0EooS MTvDVq2CchkilZHgHYWx0/nyG/AUx9nPzXv6iLYbokigjwidHbqLoWGRflRYvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMHG2SNTz1DhM for ; Wed, 20 May 2026 19:36:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38490 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b7d2e445fa26 - stable/15 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b7d2e445fa2623fa5cd119a505f0184be9aecae6 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:42 +0000 Message-Id: <6a0e0d4a.38490.36b298cf@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b7d2e445fa2623fa5cd119a505f0184be9aecae6 commit b7d2e445fa2623fa5cd119a505f0184be9aecae6 Author: Mark Johnston AuthorDate: 2026-05-12 14:13:56 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:01 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index 33d94a933f45..aababf76c266 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -213,27 +241,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $NETWORKS - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -270,7 +285,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:36:41 2026 X-Original-To: dev-commits-src-branches@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 4gLMHF5kgbz6fJPt for ; Wed, 20 May 2026 19:36:41 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMHF2K1Mz3S6Y for ; Wed, 20 May 2026 19:36:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QbyOyV4cejNr7xyZx5LLk2eAjILp9OfRtx19x078mc4=; b=nZmYfQ+pAw0cMsVHCPJAW19OOQMVEYCeFkEop2Fr5YvDPkq2M7GdaE7yLZ9ubXpq/ZUdHi s1fIFPUWxhR+hUR6bA0XjpHaIC/muklJQ2FOFLTUlyBHJvpuErmW5XypQaYRimSkkUvzgK RTyOn2jIyZ4cA8w/cD3/5tLfFtgtwUOLOvPar31ZFWVITKQfZEnhy8q4ZIsI7/PhH512Aw +VAxDMmQBuIvU7xkz9gdWMfNO9sd87LscPuORqjsSk33GAln/AfkgIG41SO2xyn1PG+m2Q lPLCngTzsdRS6pCmIbGpsA/f1cMZoQXtMt0g01wDu3BaIkriuXAOiMUF6AcKfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305801; a=rsa-sha256; cv=none; b=c9/N/xQ7QJWg2ljU6EhqfnL1GD/yrj4+9zk1qMkvfkKP1RRxPWHAK9p+q7HozvdKSr5Erz T6ZmMJnP2XmNE6oWCu8wpLC59aCq2sP6V69myJsKO+kDjdOmYIQPFlyGmQjz2vigwAJUJt TtdqvF37dm4btxCLCSQrSBuEkzr6/acnMIj972DJOoEgQiNcKi0SqD831vl5dhF2uHpzIx R7N5qfesSo1Vpxin8RjkcEXxVjfdxqGZzrhGAHAZgtik4dEuk3DP3t3hRTdRgy414vfhTV GKUbZKSiwFOb7hNDpso8ysvVuhYsQLP8FagXtxNnZCRvOa6Euvb6O55vN39Idg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QbyOyV4cejNr7xyZx5LLk2eAjILp9OfRtx19x078mc4=; b=hq7jg5RTkCsSTrX6GzhPRZdVi16j2X8THgJnLQLb0cweEYPYndLA8Lgqjx6YOwUxtS1fWs Tfn0kmr8TKoGNWWhNWU9NtaHIcVnDPOofQoKKgUNFYaUlMKkmKRScd4Xt1ZJClyI3qfKgO t9XLYJpqxu2eIGHmtWixEAtg4hVJ1IyRA+eOdv16WhsdNDVxmPZlRNMj1ZwHsmGYdOnpMA y2S8/zqOAve9FZcgnVbmE6th37S9n4CXCXqr6KDpAhCtkt69fGvALDH1zvoJGEkhP/6Smu bXUvggGP+S6Tt1ne5wUIcmbhOdnjxXT1hw39jZV2CRWXHzZuUFrfJi0dPGJcIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMHF1fbMz1Dsb for ; Wed, 20 May 2026 19:36:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3647c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: 23929d729d1a - stable/15 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 23929d729d1a1bcc0249c2519635de55b57acbc0 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:41 +0000 Message-Id: <6a0e0d49.3647c.307a3c64@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=23929d729d1a1bcc0249c2519635de55b57acbc0 commit 23929d729d1a1bcc0249c2519635de55b57acbc0 Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:01 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 187 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 11 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 262 insertions(+), 141 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index df58f48d78eb..b951de58d229 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -222,10 +222,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -235,55 +231,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 70418db50085..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,7 +30,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include #include @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -71,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -81,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -101,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -110,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -153,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -166,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -196,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -329,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -417,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -429,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index 4b6c72fd86e8..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,6 +1,13 @@ -.PATH: ${SRCTOP}/tests +.include PACKAGE= tests -KYUAFILE= yes + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:36:43 2026 X-Original-To: dev-commits-src-branches@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 4gLMHH63kbz6fJPw for ; Wed, 20 May 2026 19:36:43 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMHH3nPbz3S8V for ; Wed, 20 May 2026 19:36:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305803; 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=5MtY002WEx1Zg8HKrV2smJCbHrpPf0hHPyLToDXxuJQ=; b=DaTVDW0QK3kVa3VtwVGyjgofQ3/OVPBRBrSKzz1u2DYpspc1y1KfxtkzmBVQoxenbygMNf dWP8gTDVn/J00wSsv3NZhtZPwsCsj6DgW4Fl7wAy9wlPhOHo97u4ssmBOC2I2kC5NLIcW/ k0uRlxa74sJ1MFgwXqJwgvYRr1fIprYliys5LIutAq6Ixspw2ZeYce5htT+OuC0YrcdsnU dl84o7U6VYxCjzr6JT4jNk9Fngg25kPqugjGvGNpIcbRkeQ6yRL2aV5LR1t9lFf4aUma0g ySrPSLXm4dc5xsnteHjUQ/Op4JZqVw4qZIqPr2Lfv3+o0+otHwsJO1+KwIaz7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305803; a=rsa-sha256; cv=none; b=lCvvSVIl/dz2M4djPqvvjz7WzsKnexI75CPUowBpEQ3qcS4MfgzC5ShzbfT75jH+Ji+/e/ OEr3IBuQ561XKfbpNOr5aXlp4gHW+pMZjQjg88OUQEnZbvnaz3irspxarJNwS8gfLANBTu 8Qy1dmhZu7U0TXIarC0Z5QPMgybL4g6c4Mw1iFSPCw8wWR4XvEyq3+TcthhwujBI5As4jH 1b8DmGJWiF7QiFrvHTfSSWNChV7A+AC06Rx5R4zICT8wLQ90Jqw/C8fpT9/eEdW2dPzy5X rAQ3NZwlfUednAWZaBCJ3lPUwKa5/LOEN3/z2Rr/PEIQA4tojwbRw3p9uP9Pyg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305803; 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=5MtY002WEx1Zg8HKrV2smJCbHrpPf0hHPyLToDXxuJQ=; b=ubjsOXR6UWombN3457JS5RF9shiHP0Pya1Jkd9INPkx9IzfhKAWEByRabVYETdS1TIdKCk xNh8z0Lj38Ne8d3ZcyEh8UNnVCijCkpIv4U8acheq+BYf1JTwsYbGpcPw7rfzEMBW3RCL9 oWwnliJc5KO0X0JKy9Mm7kbZgJU26TEvqFvP55I1F8YdVwlHtzaQSSBR8cTK1KS/UX7Wpr in8FOmeRQF19/RrdkzvUT4PauaFOISJie7FiQSpAyi87Dn0WSnPTK6oT54yj/vWYwbXbgO vwSnz/wThm8/lbp7VEpFFw9DIl0NontIVp3M7g45XYuV5yta5F/NIf10AFrUVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMHH3H7Mz1F3w for ; Wed, 20 May 2026 19:36:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 367e1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:36:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6f5674b97fd6 - stable/15 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6f5674b97fd6d5c0c6933a8d8579b0f93c307362 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:36:43 +0000 Message-Id: <6a0e0d4b.367e1.369dbf44@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6f5674b97fd6d5c0c6933a8d8579b0f93c307362 commit 6f5674b97fd6d5c0c6933a8d8579b0f93c307362 Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:36:01 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:37:56 2026 X-Original-To: dev-commits-src-branches@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 4gLMJh5MQvz6fJfT for ; Wed, 20 May 2026 19:37:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJh1Fjwz3V6n for ; Wed, 20 May 2026 19:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305876; 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=NHWJvH0CVwkATnkqkYKpPrHcwHBoQb86h+2I1g7Qj5Y=; b=EJOuFZNypr1HJGOtGqe+gdgU9WemHKFnQ4sMED4s+8w5F7lCh2oYbCjSv60md0KiMSJLGn yAwvOwq9tTh7RSpVYurx06FYPtAyvyldaok+IsgjAAvHsbGPezeZ3Kp9ZUi4QcbKoXqtAr GMvlxHSCXgYpX6YrtITdCGdzIqZJeM+q2PzrpaIERJhVh1gv05U55yPW4ad16E1iHPX3qw ge1129dPjIX3SvhmHutfhboeOPb/xKNF4jnErKwDlbNL/SfdGgsIFYbuQ6Q4YLguWj7oSS HtmdqJVi1pG3KxFrgTmZ3psqGx1BkK3BvBLwZm83KpkFJDatDiQRAm621T7/Tw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305876; a=rsa-sha256; cv=none; b=rkg2feKxojfC+gBahx6maBGzBFrAGuZNLp7sb3M7LDRqFh3ueKRP/kqPYvBfsj+srkl+34 JHWjpQruPvMaNgp3whwMOIEnRLooROcwAxmRLZeValEnLNKqyii3N4OxfEg6OkpNiYK5uj 48ik4pxsCnLVsbP9gB0ddaBZXp/97KXj8wzepm0xvcRDWKxLzzMtL5y/PkG9PIgpuKJE+r NQ0ZK8qpVPVFIcZNj9CUFeNCsgMLX+9qZSoAosP/4blJoBLls/gEB1D2ZczyKkYPTMHg8M vFoXUSlpKYMpGr98dsU5jCmwx1bDika8wMEg3vAQNW8sYO03woUJfBmCuvMfmQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305876; 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=NHWJvH0CVwkATnkqkYKpPrHcwHBoQb86h+2I1g7Qj5Y=; b=X207MsYtQtX/P0fzvX0C5Vi+cUzpK9KEGZTI40ukWXzkhZbmyBXHDV8l0hN+TeXx6Ypj8U MoP9lsgTpAtpQyehphQ1d3LY3Mza+Eb9gTwrkEpU9tzkdl5fr+qc9/tT1H5141d+M4x6at EfdPm8TK8c5pKYvLbiqovQhtBFkF16yFtD8kq7KAo3XPpPZ3OlmZISZ3SJag50fR12DMoE USpuATavyvXGS5zJmxQFSk8iLGmbdwJ0GlgaZFIeUkyxmMkzAXDg21Nc3L6hclHyXbu3Ud HWs1uMuAhqFSCTBvQ4DHPpa4DLnDtoStLP9Xc+M+iFMk8vrBbLFL09XTSSvjfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJh0XPBz1Df5 for ; Wed, 20 May 2026 19:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38417 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:37:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: dab07b77a683 - stable/14 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dab07b77a683ef7fd3eb4d2ca8a99e2f3ed785d9 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:37:56 +0000 Message-Id: <6a0e0d94.38417.384caa73@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=dab07b77a683ef7fd3eb4d2ca8a99e2f3ed785d9 commit dab07b77a683ef7fd3eb4d2ca8a99e2f3ed785d9 Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++-- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/procdesc.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 8 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index b2b638b6f99f..515d0365ec61 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -273,6 +273,7 @@ procdesc_free(struct procdesc *pd) KASSERT((pd->pd_flags & PDF_CLOSED), ("procdesc_free: !PDF_CLOSED")); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -315,10 +316,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); return (0); @@ -433,10 +431,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index 81102dffa6ff..56d625950a80 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 51d4aeeaedfc..c455b40747e8 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -27,6 +27,7 @@ ATF_TESTS_C+= ktls_test .endif ATF_TESTS_C+= ktrace_test ATF_TESTS_C+= module_test +ATF_TESTS_C+= procdesc ATF_TESTS_C+= ptrace_test TEST_METADATA.ptrace_test+= timeout="15" ATF_TESTS_C+= reaper @@ -89,6 +90,7 @@ LIBADD.unix_seqpacket_test+= pthread LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util +LIBADD.procdesc+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread LIBADD.sendfile_helper+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c new file mode 100644 index 000000000000..7505e0e4bb94 --- /dev/null +++ b/tests/sys/kern/procdesc.c @@ -0,0 +1,128 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* Tests for procdesc(4) that aren't specific to any one syscall */ + +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); + + return (atf_no_error()); +} From nobody Wed May 20 19:37:54 2026 X-Original-To: dev-commits-src-branches@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 4gLMJg6vl1z6fJPN for ; Wed, 20 May 2026 19:37:55 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJg06ckz3Tp6 for ; Wed, 20 May 2026 19:37:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ewvrjwga303OxWYVFRzcQHP2D1maL4rVfo8q2/VAgxQ=; b=ntMIAdJQ8NEu5fr0Qnvt0Qciz9hFdJFWNnmCkQiwHooOa/5qqUzYphacwKRgIQsc1dqtJD qclyIPH8LXyheUFP2E9rcon8zMdWvpPaEr8NNrJInln9ErU5E6m326hFPCBuTMuGFxlvC9 yBqugZu/HRHw2mOXl7Ik8cCHbbx95CJ6Mk+FFl9gIuqRdBumeyu6yZ9us+Gv+8hh4GL9ay OXeTui1ZD2t3xEHbXHc0et28Olmp9W6Ne8FQ/1reM0ERmlU6CPBnwZ8GTPPsoxqhGrxyQK /g35oyt5wmtPb1+waTfvYL2soAJnvS5em321BsCxrskSN4gcwUVOiHS3kr497g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305875; a=rsa-sha256; cv=none; b=uSSDYeXwBiw4/bmbXMj+Xp2fsWFMdnp++nnouy2YBrvnXOUBlumPRYKhxMXd8Wea4zzarU cj+d4A5rnDgkdnVqdj9xDek4/m9imf0rJDNyALL52R12LVDFcgVn7xUanSxhwTkDqcZA9Q 4+nfu/95jL75Ht4p1Bcysf2Pgw6jeRZuh6UpGY74wGT8aPoFaEDmySYd0QmwMmRmg+IWZX gLDjGKKBSNd3iyE/H6GOuqZv/gvjxr73oMzs0wHJp6jgRtQzn/bG+xb+R+gPWJwHue2jEc YY7XuEmbwXI/OkObOoAmPG3feVZ8tswFq8lu7iMur/yYvmq49OtGg1sGVcq2eA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ewvrjwga303OxWYVFRzcQHP2D1maL4rVfo8q2/VAgxQ=; b=m/dyYiUK7Y9JasZYJNtfT0g7ZMDGKPv7SSIFn7rVrPlzqxoEs/01t+FnbQnMmSTYHudsUK PTQxoKMEzFJvBL5Yj7NXGZ4H7JucSlVi8S5sHQKsfsn6jtwyLvY2WXhP/W4hfnvc99TX/P odS6zEpndE/W9QHfpS2t1mDDFxsoOfo9C4TxiskEB4j/oOPnPeh9ZPEh7kyupIVuppXDhq eaxxFjVX04bM52qox5GyGu/TJmONjdG01Uv18Lkhj+nd47/Ltwun8+aq4NY+3IlLc8mEGp GNVsJ/NVBnWDEFMs9L1ueFv7BSvrsCrobOjh1BBdr19/o6L1OxgXNkEfHN8eiA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJf6nWgz1Dbv for ; Wed, 20 May 2026 19:37:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 388bf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:37:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8eb0bbbd2e4681dd6dc4b8d0e894438d6d4deedb Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:37:54 +0000 Message-Id: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8eb0bbbd2e4681dd6dc4b8d0e894438d6d4deedb commit 8eb0bbbd2e4681dd6dc4b8d0e894438d6d4deedb Author: Dag-Erling Smørgrav AuthorDate: 2026-05-07 08:06:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 setcred: Fix buffer overflow Since groups is a pointer to a pointer to an array of gid_t, we should use sizeof(**groups) or sizeof(gid_t) when calculating how much to allocate and copy in. We were using sizeof(*groups) instead, which meant that on 64-bit platforms, we would allocate and copy in twice as much as we should. Unfortunately, in the smallgroups case, we copy into a preallocated buffer which has the correct size, which means that if sc_supp_groups_nb >= CRED_SMALLGROUPS_NB / 2, we overflow smallgroups. This is a direct commit to stable/14. Approved by: so Security: FreeBSD-SA-26:18.setcred Reported by: Ryan of Calif.io Fixes: ddb3eb4efe55 ("New setcred() system call and associated MAC hooks") --- sys/kern/kern_prot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 246413a54903..e2accd7f7729 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -527,10 +527,10 @@ kern_setcred_copyin_supp_groups(struct setcred *const wcred, */ *groups = wcred->sc_supp_groups_nb < CRED_SMALLGROUPS_NB ? smallgroups : malloc((wcred->sc_supp_groups_nb + 1) * - sizeof(*groups), M_TEMP, M_WAITOK); + sizeof(gid_t), M_TEMP, M_WAITOK); error = copyin(wcred->sc_supp_groups, *groups + 1, - wcred->sc_supp_groups_nb * sizeof(*groups)); + wcred->sc_supp_groups_nb * sizeof(gid_t)); if (error != 0) return (error); wcred->sc_supp_groups = *groups + 1; From nobody Wed May 20 19:37:58 2026 X-Original-To: dev-commits-src-branches@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 4gLMJk4zBhz6fJbx for ; Wed, 20 May 2026 19:37:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJk2c3qz3Txw for ; Wed, 20 May 2026 19:37:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305878; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8rCfstt4VbI3eRyiGVIjI4Gs+8dyCLdjrhxfYOr/viY=; b=AQXHjneyAf7aVjPAPMq/+dU7yKdwx1wuTgKDgwAgtMAUf4ba5Y2zp7pTR3tMI0Yd9QClju qQzgAWjF1Piz8XJwDLIK2ujg8vR31mbc/w5U1YH6kT0QpYKsxE4IYd5zPYKmVv9d5arY9X sMXnDHBYKfC7qcj/QUHFB/uljBl+U2jmOe+Ftg6bW1wh4InmrLT8wPPLwXw95Y/eVpApqs ec5jvuHOT0rcSmPzdfywgbU6Y9zp/twA+3JbaJyzlZH+J5HRGJuu5GztA4qBNF3xcjPfRA UNOLEVHzOGg4g2y1dKbkEK8qpXXJiChMDx2zVh3xilMtEE3QdwrT+lIECQH5eA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305878; a=rsa-sha256; cv=none; b=c+S0aG6Q0xSM2Cal/Mzq9AOhDPi84VGK7mdfHknYs+tEJYGQo8vlB/LKbrG4LqAhCe1YgA J/ING1nWhD8qiuCe6mZV6Qjp+5C+GI+JeU+hxmm4W/P6WaSujwSE3kIw0dUsDkhjV0qANr bNrJKJ9AtpoTDLns3LyhAJLSux9szkFub5+1WgOq4h4kI+UgCgDNNVvMlFOpepywcAqCqV hw8DUByxHXL3B5VZwtbBtKzQvydtHCBrLaftzr3lilbbd+/0v7H9AwgswIg1Wjg/pjn4yf Vl3I5o8Rw1en+Cz65YZ79CvDTZYwc5aCKK05fvV1bJhuIjjwa2Shc+doql5kzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305878; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8rCfstt4VbI3eRyiGVIjI4Gs+8dyCLdjrhxfYOr/viY=; b=pX6fIfq27xxw/pJV+NhpEhq2EYLjHUCOOr8e0ICH6xcqcEqW0hseA38/QYOSOIwwJ8M+R5 xzq3Jht48MNhEW21NsUCDT5ikQ01oEH6OyxoFmNVc5A3/AYBSJSAWndxpt5QF/erAwMxTH d4jrB66pcrOpxJGHRD4ai+eSajh3l+yz4Vj0qvNnVPd3hIdKXC5gj2KpaPjfThLc320TkK eSUzYmUtzCIP7nHrlyQUBp2yazOKV058msSV9YHnqMMk6IWtgAAe+Uep/MfkU3UAV2eY+Z xOGruavxKpx0/wsMdoMVESJvOgEq0NuDJjLmoreWUgTTAUV+p1NklSpCd9P4wA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJk28ptz1F6J for ; Wed, 20 May 2026 19:37:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3656b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:37:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: 25148c51c8c6 - stable/14 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 25148c51c8c638092776cf9582b7db8c9216833f Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:37:58 +0000 Message-Id: <6a0e0d96.3656b.5e4cda5f@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=25148c51c8c638092776cf9582b7db8c9216833f commit 25148c51c8c638092776cf9582b7db8c9216833f Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 17 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index 3bfc859dbac9..ca70177d049a 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -240,6 +240,7 @@ struct fuse_data { #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ #define FSESS_WARN_DOT_LOOKUP 0x2000000 /* Inconsistent . LOOKUP response */ #define FSESS_WARN_INODE_MISMATCH 0x4000000 /* ino != nodeid */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index e400d02887fd..ba72a21c8efe 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2794,8 +2794,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2804,7 +2804,13 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EIO); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2860,6 +2866,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -2937,8 +2944,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -2955,7 +2960,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index 7fa2a741e074..a348315265c2 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -448,6 +448,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:37:57 2026 X-Original-To: dev-commits-src-branches@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 4gLMJj5BfDz6fJPP for ; Wed, 20 May 2026 19:37:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJj1htbz3V4f for ; Wed, 20 May 2026 19:37:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305877; 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=2KtbMvBNuJ2FU2iiyR9qx/qI5/NNhHtRrUa3AecEqV8=; b=ERdg3dedLki2F781K9ci4RiaGzDU9zin4sde63O1yUa+hDnJbZgKUUPfzvxHvf1M4VlU4k hpNY9d9ERsAbvsV7EGtMyewK5vWbobnxbFS1A1MHdYPy7cR8HEKAAeglShzqkYlhEmfpvj bGLuR7QXFKW8r3GpuinDmg1SiXSjWfzFOIMLsI8DMz1XExB68bOgYe+F2tecMQCK7KQQpO +w1/o2qxO+XebuB8cyQa9l9IgTZFnBHd8+ui5RUF+Jqw4RtPQcHt/DlryTsOASDly/aH7p pt5LFTMdiOK3+komJMBX+N0t/quuJQZeFhacnvhsF0ameCIAgK43ZXXFygLBVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305877; a=rsa-sha256; cv=none; b=gtppe4s7j59fJRnNb7YYOOuTvo3ttpcqgh0s5bkc7m4oKoZg0IRPOlc1lejw7dyX1lSqyL /VXRZG8n7bj3c7uAp5O02iuocKaAAlnCBJKit0vDzZwHmaerkulxWZDx9HnfXgKZqKntcq y/11Ib5wekd2QzX8vWadxhrZpjGZYjdd5iGDrv0MhkqrnRC3y5xkm3M5pIRMvOnroqaW1X jMYJceNyxLTLHJ7irZnhsDxYSrHQnmz5VHN/KhLZ/rgmB1Ol5yHlc0rGsmwyfuA8UlYiVX pprEgSvu016Hz9jKX3TBli+lPORXKuwl/pIS02+QzH4KDeGd2V9tg2nFoZOcOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305877; 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=2KtbMvBNuJ2FU2iiyR9qx/qI5/NNhHtRrUa3AecEqV8=; b=NfZC46FA5kmB+cThCE+dBG+Ggq5W88AJMXKk8jNxPIT5r1gWewvrSEe9BQl2TvnKWkX7HP TGi3sYtEzAdZQpb5E1GJWhjnMdyS4HXfpyFWn0GQZIXVf2XUpcVFcIOajEIvwG5U06aEnd nZ12y27LnPykAFZPJw0El2I82R0bYzXC089JmEOYDHwieYeWjAUzBA2KtfYM4kUhbWdKE3 VNEr1+jwoCA+PJiZV6IewDm8AM1ldE49QNXPutUERBBYRtuxyXT4kTN6wLM5tGsyg/ILxm Z+EC21Udf7VIkwf8hPs4dTsXvRL/TKbdpInG3FkgZuKH9OdzgFSZetsXN5Oohw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJj1J0yz1F3V for ; Wed, 20 May 2026 19:37:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36567 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:37:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b90b25c3779e - stable/14 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b90b25c3779e24bb15f65cf4e999d7e8f3d28b6b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:37:57 +0000 Message-Id: <6a0e0d95.36567.3df1ddeb@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b90b25c3779e24bb15f65cf4e999d7e8f3d28b6b commit b90b25c3779e24bb15f65cf4e999d7e8f3d28b6b Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index 1df97dd91400..4c3aa5be0cce 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:37:59 2026 X-Original-To: dev-commits-src-branches@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 4gLMJm25P2z6fJQS for ; Wed, 20 May 2026 19:38:00 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJl4bbkz3VCm for ; Wed, 20 May 2026 19:37:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305879; 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=TvYgc1l+OMiuk2Gr26I/Gevn/SPhX7A8K0OnYS1fx7s=; b=Bfr4N7goImSZBvfTIM3N41/r0xwmHrBgRHSFRuCzriu+7pFfN4clqm/Aq16r5x1ZJ+3uFY 6wkFsptjascbrnkmvtyyDxNgxrgKb5Mthu8YUG3lh7YoezF6vewNs7MmviEgwbSNM56BJv grcdVX4E/oQYwwgxTdgM7nrwA8Gb++sYRUycJ7YEIUXcP2CW4z+ewUW80p/8jO7Rj9+0kU n6W1ZBAwRVF+/EFuUdD68LQQ53PsDbW3Y+aDlfnqqqvSz8ntNLX7w7OnK2+SOa3ugUyKTl HLbSpn61ixOSx2j8VRedzS6B3pkQUfN/zR9DB6upWjDQIXz4McKIyetv2quBuw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305879; a=rsa-sha256; cv=none; b=M1uj+DiHUSFkQnvW9DZ5wgqNVl9eaKE9+y1asVaM70KFbk1xIor5C9pciUJbgLDILLeIr6 B8JRt20ZQUGi9Gf9N14Bj2PPrvzJ/zweq7r5XBz5EAMwH6Q7YsTewm3RloFrByexm0YLto EXPFyf/jRcZwuSw961xszJstpxBHpwBIVSvdLsN5udTC+B4/N5lvQT81q4t6Ch9HPNyRIt mfLA+heLnOOHh+CJLBXvo2OGeMYQxnez9a1vpfcUwh+9dhRo2D+OrSdrTDauJQp6IRSAuJ SdJAl22A9x+f6cjS04loH1fJywUal2cjYAyedz4DnJl/9ClZgrl2a6jae3e2WA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305879; 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=TvYgc1l+OMiuk2Gr26I/Gevn/SPhX7A8K0OnYS1fx7s=; b=Yu9bsBAhCyBghnCmhP1y38Riaj0pGk2YD4IIPO4gLJ+o/5GiL5+KIwtX9GrgOVqJzu+DTM d6ktZYYjM1n4vKA3eaOhiWkEpirJiPBU8hPPemZjxWHzGNv3aVgCW+cAONhXot7SDk75CO cx2WC62s4wqY/LqxuahftYj4ARQxxeUk3hsnR7V5OCA8IWpZaoV3fl5z2FL4cxl9QzegtH ypd17Z7OnBKXUVe7D5nmp2JbFWXZIqbZ5AgHzN0cZPjq9yQBROCQNpPMrXoYvPc5UxvaSN DIQ4X640zNIy3dj1Pb43ZEW9BS2QOqGA7NxuAC8G5K1hSN4lkACE0oFAIIYXXw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJl2zsDz1DhN for ; Wed, 20 May 2026 19:37:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 389d0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:37:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: fac902a3e039 - stable/14 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fac902a3e039b2a9ba432caa87ee18af96af3ff4 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:37:59 +0000 Message-Id: <6a0e0d97.389d0.5a671e1f@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fac902a3e039b2a9ba432caa87ee18af96af3ff4 commit fac902a3e039b2a9ba432caa87ee18af96af3ff4 Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 85 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 5304436f4dd5..91361d680809 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2692,23 +2692,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index b96e7d126b03..f5350524273b 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4363,6 +4363,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4387,35 +4406,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4658,6 +4704,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); ATF_TP_ADD_TC(tp, ptrace__PT_DETACH_continued); From nobody Wed May 20 19:38:03 2026 X-Original-To: dev-commits-src-branches@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 4gLMJr30KMz6fJQb for ; Wed, 20 May 2026 19:38:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJq6H6Vz3VK2 for ; Wed, 20 May 2026 19:38:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305883; 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=rKVa1MuNn2MIW7n0ZEZtdFSsKhw6SrKymLBMY7puNy4=; b=e2HtYaWI9HTl2coHnDjm5nVdx9269q4zsW+TeauOBFxywlbUTr/bQnSVY3fPhEqnULSJBk eARFNOlb6ZWHMLdHCXAb1a27jk6/lUV7up3CQrGum/CUd/YuTGhky4MhVhpbjBD6/RzGhT lNjVE8+ngTcy/GnpBwM3ck5f8y9/y9m2hg+qxyEOOwr0UHMRMk7zNt91SqrGE18z8RHm2C XcoSHwV53n8n40xe+GuxvHIQVGf/feNBuiQrZywtwJWLUb5QA+nT8rQKPLOAwki5IuORpG FugxvdWw0KbolvjwIPyEjzxxzoGeB2AJLxbtlo1aWM6b6AJJhIgwO53zB5pXGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305883; a=rsa-sha256; cv=none; b=K9aDSkJwoVrhLUDDXm43d/1Bj9RiyCjtRme0+1cKiXPEr88bT66dlmzb4IVBuhqnHCqA2s Ry83aMYAwG2dBbWQcCW0lr99PXtdtCfay4W20WoJBQAhrgHuUWv1JB2hQWz2Y39zhVVKnH yZwe3PDHxHGquzDaVmmfIp1WJaWMu367XW35lnUBnOF9nwdxZIlEOZt7C5hx7g2SyAC+NN TIYo2DOjXRUiPCiT8RQbRXMJ0p+JvNHS6iDgaqC3j3h1WsDjN+vyRAxtwifGQyVj6FwAnF MP7bYhWidQFsT79HcxG2cnyAEG6pAh42j+FII+mgPjdUzJlnWGDW9foBWCqKgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305883; 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=rKVa1MuNn2MIW7n0ZEZtdFSsKhw6SrKymLBMY7puNy4=; b=Ll3T45FiTG7zBi0SVw0Sz7hFzJSCWFxoUt4dDmeHa0nNoH8/eYiR9tlTVUYVTA2UwAhxqJ TuugHWvlt1hUh7WwwoVgcl+T31fxuAc91gL7aWZoPLOo4d8x78tFkXKxh+PX+6sKgwdCU6 Wcsv1jmcALRf4NEceNaL4CE/wt73fwQJvyNAhFaxJQfTfmlF8rWzZ6ZQSCAtuA4u9BeE/8 ijdaVsG4QC6Fk/pNObeI+kZ7xCyTxa4mLIN+MCb53GKBkzRlEcaQQkrI7WS/YFPdDP3Fb1 xMrbTRa7bOvxwU46XgIUgZt38toz7GXM0PlZort9lJnlsw/SgQeqRY5x2PdU9w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJq5pydz1DhT for ; Wed, 20 May 2026 19:38:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3865c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: f15df0adbcd2 - stable/14 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f15df0adbcd299456fe4055707822de8e9b3a66b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:03 +0000 Message-Id: <6a0e0d9b.3865c.3758af21@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f15df0adbcd299456fe4055707822de8e9b3a66b commit f15df0adbcd299456fe4055707822de8e9b3a66b Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:15 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:38:00 2026 X-Original-To: dev-commits-src-branches@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 4gLMJn1jvbz6fJby for ; Wed, 20 May 2026 19:38:01 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJm5ZFbz3V1N for ; Wed, 20 May 2026 19:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y3z2voQk3UcXVMjp7j6zSQB++u7VkCM8n/fI30OwF/s=; b=aMebGpqW8JAqkjRN6fbFFnzDzMPFMM5k2VSKyypF7Esy8Qqs6HUffQwsEQrVoBp8Up6/pt nbF0WGRGULOnWMOE8ZfJf8rL2M5FvTalYRQrayqEZr8K48FmbkxErGraLIPUfd0ZkH5O0w bdiqwau5oFHw+iFeGlrc4cK6xoK3NEtzkxAKmTcrUmIKTzY9AeYsapqz6BUoXvxqFqr74u ZClYDgptUQhzDghhx+2vwDb1BWa2l96tZhX5YeWHzPSjt6cw+dGQqsb7+S04LoquMLTVxe j12FQ2uIWeORnMwiOUvkI62+tuKzfscqOZr1fnVjof40X2QAxxN6JUTSpphxfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305880; a=rsa-sha256; cv=none; b=VXY3qQHp3xysrZ5YeBt+r3/oK7VvIyjHbnU+5Y01mUCJUIYB9hEkHyDZ/I+1O8CT3Puhkd CdiMBcdUkl9BmTwCTsnM92KIYPIUQO1mp8g+ukdLYIf17wqtjCuHf3D1zunzRYy0AsnjVU +eKSDRLCj2c8DRzfxCv5KI/ZIwezzpvwLC6reXgHeUS6EiigtyrYB/Lsht87Ed89V9slpr JfpLaw3iQMd5HPOKLilesfUsKcecs/DLBl4dQjlrZgeV+2CNXCN+LyjC4HH3HcyDHtk8Sg 5g+ToZpbedMBNHlQygqPcxdVvc9FZOtliV3JTWPH3GnSPtcK+ADNqlHpWDWo9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y3z2voQk3UcXVMjp7j6zSQB++u7VkCM8n/fI30OwF/s=; b=gU3CZyXh50PcGwx8DS5yVBomM7lhLnHyz2UlWM12lgo1Z4AZ0aQYEDoMxJo5SP1n1Pr4L3 7QzWavwS7E3BA020vyGX5Juj7RNxvOzKnGWpP8xRook2k4Op88an48rWiuamCItu2+WRkL ldrFph5u2NJ3B2JNLO1C0kblYdV6GCoRe3t3ZVuZiNfKw6YA/o5/+7BcvXUwwSLJjYB6Bb B0FSXomzLWryz1L8NJd0ys+FOWf5Su1fTyXlLDYNHaLytBGohLDiYFTj2lATNjxqM9YaH8 M/gls7Fa6jxFQw4G3jAZyN2d/1NoUbWdHofDed1QASkUuJFSOHP/OlePpCWWSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJm3NKdz1F3Y for ; Wed, 20 May 2026 19:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38682 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: 9e74d5e2e5e4 - stable/14 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9e74d5e2e5e4eef130c0f302cf5d2625304bdb60 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:00 +0000 Message-Id: <6a0e0d98.38682.4182bad2@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9e74d5e2e5e4eef130c0f302cf5d2625304bdb60 commit 9e74d5e2e5e4eef130c0f302cf5d2625304bdb60 Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 188 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 12 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 263 insertions(+), 142 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index 3468b520e275..6e9cd9d3d338 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -223,10 +223,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -236,55 +232,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 103791676272..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,8 +30,7 @@ * SUCH DAMAGE. */ -#include -#include +#include #include #include #include @@ -42,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -72,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -82,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -102,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -111,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -154,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -167,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -197,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -330,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -418,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -430,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index b8996030aafc..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,5 +1,13 @@ +.include -.PATH: ${SRCTOP}/tests -KYUAFILE= yes +PACKAGE= tests + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:38:02 2026 X-Original-To: dev-commits-src-branches@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 4gLMJq44Fbz6fJQX for ; Wed, 20 May 2026 19:38:03 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJp5RzFz3VDQ for ; Wed, 20 May 2026 19:38:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305882; 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=Q6QM6nU4eRrQLkOJO21tz4OKzA5F01UySDHO6BrK6jw=; b=IiHbP86zELFIe+f9a2BJeewz51k/kHr5b380tTuMCDXJNRlssYzOmh513ihYcWVETEUryQ +2RrQzE8RaSEcRWyezIA6zXwnZYkYzBu4Nej/udzBgTOV9IA3eJEhGeL4T0+JBSFwnbDcd FPHZ9+KIsMVMDgVWnWrrNRCV4yOrnuM0WPs4rVLIC4fPLZPhMMjAbtKHLrNXE36gvq8wgr EfvFUDuZBF8wGN7i09uu6XP1PSG62ITfAAhB6zrFgg5RiQ0Bl7eCk/qE125STMW35sFcDt y6+JF4SyZ7FnY5/WtIkP4T8LPkTkFlMAmpQ6zqXgfddqRCgMAkGThUbejsUcsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305882; a=rsa-sha256; cv=none; b=fs6/sKu1ri/fHbEVFJVJr+kv6MCG8jTsDxknTOS06dp8QtKR54xxR0GgPeTzOzIjD4hH9F uaFN/E3vt3UP+J3ETQcbNrzpIin5u38aMWS1ci7gW6QjE6spobEf7Oke3g99QxYgkzI+gi nN7GDG/5M4T8CeDHSN2okAzYn6K0emDyajV+0kuzubpWeu0OeRroP3nW+uNXHdhclLGar7 2X/rowi6uwg/DoHdhgTy/ei0SMPefUL6hMKRcLpy0CP9nAeBStuOdm+i0UwTasSaB7RqcG lTHpblhTBkFQ808uxtRAtxNQJ6kX3VEEwkMV+mHX3sw2UHi1KbL+ym+AowwhCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305882; 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=Q6QM6nU4eRrQLkOJO21tz4OKzA5F01UySDHO6BrK6jw=; b=TuH+I7xh3k6J922FOvqbhAKSnHFBf9XzQz3X6ZB9bOgUZ0luIJi00DSsberEwa+cVxX4pP bBbgImbFq+V8Ml8XVJoC01o2rifQbIfg9+vIWEEjCmLAPSFy4HAeWnSWEm9E3yooFzxuL6 zTDy8erACgY1MRwi6OkIuYlwGYI74mBcl0Ea+NzZ0kT27sO9bRliV1TZJfNpU7AjVRPn42 P8Lo7LQvTBEtYWCnFPyOVbMIJ+ndTVyw3MM7J9JanXFWfMJPGapZ9D97aVzFA3S7hNuGjI PSQbWGX5pQLYFFNnah8XsrdFjw+YhNREbro01uTE7SduF6B7AnFLhhS8u3lUVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJp4zSpz1Df7 for ; Wed, 20 May 2026 19:38:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39215 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 183726934845 - stable/14 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1837269348458ade7042625ee7be180734f2c586 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:02 +0000 Message-Id: <6a0e0d9a.39215.51a4ef7a@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1837269348458ade7042625ee7be180734f2c586 commit 1837269348458ade7042625ee7be180734f2c586 Author: Mark Johnston AuthorDate: 2026-05-12 14:13:56 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index 33d94a933f45..aababf76c266 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -213,27 +241,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $NETWORKS - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -270,7 +285,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:38:01 2026 X-Original-To: dev-commits-src-branches@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 4gLMJp28Jlz6fJYn for ; Wed, 20 May 2026 19:38:02 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMJn4bqLz3VDG for ; Wed, 20 May 2026 19:38:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kbw6YJ2h0iIy0HsHcwBDxu4tciR6K56mX6UYR219FxE=; b=XPa2+yoPrQ0osPCDZ1LATMUORwrZmdo/2CfHs85e+9k9/4D2s0FIYzsbQqPBy9y3QbgoXN /v6IfpAKQdMn8dRTsSPehaglinuPCscBWihcT/OIOifSvqbgb59Mx18C1w0O6dS2pnf37L ggLqPuXyjZ5ZCIDMyQ8XTbibQr3tH7yojDt16C5+Ye+0gUuNepqZqVuIHoPxVXt8YCvbyk 9TGM63n2dz5qNBHGkoHpPBR0lw8XaKJqRaaSBEZkUcZs5IGAODkzyLwojPrgae4rM5S3w2 C2FJoyKTwq1EBfFeIAQoq1I5Suosm9DzEADAGgRAFbvjlYCod0I+ija2cYQq6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305881; a=rsa-sha256; cv=none; b=engSwCNI+VI+c0kcekp7iL+T8e6Ax4Mp4o5wA6AhMxZ7PUN+/XWt1KV8k5rE5OK1jh4WWO yfpQJ3jzdmB+G0QR4L2kY2p5e8C2jYDtARMlSjp8D+kn+j4uDPPMl1WEekXtlT6WW5ZhmR FVeCASNROAwNSD1VOPLxuObJl8Y9MgIhU6M2H8zsl+IlOcbWmC1y5BArxIHHXfhmq1m4Sg ynX2WnhOr8pEN9YB8E6r1zU2NLTmXel5JuO/QBA7McvVwjO9hs4tufiZyb70VWlph5jame Fp4xFn0WDxMBmJdywsqlw9ADTVw04m1WqAAyc4c8cOqzYwg/5WzkfYjPBw25tQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kbw6YJ2h0iIy0HsHcwBDxu4tciR6K56mX6UYR219FxE=; b=QzUa8A9mXQZSuAKgtq+pnjeHOwhPZSFjA73Y1tVE96mAyjR4hUd7TCYj/Nj8C3uiU7uR1S zjmz5C4ENZVDONBQhsjGG6/xA29a76BshvtiCtAdzlnunda+PFb7jMsT22ogHgLXNYgQvD E8KF/RqSH/eRe3naXW5gkbpvoSMpzggt81S6baFoQeFkex5UPBcUgqvKH4f2lQwAb7ouyU poHDMy/0VMIR0WGbmbBcc64WMzGCMnJgI9Tl2+jQ2LC4iY7Rs83cBAdVH6Ca734dfWCXy+ GQ0LNc19qaBubsYUkS+knchUNhyycctlp0sns4f2huvkruAvO68BvNpfwB1THg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMJn48lZz1DhR for ; Wed, 20 May 2026 19:38:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39210 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Renato Botelho From: Mark Johnston Subject: git: b64015355ebb - stable/14 - bsdinstall: Fix wifi network selection size List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b64015355ebbd3e27bc1e1a8e0ee7864b1dee3ba Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:01 +0000 Message-Id: <6a0e0d99.39210.53b5615a@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b64015355ebbd3e27bc1e1a8e0ee7864b1dee3ba commit b64015355ebbd3e27bc1e1a8e0ee7864b1dee3ba Author: Renato Botelho AuthorDate: 2024-05-20 13:43:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 19:37:14 +0000 bsdinstall: Fix wifi network selection size Use correct variable while creating dialog used to select among available wireless networks Approved by: asiciliano Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D45271 (cherry picked from commit 55d29905489c975ee33b86d34f38e78b5ba29817) --- usr.sbin/bsdinstall/scripts/wlanconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index b5c488b22b2f..33d94a933f45 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -223,7 +223,7 @@ while :; do f_dialog_title "Network Selection" prompt="Select a wireless network to connect to." f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $menu_list + "$DIALOG_BACKTITLE" "$prompt" "" $NETWORKS NETWORK=$( eval $DIALOG \ --title \"\$DIALOG_TITLE\" \ --backtitle \"\$DIALOG_BACKTITLE\" \ From nobody Wed May 20 19:38:52 2026 X-Original-To: dev-commits-src-branches@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 4gLMKm5qskz6fJZ9 for ; Wed, 20 May 2026 19:38:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKm3N29z3WlH for ; Wed, 20 May 2026 19:38:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305932; 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=3vB8W34gov110lDUJJcRFmy4TeSCZVnQ0u/xrcg5S2I=; b=L7Vt2CkfKPhH9xLXi2/bf0LxWLc8AYkbl61LI1xCHuvSUYmgvhUpOvN5pg55jjZw4nb08U ba62ord/D9kFywvlVi78F3vCoEuxekDFvwWSSbC3z4GY+VXFh3U1x6jFQQgoUZ9ycnmBlr 0NmqEkAqI0iIPMuKa22StP2FdYzLCBE2e4/MT4CJ4uxrj1LfBmsKYTnM/DFfYFb1UfBgJf iI+5Tz78C0OdY1cwgbnARAqIGmhcIvb8GghDHcich12G0jU1e93trUHVXIpPwBbcOpF0Bv g3FVitc/gzR8TDTpNNQmbH8tEtAxmu4TDXXIkbL1O18PVdttrCgODiKjydoQWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305932; a=rsa-sha256; cv=none; b=vwapOOvg5oT5rbHGIbGNXG0rFWct2LFgY7a1CfC8BgejzmMl1vDcto30AolmsMa0CSexBl /HBKCfajbi7VIx06/grNxIPxooZqSi2Fimln0j3xiQm32iKuhEU5OPURHNkXwGEsQCg6Wm Kka7RJwVxMMST+mzArRYM5qihhEbHfeJK/9rTt+xsS2UoCoBzw89o9+sVKOY+HnS9+BdNi E8Rpn7rNSQ9+kBUmo99MzczSikCdGj+a5paNwkVzaB9auPwW6qATad3fRc970z/s3m0/E1 we96grcG3mwuGjrvCWsHUy/4eW+BqcT4a0Iz2XCKz633pjzRh5xBf4OCz9hxyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305932; 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=3vB8W34gov110lDUJJcRFmy4TeSCZVnQ0u/xrcg5S2I=; b=s0/eg1RlCpnCCewr/RPFfPje/zL6qu0t7qhRz1nS+Ju9/gQNmEHOFez+TXoB2ArWiIFM95 cq32CTl3pm3TdJ1mOwfayPDjYd6RAbWolj4ulSfPp8nufjqJT7vw24v3PStoM01SWzvRfA x1J/OfwtUNVYthgwC5gnEp2HUybew8dxQLVyMLLSuD9nPDxsXyTOCH7YWlbl/eZfm09ayL 4gOXo4hzfHoAxoj+vQPQkyinNtHDZdqFvblPqBqBYaHQFH6GcQIVQ1YHSUhtd5NjRMpovV Knzdk3xDCRuBo+58iC0txenYx9OWIByqAg2T//EWXtGotBglXnFH7yFV6H6a5Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKm2tYPz1DfB for ; Wed, 20 May 2026 19:38:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34a7d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 43cbaf0c9104 - releng/15.1 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 43cbaf0c9104186c2b708209e8204197762ab112 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:52 +0000 Message-Id: <6a0e0dcc.34a7d.61eb6296@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=43cbaf0c9104186c2b708209e8204197762ab112 commit 43cbaf0c9104186c2b708209e8204197762ab112 Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:51:59 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: re Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index 9fb4370129f3..2241bfc970a6 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:38:51 2026 X-Original-To: dev-commits-src-branches@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 4gLMKm0JYhz6fJjF for ; Wed, 20 May 2026 19:38:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKl31RNz3WZR for ; Wed, 20 May 2026 19:38:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305931; 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=NK2ehAVamVLVVMLsH+ZwBvnqHS2/Hxjr4AIV+y2qAP4=; b=FSb9U6I2IN6X5mtL32FmpjgwS8JGIFfdLw0nIC7ep16iiIbIVL0e97d3iiNNUbQygBQSJv B8nZljPyuHnmO4sGlbkDf1yqaXzQX1BGYzDsTUQMKt7Un5IcloJyOjWwBU9B1n+2RzhFy2 GxPYKvr2SK6r5USrc7mDKNivYqs1my+LxxZUMQBPOdYUycoRlklJhLKRpHjXAOrE4EEFAw b3DWj9S/9uurgN1RjmrT2rdBclcjm/H3aG5suPe7iaFyBdLIL9d5mb9X/uw6yLz2IE3o4Q slTIS2EpNDd4dFWzLHJTIPvadAv4rjTwxtC/yajjzmAGxoXCYxz5wGTM2ly6GQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305931; a=rsa-sha256; cv=none; b=UhqNCDTE6nyGBs4BxIv5IE5G2q3O5PKFNuD101emenvWdu/xTahCxGeSRjAAI/zYkPGaRQ Jf1vinvNoIAPhAHXQANek2Wh54YznITMmlwRvQKX6ScpFjmyNw/b1RWK5ho6UJ+0mXKLDl 6sYqDtNcjfWtJ75bKVTk0mmN9FJraRG20iS564dd3jqefU6htTgQ0qfeM+tquTo/8Z/Elf aBqY6eHGRfNbsLfxJmd2Rvf9hgJrTuDEjMgz2VArl7pPHr+e0rkTnKZfIMONuiF312pjP1 bAZtt9WuYCQcp2A8wuxvACu/hABLqw4i7tMYY7QI/rzKYCObG21C1NMNj5jvKg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305931; 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=NK2ehAVamVLVVMLsH+ZwBvnqHS2/Hxjr4AIV+y2qAP4=; b=OP0gElqgLonydOmz0fkMT4kNd9eA4UtTsEPtSXuXGMqro+UzaZCI6dLXYOSM5o/F2ggki0 E387ZHlQ1KAjHm+3Ot4Xmvq1wy7cHpAJGPnJ/n5kOGS6q7J0cbvusY2r8eh7ZQnINKVnPW 7fFrrqjoQ22cRDG1fqicxkWze6o0JINBH+mKnzlSdngNUjhCBXGBDE68vPvEVyMbZl+zVX fKpqX46vP+JWBmDnf/jOqwrPbN7CTGsReh0puBKQ9dMP6tZmMZBgjBkvAsTuVZwvAFFaA1 +67yQzk3MtJGJ0ynzIfXs8kG6s8kntScoL5asxmwcCrEqsRivX0QDsCPUTnWwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKl24KSz1F43 for ; Wed, 20 May 2026 19:38:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34a79 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 87aaf3766643 - releng/15.1 - jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 87aaf37666434b88d66e15a244d43fee5f9eaee3 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:51 +0000 Message-Id: <6a0e0dcb.34a79.4e162fe7@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=87aaf37666434b88d66e15a244d43fee5f9eaee3 commit 87aaf37666434b88d66e15a244d43fee5f9eaee3 Author: Mark Johnston AuthorDate: 2026-05-10 15:15:45 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:51:59 +0000 jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() Otherwise they may be left on a freed selinfo list after the corresponding jaildesc struct is freed. This can be exploited to elevate privileges. Remove the JDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: re Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Fixes: 66d8ffe3046d ("jaildesc: add kevent support") Reviewed by: kib, jamie Differential Revision: https://reviews.freebsd.org/D56945 --- sys/kern/kern_jaildesc.c | 10 +-- sys/sys/jaildesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/jaildesc.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_jaildesc.c b/sys/kern/kern_jaildesc.c index f4e31801201f..d6a7649ec484 100644 --- a/sys/kern/kern_jaildesc.c +++ b/sys/kern/kern_jaildesc.c @@ -197,10 +197,7 @@ jaildesc_knote(struct prison *pr, long hint) JAILDESC_LOCK(jd); if (hint == NOTE_JAIL_REMOVE) { jd->jd_flags |= JDF_REMOVED; - if (jd->jd_flags & JDF_SELECTED) { - jd->jd_flags &= ~JDF_SELECTED; - selwakeup(&jd->jd_selinfo); - } + selwakeup(&jd->jd_selinfo); } KNOTE_LOCKED(&jd->jd_selinfo.si_note, hint); JAILDESC_UNLOCK(jd); @@ -257,6 +254,7 @@ jaildesc_close(struct file *fp, struct thread *td) } prison_free(pr); } + seldrain(&jd->jd_selinfo); knlist_destroy(&jd->jd_selinfo.si_note); JAILDESC_LOCK_DESTROY(jd); free(jd, M_JAILDESC); @@ -276,10 +274,8 @@ jaildesc_poll(struct file *fp, int events, struct ucred *active_cred, JAILDESC_LOCK(jd); if (jd->jd_flags & JDF_REMOVED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &jd->jd_selinfo); - jd->jd_flags |= JDF_SELECTED; - } JAILDESC_UNLOCK(jd); return (revents); } diff --git a/sys/sys/jaildesc.h b/sys/sys/jaildesc.h index fda270d62e70..77c017f7e14d 100644 --- a/sys/sys/jaildesc.h +++ b/sys/sys/jaildesc.h @@ -71,7 +71,6 @@ struct jaildesc { /* * Flags for the jd_flags field */ -#define JDF_SELECTED 0x00000001 /* issue selwakeup() */ #define JDF_REMOVED 0x00000002 /* jail was removed */ #define JDF_OWNING 0x00000004 /* closing descriptor removes jail */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 4e306148d544..a704581ee449 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -22,6 +22,7 @@ ATF_TESTS_C+= exterr_test ATF_TESTS_C+= fdgrowtable_test ATF_TESTS_C+= getdirentries_test ATF_TESTS_C+= jail_lookup_root +ATF_TESTS_C+= jaildesc ATF_TESTS_C+= inotify_test ATF_TESTS_C+= kill_zombie .if ${MK_OPENSSL} != "no" @@ -89,6 +90,7 @@ PROGS+= sendfile_helper LIBADD.copy_file_range+= md LIBADD.jail_lookup_root+= jail util +LIBADD.jaildesc+= pthread CFLAGS.sys_getrandom+= -I${SRCTOP}/sys/contrib/zstd/lib LIBADD.sys_getrandom+= zstd LIBADD.sys_getrandom+= c diff --git a/tests/sys/kern/jaildesc.c b/tests/sys/kern/jaildesc.c new file mode 100644 index 000000000000..11d751554887 --- /dev/null +++ b/tests/sys/kern/jaildesc.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2026 Mark Johnston + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* + * Create a persistent jail and return an owning descriptor for it. + * The jail is removed when the returned descriptor is closed. + */ +static int +create_jail(const char *name) +{ + struct iovec iov[8]; + int desc, jid, n; + + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = __DECONST(void *, name); + iov[n++].iov_len = strlen(name) + 1; + iov[n].iov_base = __DECONST(void *, "path"); + iov[n++].iov_len = strlen("path") + 1; + iov[n].iov_base = __DECONST(void *, "/"); + iov[n++].iov_len = strlen("/") + 1; + iov[n].iov_base = __DECONST(void *, "persist"); + iov[n++].iov_len = strlen("persist") + 1; + iov[n].iov_base = NULL; + iov[n++].iov_len = 0; + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_set(iov, n, JAIL_CREATE | JAIL_OWN_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_set: %s", strerror(errno)); + return (desc); +} + +static void * +poll_jaildesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test for the case where a jail descriptor is closed while a + * thread is blocking in poll(2) on it. + */ +ATF_TC(poll_close_race); +ATF_TC_HEAD(poll_close_race, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_close_race"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a jail descriptor returns POLLHUP when the jail + * is removed. + */ +ATF_TC(poll_remove_wakeup); +ATF_TC_HEAD(poll_remove_wakeup, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_remove_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_remove_wakeup"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(jail_remove_jd(jd) == 0, + "jail_remove_jd: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); +} + +static int +get_jaildesc(const char *name) +{ + struct iovec iov[4]; + char namebuf[MAXHOSTNAMELEN]; + int desc, jid, n; + + strlcpy(namebuf, name, sizeof(namebuf)); + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = namebuf; + iov[n++].iov_len = sizeof(namebuf); + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_get(iov, n, JAIL_GET_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_get: %s", strerror(errno)); + return (desc); +} + +/* + * Regression test for the same use-after-free as poll_close_race, but with a + * non-owning JAIL_GET_DESC descriptor obtained without root privileges. + */ +ATF_TC(poll_close_race_get_desc); +ATF_TC_HEAD(poll_close_race_get_desc, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race_get_desc, tc) +{ + struct passwd *pw; + pthread_t thr; + uintptr_t revents; + int error, jd, owning_jd; + + /* Create the jail as root; keep the owning descriptor for cleanup. */ + owning_jd = create_jail("jaildesc_poll_close_get_desc"); + + /* + * Drop root privileges. jail_get(2) with JAIL_GET_DESC does not + * require PRIV_JAIL_REMOVE, so a non-root process in the host prison + * can obtain a read-only descriptor for any visible jail. + */ + pw = getpwnam("nobody"); + ATF_REQUIRE_MSG(pw != NULL, "getpwnam: %s", strerror(errno)); + ATF_REQUIRE_MSG(setuid(pw->pw_uid) == 0, "setuid: %s", strerror(errno)); + + jd = get_jaildesc("jaildesc_poll_close_get_desc"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); + + ATF_REQUIRE_MSG(close(owning_jd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_remove_wakeup); + ATF_TP_ADD_TC(tp, poll_close_race_get_desc); + + return (atf_no_error()); +} From nobody Wed May 20 19:38:50 2026 X-Original-To: dev-commits-src-branches@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 4gLMKk5Mryz6fJcN for ; Wed, 20 May 2026 19:38:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKk2B0Vz3WXD for ; Wed, 20 May 2026 19:38:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305930; 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=ErbwvUvwZAqcPeKHWdRktVtMntDvHfvG1YS5z3Y0BwQ=; b=mw+viqeRx2YyS3DlOnd9tI7kH+whW/UlT3u+sPdNO1X2p2ZErn2X7QGOR3f4QK49bVXg59 qLbb1hXLGzcNJTEaMSJnNa91bx0fd8H4jSELlq9pLi9ctzqcd74FCyyRRtWs48yj6Xd4Vf XSHUtacYBJx8+K0ktS2O4mC3Qz8MM3rxxuFdCjyBCtbdN6cfAV2voIIrUby6UzNiTIP3SQ FM3ajAqB5CvLGhk6BtZ+pUTG0onx6UskuQ7ZIEBLRnQDAIXPot4UgVm7XeUfAB6Bp71IgS ephDQEd2L57Y7SuHQ6my7q8KlfsMyjGVpqKrpd/NEx/mAZ9QWcFEWJlRiUmSFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305930; a=rsa-sha256; cv=none; b=Gsapo6LlG7tZe+e5m8uVK/ceiuQAUJDB8Q28MPbEQzyMjq6ucPq+EgFOmCjK9Rq7OavyFX QvNkMfYOjsOwggFk/0aPZbOj9CtwR0pFdGPP6lcPr2JNi8O8gCx7oQZJ3OPeibYXWiuPnV bwzB9Wl64h1nMNWgXntue+eipYmEW327pLIYIred082f7H+aBZrIjV+fslry63p8ixgwAB MmLtwBe5yXMWZn0Zh+gJtnzU1044EPZ2hdFVfhmUYnfVOBC7cWdMBek/8yAfk3RVUrBAUf dIXjrdsCFjzI2vapOMnhuS1NWBUVrHJTm9w47c5XV8Cw0eAfQTXFWu5K4A0s0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305930; 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=ErbwvUvwZAqcPeKHWdRktVtMntDvHfvG1YS5z3Y0BwQ=; b=gisg8QrQlhCZTvnHbKiquOmbktVutgG2tPNilPhDMVfqJwkxRVKP67reX6Jpxy96rG5DYp vF679xIOY2ZqHkR9kbDg6UmI/NS6omLNS9cqOlY96euW7a6wduuxAiHngXmOt77nwhro3R iQlaTyRcTZWGLr6RCtOc7WAIXTH7w2RJ1iSxGFdrjk42HqIV93bpRF/qFAu+l5158vf+4C ifH0mr74zRl6RYhxlr2J4bubB0yUPhBsgbqurufrNSPE4rRemZFEkacKLZXNgPzGRuN+GG 1B8SVHcwVjuXQ/EXd+yir4bSILYUOMWtjS9A/9xPj7oohPizp3paF/84ZURzAw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKk1L0Lz1Df9 for ; Wed, 20 May 2026 19:38:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 374b6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 96d1f78670d4 - releng/15.1 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 96d1f78670d42984dd136c163e2f3cebc8194103 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:50 +0000 Message-Id: <6a0e0dca.374b6.2313329a@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=96d1f78670d42984dd136c163e2f3cebc8194103 commit 96d1f78670d42984dd136c163e2f3cebc8194103 Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:51:59 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: re Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++---- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 1 + tests/sys/kern/procdesc.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 89 insertions(+), 9 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index ec3b37f96148..9360ec147f8a 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -274,6 +274,7 @@ procdesc_free(struct procdesc *pd) if (pd->pd_pid != -1) proc_id_clear(PROC_ID_PID, pd->pd_pid); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -316,10 +317,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); @@ -438,10 +436,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index b477903f8053..a6be5dbe576c 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 535466c09cdd..4e306148d544 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -100,6 +100,7 @@ LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util LIBADD.listener_wakeup+= pthread +LIBADD.procdesc+= pthread LIBADD.shutdown_dgram+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c index 3334ee404518..2d710ef057f2 100644 --- a/tests/sys/kern/procdesc.c +++ b/tests/sys/kern/procdesc.c @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,8 +33,12 @@ #include #include -#include +#include +#include #include +#include + +#include /* Tests for procdesc(4) that aren't specific to any one syscall */ @@ -90,9 +95,88 @@ ATF_TC_BODY(pid_recycle, tc) close(pd); } +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, pid_recycle); + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); return (atf_no_error()); } From nobody Wed May 20 19:38:53 2026 X-Original-To: dev-commits-src-branches@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 4gLMKp1Kz3z6fJjK for ; Wed, 20 May 2026 19:38:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKn4DZxz3WZn for ; Wed, 20 May 2026 19:38:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7eo/0mmXvuay/izE6YMNpzxbJRg/SxO+kTZgdTYcho=; b=dq4L5yXaa4tZpRhc7CKQVwHbhxXh5y7pGPszheWX/QYk/PzeYaHQCB9gDfwf4TrlIy1MPa gHSrhoeb+fJJbe0lugORVY1/AjMYb1SpC2bLLvKRGMivWIkA8jll7mlegNol8Nmt7z3kNz U7ncohf3q6cdNWwPSPib32OFWFGWj0YZTy9ny/ajZxgOB1x8OYZvg8uTV+G/losMxr2dxa W6/8SdipZNzr1n9AqXgVDzs7mt0mxHJnKvFKU6blrGRqrQ/8lA38faSOHB4aT1dfJ0+eig QvD9R1bWKxOxV6QeK8B9Us4haLaq6j9acz9gxdclhD7HA55AV1nd8f5n+twNgg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305933; a=rsa-sha256; cv=none; b=m6KLWbmsjK4s81H1cL8BZKwJhlyNef1WJCb7vSw0fSJcA3s8lkZrnK/OKWtAfuHpjqwcL/ X1zMvA4Qs7+E8IgGUPY8PyHTrwkSHNV8lQ1BsLJa43WYpc1azQvY0NT0BmA4tIm/t7AjyA 6oKO1ySQQaD/HFU+lR6YmvVO/ihMyTwTwnja3KCTRa/qcBy2dIYdGHKpw7citLkqC8KnNb ChVrT8o5BZjSWx61y9OjmYO+MGERbM3G3LpdUeTWVxmSKR8RnUDCq/TfBXVTcK2uJ4ADL4 wRO3xK5LKZz0iNgahqPRHfYv35wxJ1YjkbxcE1RiLqpPUCx0zLrKC6L1tohdlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7eo/0mmXvuay/izE6YMNpzxbJRg/SxO+kTZgdTYcho=; b=H1R1lx9LjSRO5dq2TO7QQrhqbmxVoQXcY3lqzFUdPSL90qYC8MZst85U9lp7V+/6Q32GMO Kg7snEWu5CAJDcEUEe/AgHQyErvu0bSs0X8+J49sVbNOmi7rKyXf4Xuqq8+U/kl6v6sDgB ChWoxJuqhMCSnam99VYx3tAY3iUSO+LdGuvWsnL2tBgRWLLJLUCPAYCTWc6U+rxQC6fWG2 EAdf2iCgVO3WfJd9g3BspEPzZetTFbGB62yJH1/2yj7P6c0TlG4NXhQXuzT6NvFq/3wfea S+cs3PSe+XbKlax8ArqDTYTyYCqwepQOiPE8StWAKRqK9WFTQOnwRtDfvAfSPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKn3kY9z1Dsl for ; Wed, 20 May 2026 19:38:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38499 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: 290fd77a0a14 - releng/15.1 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 290fd77a0a1454ce051ebb290f8d2abd34d3a736 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:53 +0000 Message-Id: <6a0e0dcd.38499.74276bdd@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=290fd77a0a1454ce051ebb290f8d2abd34d3a736 commit 290fd77a0a1454ce051ebb290f8d2abd34d3a736 Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:51:59 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: re Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 18 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index 374d0891617d..69501adf4e64 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -238,6 +238,7 @@ struct fuse_data { #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ #define FSESS_WARN_DOT_LOOKUP 0x2000000 /* Inconsistent . LOOKUP response */ #define FSESS_WARN_INODE_MISMATCH 0x4000000 /* ino != nodeid */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 43a0d2de0d1a..1923325bba19 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2895,8 +2895,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2905,7 +2905,14 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EXTERROR(EIO, + "The FUSE server returned a malformed list")); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2961,6 +2968,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -3041,8 +3049,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -3059,7 +3065,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index afeacd4a249e..6dfda55079eb 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -492,6 +492,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:38:54 2026 X-Original-To: dev-commits-src-branches@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 4gLMKq2H1Tz6fJdJ for ; Wed, 20 May 2026 19:38:55 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKp5Vynz3Wd5 for ; Wed, 20 May 2026 19:38:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305934; 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=i875cepMoO0Cqoksc3HMzjtz0yZnqx17P7bqWrspwVQ=; b=Fk1dzOA08i3v9q+HmdkkGt4Gbqx1c/WwhyIjSSitfQh/tuw4+HToVN9klHs5sRBehQ1SPY YfBeLagLiGCwO/tbe7qxvgRzqUaB5gQNmkLhnKsGHgAEbZssBu1bE5si8wfAw6mOtK/byG MystxRuihXz1lSg62g8+fSfQI8A1GF80p/qYoqqqNqFqmThymcD6zxdgY4yZgLyKfoMkP1 MQRbBfaWMNU4VQxCvx0wOYGLhLqOdLJswiT4CiHzzB2iLx+SBodbntydxUR064Ijk8HNZQ 3lqDuFfB/fOLAe4CpvKbRAibH3XkKUacwdJM/4GdNOpUBdgiQfzj0uCHOPKBLg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305934; a=rsa-sha256; cv=none; b=sJ0m/nx/ZpYk+c0DYppwK8BXU6PzwUF8UJojrciFw73q1gH8rPwZk53BB8vJeYxgUuTlsE dSM/sqJLEPN+3AdE0vak1azfVmrhHwDdlVtAayGdA/egt5kZ2crdZthq96HOBOO6l9FpjD rbM9qMMlv6YgKeO1Fgtfanq7nj8CiUhX3nJGmevI9/rh32+7UbSBN/WszPfPdARcAd6uXh I7aF4GgX29KMmLVHstLP+zQ9KhoaLm1oB00zA0AUrfpdlHnKiiBkUvzXbdNjokyGH0UfOj a3iiMGmfa0CEKNy0gKVoWpYM8Rb/fc+WkRxiN/RDTS7eJyCXa6hCyxpB/AerBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305934; 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=i875cepMoO0Cqoksc3HMzjtz0yZnqx17P7bqWrspwVQ=; b=f0+uh8TRBIce44FEDXrewl6C+2kGXnxYDGiWuG9OR84Ou6MAwlXJi3qE08cLISzMLXtMl+ haIP//nzpTjQU3Zcs+Z8/R1EAG8REBpri6Qw9K+79ya/hpijpRdvKGzod8Y6w++6+X2a2Y 0n9wyRyjMUYwMJjKLHvC8VlnM1lSksBfyC6VC7dHs99TEaBRrAN8YvE531eQGsvmz+3teR MwojgbopPvNyxrF1NhzBq524t1jCEdbttN6bVxMrH5KKpPWxOwq6hJiQJMZmAersmL8pZ/ 6hpjrtxuhavsUSG2GrDpZ2MG/jEl7JESFzb9xy1J2vCrgu4tiKG4op32HkcDdw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKp4X74z1Dsm for ; Wed, 20 May 2026 19:38:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3850b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7291cbf77d6c - releng/15.1 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 7291cbf77d6c6a8bf535940332ee8243c529c501 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:54 +0000 Message-Id: <6a0e0dce.3850b.2d85687c@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7291cbf77d6c6a8bf535940332ee8243c529c501 commit 7291cbf77d6c6a8bf535940332ee8243c529c501 Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:00 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: re Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 85 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index a55f3c761449..9be7c82ee98b 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2679,23 +2679,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index fee0bd2ffa38..c1a5d226e990 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4362,6 +4362,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4386,35 +4405,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4657,6 +4703,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); ATF_TP_ADD_TC(tp, ptrace__PT_DETACH_continued); From nobody Wed May 20 19:38:56 2026 X-Original-To: dev-commits-src-branches@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 4gLMKs5HQ2z6fJTS for ; Wed, 20 May 2026 19:38:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKr6kGbz3Wwj for ; Wed, 20 May 2026 19:38:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305937; 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=zybHhfnVFouPFMVXrXzH6TTWWOdMKA1qFwiN3VCbIEI=; b=MHXe3acyEDI2XCSOqMkDWRyL6ow2dxOtT//qwtwKWNR3caiOJghoBuIykhi40vNvjJqSA2 JLidiJTVfHIRNxSgYhXbPYZ2urMoLdEMY0nWEx70Y5+qV1VzWLcwq4kz9PFLi3lO/h/Y2f Lw5c56jfDwyOisIildz099ipSWt6o2+oheeihOCyLG0UuMt+DfqI0SWNv1g1/3IjW8FPol 3uqZ4euhr0W1LfusiZVVclOd9ZECVS6efa6v+/FXivnjpLzvgmUPZzlK1KaIaWcs2ngbCy UF6D1WNxVsIoEcdb1Cccag4YqiI+kFJDgVn3JYAdV1O1dmS5dM2R0d18WMWYMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305937; a=rsa-sha256; cv=none; b=RKLUy1YlPD+/gbZvSikpcs17415hwQcI78QHfxq0vDyKCW5CKv0IQa3yW4GtvF04uHdDT4 kWr8HixSjMHYgxCp9c5KD+RR2W4hYo+mdTgB8W6SQzHDYXqvU5OPA0ur4PxcKGkNxcm5gD cTs2M/rX/l/is0zhapzGVzqXZPaf/CUubj0F13vjxXum0rCO5By1KGTeaRGD6C8BFIIb6z gRRY1qwT0TDdoiuy29R76mFgNG6aWfT/DhTsLHXoqmod+0yY1R4rZHwe27Usq1EEWLA+Fx F5HQIq44DbyWWHZRvHd564flFiUiRhE0ye88d/rOwk4JBiwK4U7pdDo3+TMwFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305937; 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=zybHhfnVFouPFMVXrXzH6TTWWOdMKA1qFwiN3VCbIEI=; b=xZyn3IDQ0otwN20F+Q1M/vpN1NwCXnOe1w53xb7sRoYsJy6tmvSaVfdcjAlPfY0JZpeTeg W/MQf6qSve0lPSRHiXYMkp+hmGPuBigDhz7U3d9C6ELqs4gMdEZXsdJLDUx2uGK7wx+i7m VqgbWzpCUT01zRf6nFfdVAopko7JZOGHm6xMz1OmYPoa6JhOArnqnnswcfC5iV075GmRy+ Ov2G8RScMbZaUo6f4vAoljLvVB7oroFA4q4zVO9XXhA8Uu/g/tQ620IB4veUvaLNg2Lnso fvLmV+dmiJW1xowgzDjndacD17uCW1R+SSLE0NgHqYSh5Mr8YLUINXSBXjxckg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKr62ssz1DhY for ; Wed, 20 May 2026 19:38:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 367e5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7a2a3a32e0d0 - releng/15.1 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 7a2a3a32e0d0e94ddeddb2cce47fea940209beaa Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:56 +0000 Message-Id: <6a0e0dd0.367e5.24dd5bf2@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7a2a3a32e0d0e94ddeddb2cce47fea940209beaa commit 7a2a3a32e0d0e94ddeddb2cce47fea940209beaa Author: Mark Johnston AuthorDate: 2026-05-12 14:13:56 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:00 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: re Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index 33d94a933f45..aababf76c266 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -213,27 +241,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $NETWORKS - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -270,7 +285,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:38:59 2026 X-Original-To: dev-commits-src-branches@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 4gLMKw06c6z6fJTT for ; Wed, 20 May 2026 19:39:00 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKv0vypz3X0l for ; Wed, 20 May 2026 19:38:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zy14yx68VZvHtO9TFpPPfGpiz0trin5SnkbjqiTjT0I=; b=UiObYgDw6RTOtqdyTioPiakQYtbiyHSVO/lYnwbaP9zH2jOaN9z9sj+DMZrTqyxmLzgX73 PFOUBGpE47KesXCk0I6owCbUKKj7vaJeowzVAkV74EdmwHQvhAMUDEYIpPJh4+VPXGhVHI Hw527mIdtrDc7+MycVzVtIjTpGmbUuEyT7YZAs+sz/DQKPNY/AASBqo3aL9a9SSYo0gpT0 05rwnQzNYE4KU0iy9ag8PKkR6s+S+Lsx48D0kw4fLm6HEn8L2eCXz7IE/69jsNxfwRkTH/ E48Du8C1AzmvuVRE8NjI+fjqKMOv0ch7kAobGJ9TbgqVvqc0AUUa2itqAIJaoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305939; a=rsa-sha256; cv=none; b=mOFBmbzMks6H0+aiWO8vnLBPTAoal3PH9tU0C7Q6Dwe2yduXYHA7xwQ9hRj2L25VPOK2kU ln475rk9SzWXGAymbVIjO17ldrbTJfL6fWrcy19jd2IJr3ndV/CPNR/OvoSNpWa7aoJ1MD OwkLviLtzqgjYwCYIFTOQYrs2wtfHbLgD7KRWapSKsQaxzdievYXsXE7IAV377N42s505Y hyC+q+XGxKehEVRLUWTU0X9a2YQCtzsPUcXPRPCWgSi/eJGlwxG6sbxC5FTEeklXuFpp1M kE/Nl9K6O5hUsy+0/IgxwXi4ZU5PyBCViXMgCKNxwOs5GXgdbtj5PT0xhv0IRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zy14yx68VZvHtO9TFpPPfGpiz0trin5SnkbjqiTjT0I=; b=DLJKlZl+LaytBNbWLWufMK10yKLwVXbNIPa8yA8kCTzq1BxIJtdrSzYEgCEvGZP2K631sJ 9vETdqlq2/3e36IO7Mctk3TZU01nnp4mNv8stPxMwBOoliQZha9fiO2oURaGMGWFrScZ9w KAIZoqom+SQRrNwPm5IdhmRsXd7yZA0ICDCXmS4V7Yd6qYBbBekXYVkDb0Ot8mX/Pgwv7T 1WMFUQuWjHvuCi981DkwbrKL/vW6TrC/8VDYdiPVuOePfdxD0s0Ksdl0Tlt5rNkmB0hpSH gIKNpwEn5W5ScJ+YHWq/PdLQo7ty85jRDYIHZY1kCulNsW6sbPob1G8kWn2BPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKv0Chdz1Dsp for ; Wed, 20 May 2026 19:38:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37346 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: 5a135f8b45a1 - releng/15.1 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 5a135f8b45a1dc5ce8803c8a2a56e13dedc4bded Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:59 +0000 Message-Id: <6a0e0dd3.37346.39deb25b@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5a135f8b45a1dc5ce8803c8a2a56e13dedc4bded commit 5a135f8b45a1dc5ce8803c8a2a56e13dedc4bded Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:39 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Approved by: re Approved by: so Security: FreeBSD-SA-26:24.cap_net Security: CVE-2026-45254 Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) (cherry picked from commit 7eb3fd691d64dd42f9d32e04cb9b5811fd7c8e55) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 5887fe3c407e..67eec73cae7e 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1122,12 +1122,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1200,6 +1225,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1258,6 +1286,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Wed May 20 19:39:00 2026 X-Original-To: dev-commits-src-branches@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 4gLMKw497gz6fJdS for ; Wed, 20 May 2026 19:39:00 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKw1C95z3X3D for ; Wed, 20 May 2026 19:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQ6PdctypxJN1HBeZwb0JLZHGRBdoA51LKWLwryjbbk=; b=UpPr0Z+3kRViCngLRkcKXgUl3JZ7AJpaHgjRdGiMKUbHy4/vrOthtMGCKczWf/oQQBLhiX O8xxt0IOkbn3H8wVB5iRdPbWaOkfflUl7FgLDoQgbCoYLcbGHRLgcknTaFhK//Cw5GgyEa xGcbYW555FjS/L9MolSqObtpBtyWhh67uIeeC1c2OKQ8btJoRFRkVkMt6pLan7DE5ewobo 1ttyp+c5lloNvuc4uGscwOyctwTfENGjySks737KkHOoeAaiTJux0gCglo10BKrtxiLufD X3oUCLAaLawCVgfjCHp2PN3m5XS07Ye/c0utw1REqsDboCE2TljvwrL6h7lYaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305940; a=rsa-sha256; cv=none; b=Ktlvxk+/0wEPs+uZ5nXXu/0zp27keQ0ivxbsib5yTiAcSfs6oc8XlLCye9JC5BG3NEvPJS QoRSbEEndgKjRrZ6IWVkpehBM0+GvdUsjf5AMl8jxZ2UhIuLSSyYGq5ulLW7Re0N5oR8M2 jhgUZq1qpD7ThvMTz4WFripLIEeqUP2HbhDg4uC0RFS4/9zCnwMsFOPwqm4uD9nFdHgY7k tKt2Fb1cfqZ+Q2R8WkZt09mxyE4OpNykyCkzy/PsoV7+OWKo4dhMXNpimWueQg1cGwpnFW A1PrItSigz0bFM6mKjTkUhPXpyr1jLLmzulECW5OF1i0gADDqv8wwrNehctDEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQ6PdctypxJN1HBeZwb0JLZHGRBdoA51LKWLwryjbbk=; b=E+UUvU83HHd+aWWVy7lNpPiDKWdJXXUhC6EKOuwE3XIjpn27Wx+SkS29z67JdTCZYIvO/Z 2CuOUCYz7UFKjJCrEGCl4WiXZxPIyrTojSB8WkmHDYx7N3pUU3fp7HGuJMb3gwYkXhwho7 yAXNF+hfNLO8fQUiLeQrCw8oxZqnOm6CHaRCtSyVwX6gP/6HBo8JWH6IEHI9jlHj9l+mfd BeCL3AXPtOiwO6ZKISlLsZMV+qtgYKqsmKN/R1AMc/IddXryzyGGqZcAxhNxZJgxMip2vT COJvPTaq/uunXSMcifBFdv0zT7FVqcB9Fi0ISWEQvYWBgPJz4npJwW5UBrqstQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKw0qD1z1F6P for ; Wed, 20 May 2026 19:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3784b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: 55b1142a3642 - releng/15.1 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 55b1142a3642aadbd31b64b821a4660b41551950 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:00 +0000 Message-Id: <6a0e0dd4.3784b.7a70881@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=55b1142a3642aadbd31b64b821a4660b41551950 commit 55b1142a3642aadbd31b64b821a4660b41551950 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:59 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. Approved by: re Approved by: so Security: FreeBSD-EN-26:13.freebsd-update MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) (cherry picked from commit b97f143b6ca97ea767383fc96cbf50d4f4394ddb) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 09b81d1a28cd..5fd6a377d46c 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2581,7 +2581,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Wed May 20 19:38:57 2026 X-Original-To: dev-commits-src-branches@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 4gLMKt1ldrz6fJR7 for ; Wed, 20 May 2026 19:38:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKt00YMz3Wlv for ; Wed, 20 May 2026 19:38:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305938; 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=kTd+88TxeG770QAFj19ST/fNILdB6tyYudgUcF5zooM=; b=fgYANa0rxEAz3ZXNd+sotklr2qsO4I5BuISi2h7NuD/fVUwK8PtSqzqO3/8xGxXr36I0wA kV8KJb3cYMNoZmmLj0wFwLuVFYG3fqZwdYQNvtgNvohNPAuf/Z2drDPP93yAtUpVa7F62N Cz5ap3iKrciBocD0/wn69/R+Pm2Y6c/hU4tBS/L6fwyr+NcSqf2FwwXCV8snvZk9DfQhSS FHDzpSbdSv+P8DD5kKrMtRt2dABKRYz2EJfsKrDhhvOMLNqyk2Da1p7S8o4hxCsBKQ3eOt B+K6Xj+VnpiUgVcrwP1gRE466TJ7A18KrxVXP3oAploVwiCucKcdEeCfT4c8hw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305938; a=rsa-sha256; cv=none; b=C/yVNL9CzhGWey4kR+Qbf2iIYlSNGUsIU8xnL6Qizg5J1EWeO7xvBOEggrwT7feDIE0/Zw TtBewdUEy0jONom8TsxsoWvkCOpM43XQjQJW7AP5STCBMdHEmggXxcXnYIUcyKxYhbX4Ki F5bK+HpBicfg0l5LTPurENyuk4sue/P2eKt86Snwq2+z4guaFOWoF7kuW7G4V/kXxc0rhN tJrcTcTbf7GqMqGQiFEj7bbA9saDCgbYm0NDOfBoMYVxnVkyicGldp0MFK64vbmOFsFzOd DyXac7lBsch0cPIPPR1Lld/3CRt9nLf3/HrE0tmDNtqvdguH8cVpDIIrzlw1tA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305938; 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=kTd+88TxeG770QAFj19ST/fNILdB6tyYudgUcF5zooM=; b=gGno5IRL9PhcEPJ7U80zxm/JmtlWSoxDiL8HWbuT3SDly7a0I6xYxEWwgJC/pKG4+9U8dc VnlvueJzqWNp8Gy+vON9F6xDn5hLcGkzJcHqWenFQVR9qui4QmXsgnCuM7wKpAYe321zop oz9XhrBIfjLY3DHVnF5s5R9BNJI/B1Gi1mKdglpBkQyrEzM6l5VoL2CIgAdVg778nVLLG2 6c5uD9jzttvKGCYKwuruFM+eofsXTGrInvVVn5MQhk6yfk8zDRAWMqhCHoKVyGOWh9gAV7 OBUsQyMBJzUh5jof5T1SZ7np5U4ftPzazwEpjaVoqeCsfwqWSFClRP8VT2d12g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKs6h9Sz1F6N for ; Wed, 20 May 2026 19:38:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 389d4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ccfb260ac15c - releng/15.1 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: ccfb260ac15c5fba7ee62702a5048a2c83bcb39d Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:57 +0000 Message-Id: <6a0e0dd1.389d4.2d3820eb@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ccfb260ac15c5fba7ee62702a5048a2c83bcb39d commit ccfb260ac15c5fba7ee62702a5048a2c83bcb39d Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:00 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: re Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:38:55 2026 X-Original-To: dev-commits-src-branches@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 4gLMKr1mzXz6fJTQ for ; Wed, 20 May 2026 19:38:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMKq5pZHz3Wtj for ; Wed, 20 May 2026 19:38:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/o7P3RY5A4GT2kd5ajQy/3sEprOqDe3izaP5s84q6xA=; b=Wj9ycgipUPuJ1QaVBg0E6zxTPkkkHWSwMLj3QddzRXGMjiMg3TcTatpASMr/a9bCI2gSQC vvd2OoVZbNg48+eFzVlPZAM/TvBUi9cAjgkCzPNukp0v0IG3kUQeu5cZZtsWvwxPI9Uj/6 uBLhJ08UyMirL0LqczMjat2PUr5Equ5scY9nTLrCGw+mztqe0v3bdGx5NOypajAyelJgem Pf1veegBr7oarAjMsPjHotRPj0pTBumOn+4wcG+YvTwlZXW0AU7MBAuCKUEuQX4/CyMx7k MsKaQ+CfCkZA6JJ8v1/c6pRMjBAreeZkxcbz1E3fnfRak1pWrfZ0uXROeIZwng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305935; a=rsa-sha256; cv=none; b=Yso6gGQ7ntufWh0AsPseId8LoxOcaAZuM/fJ99vRFi7bPKj2TTNZ8J0mBcpGwymBV+m6vF dOB0gWhVD/wFU4ryFEfdBeVD1PJUlZLiDVPS1vCSGxkZvB1CN0JnI82+y3uHN6qUUUZBOg ptoJBAIHca38ebFRBkrK2ZIvF6FcY1v21nEPhZhmjCf/YiVlqlCq4Miz/b9/tZ7oFn9ygG YkGkKkHjcbapJjd0ab54Lpm+9LZo0G3Kx5wiApHPvzBEcO/+vihwjFU6WyZoR84rQ44l/5 q6ZQNZuUSCb1SpinsXUuSpX9nGH3/I5NvbRMHC2Zgme51PssxjFp9I5E1nW4QA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/o7P3RY5A4GT2kd5ajQy/3sEprOqDe3izaP5s84q6xA=; b=JtbHRKT3pxt06Mv2uFLmR/aAlDkyijv6XTFtRHaSEB4jS2ZajqGafkCmDJ8QzIdeZOciid BZY/jiBucE00QC38Egdh0u5V71dtWD6iwa/b7joConhin66+zbZwTE1cs80I5GX0IX+xHr 825CbF3cPDEWCOO8GnooMwEY/drhMn1m7Fda00vQwS3dQVeRJI8jWs+H88PO3GyXvneTMY KOAdsy1MkQKm3lbdAphFv6cTZiNJSRFjjJW0Xk3xjAYvSKcoAYiXFvqjPBrCOtdaaCOoMJ MC9nLkfFf42rc6MmXIX/sjjIUE1oCwPmHP9TBIu2nJdDmrLYjNZNoBZCfJOxvQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMKq5Lwpz1DfD for ; Wed, 20 May 2026 19:38:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3928c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:38:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: 08115d3004e1 - releng/15.1 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 08115d3004e1249652fc786976e40edcde25348a Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:38:55 +0000 Message-Id: <6a0e0dcf.3928c.5dd1d070@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=08115d3004e1249652fc786976e40edcde25348a commit 08115d3004e1249652fc786976e40edcde25348a Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 13:52:00 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: re Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 187 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 11 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 262 insertions(+), 141 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index df58f48d78eb..b951de58d229 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -222,10 +222,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -235,55 +231,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 70418db50085..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,7 +30,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include #include @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -71,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -81,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -101,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -110,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -153,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -166,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -196,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -329,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -417,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -429,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index 4b6c72fd86e8..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,6 +1,13 @@ -.PATH: ${SRCTOP}/tests +.include PACKAGE= tests -KYUAFILE= yes + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:39:28 2026 X-Original-To: dev-commits-src-branches@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 4gLMLS6qPMz6fJbG for ; Wed, 20 May 2026 19:39:28 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLS4GDBz3XlF for ; Wed, 20 May 2026 19:39:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305968; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rjhEXGm6QZU/6Z4zgcrNSRfoEXZTiJiHU1UFdctDzeo=; b=xmUO18YZE/YmaJ1QfS/R04sXMnC6oWIDCk6/Q0joxlwPWhQs3sVTNcHinhGkIXtdu1LmRI xu+FovLsr7EK77+F43E/gss8Nk5JZKJEOphsIoDDd9qPxOiodDjGAIcPhYNl+W8yRRDap9 r3YKJn/yWeVCOH3nKR29upe4JF5mohfeLehRgygcQruC1n2M36jlHQzQ9oETGS9AjQT8lw Pu813Wik7Yo+sTLVOy8m8vwkQVrWGmtolgF5yTFZWaMEnr0iB+GDFNts4VVBq5ruTMKvcp cRLQjTivaAs0v+jokP5YxCoxx2wMQr7Irjw+5AT4WIAIOYCScE4/fxMjaexJMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305968; a=rsa-sha256; cv=none; b=DJQ18KEu+f+dqRPP+yOmzubpk9RIPd0iaShsLvB1j+wq96LZK/j9udqFR3w1hiMKFhVvyJ YUFOFo7EI4s0CRic+JisALFhoz4/qVhSVSWmu7nKJTP25J4RWOPDu8o/sT87fBm0bA28sj A+LL2m8iLQ/8m8JvS7dEP8OYkyuDG7JNp/RnIW4YW8hfiGf2cUyPefkAbQlqp29ATdxuoJ SuVAX4x8vQZgRyqAQ4YrHeKOqs7v1bIpZPj91LXdzT41E/B6rLD81bgnZDX4wWpARXSTHM t/uO5iUXil3P+dbRZUb4fZ1t1OcXbVv1Wzp8bKAXzNRyHFB2H42v8zmoklbQ1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305968; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rjhEXGm6QZU/6Z4zgcrNSRfoEXZTiJiHU1UFdctDzeo=; b=HgDRYMhokceRXVgCrWuh0mh4p8Qv0GK2lYNt2gi3+2i13/hlzwnNcUHuRSFdQXLKoirAi7 tGee9RKv6mnjrv5aktIMAehC30/lahgtblDdKukY2qcx61c4fjixoq8di/pe4vkgg7nuwx ukJQOvDFipV6lELN2CQVSnwxTh/GhDB6En/fHdCdShaqsl5u2uaji30b0zpgD7fUBpf/eD KOt8mn4HM5QZc9z9A4PClXhC0SSjA02L13xPLFucYpHc4v2TzWI1x7HdG9Uqhvo6SpQSgP wl+MqU8xcluoDctaN5ylVjGhCJ2RKNmcs/izfdEO7PmWkSsrzMzo3zasUAff+Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLS3ptHz1F47 for ; Wed, 20 May 2026 19:39:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 368e7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: d98c0a494a42 - releng/15.0 - setcred: Fix buffer overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: d98c0a494a421b40f727356bd892d25041c5f90d Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:28 +0000 Message-Id: <6a0e0df0.368e7.1865b2c@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d98c0a494a421b40f727356bd892d25041c5f90d commit d98c0a494a421b40f727356bd892d25041c5f90d Author: Dag-Erling Smørgrav AuthorDate: 2026-05-07 08:06:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:24 +0000 setcred: Fix buffer overflow Since groups is a pointer to a pointer to an array of gid_t, we should use sizeof(**groups) or sizeof(gid_t) when calculating how much to allocate and copy in. We were using sizeof(*groups) instead, which meant that on 64-bit platforms, we would allocate and copy in twice as much as we should. Unfortunately, in the smallgroups case, we copy into a preallocated buffer which has the correct size, which means that if sc_supp_groups_nb >= CRED_SMALLGROUPS_NB / 2, we overflow smallgroups. This is a direct commit to releng/15.0. Approved by: so Security: FreeBSD-SA-26:18.setcred Reported by: Ryan of Calif.io Fixes: ddb3eb4efe55 ("New setcred() system call and associated MAC hooks") --- sys/kern/kern_prot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 0b7dc2169335..02f83360885e 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -554,10 +554,10 @@ kern_setcred_copyin_supp_groups(struct setcred *const wcred, */ *groups = wcred->sc_supp_groups_nb <= CRED_SMALLGROUPS_NB ? smallgroups : malloc(wcred->sc_supp_groups_nb * - sizeof(*groups), M_TEMP, M_WAITOK); + sizeof(gid_t), M_TEMP, M_WAITOK); error = copyin(wcred->sc_supp_groups, *groups, - wcred->sc_supp_groups_nb * sizeof(*groups)); + wcred->sc_supp_groups_nb * sizeof(gid_t)); if (error != 0) return (error); wcred->sc_supp_groups = *groups; From nobody Wed May 20 19:39:27 2026 X-Original-To: dev-commits-src-branches@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 4gLMLR63Jdz6fJkl for ; Wed, 20 May 2026 19:39:27 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLR3zXgz3Xkp for ; Wed, 20 May 2026 19:39:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FCCLIEtyA4yYodkZUwuUqp3cEhIo6bdCSmL694DfAbI=; b=IygaoKzqjokODd2oU5pgCZlVVNl73J6MqO8JcqfNyeusWvRfH1wmqVP+Xk946l6hnJxO9m tf8SFos+eRXGiuRYv39l5VfcQnFwyw2Ox9HH3KI+u+cnXFuchQMKyL/kO2+Vzn898zNLX3 4smOBlX83C2/unQ0UHGgJlIIKi8fDFoHxUmOgMEbezSDnZaPAnYGCGLnKCxF0YKdeMm2Px NxvrPAr+Eqfv8rATSjHh77kq9egEqK/Z0qgwugax8sNvRn07MRHrpEEwHJeMt2eL5ny4lQ fPwIK60H8LZdSaF/mvE7mPbttn/klWjnpEpNuxYUhmcaCfvbE4TGeJf5Cdf7jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305967; a=rsa-sha256; cv=none; b=P5BbJGuUePzoaZC+HzAqq+PxYdmOJMzPgGytnUfi6eIgEGxM+81ZAY2WAe1MwthZKmct+I 4e+bzr6qlhkx++ORyQ84lVJQP3tIz+sk1Sruzy9ts8UUPvnOsTymwTomGiNx1wz5lyOEpx 9vVhLJdDz6GscMmROfKJD80GtZ2ImLNkOw3m0nwRVrDhCa4h+VYQ3Ox4HOCGfWsRH5Afsl +T/IanZ+2sCW6ZtgJMIsHgvhsU1nfLwfAzLKQDIM05IrJhWKSqach6/p9Vrni4OkT/+aOg Mv+iPTo5JZ+o38+9fyUanLNDMHIDXtbCXWqTk5KJm0YOoXpOcy630xn1eSRZZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FCCLIEtyA4yYodkZUwuUqp3cEhIo6bdCSmL694DfAbI=; b=PrQ4xTrQh49xmhN+y4RYLqeujwFV28DI1kicWDZkFioscBNQCsPx8q3fH//nRKKtgMnQ/Q VjF4V5OnpxgBN6Yl5VitFqUyQ1Js8A/7YPNFneRtScRhmXY/VBiLAYKyirakqV2LqaSQa+ YKMaVmA8ceNixP1pCdwoqKYvpvXi1Q7pg/pNB4erxdnyaUtZDYbZSzX3oXTMkiEBDyitTo 7NZsWvXJwlZmvxwhSflHS/d1EO0fr7Ca7HS7pg4ma1mmDnqCXxDmWWufEvbP90R5dXGVXj Ndaxk6SR5YSZ7n7frVw0ufxo8SwB0Ft1wFOdd1y/rpc9Q9rm2+budY8RcaWd5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLR3L20z1Dsr for ; Wed, 20 May 2026 19:39:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 388c4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: 2709755d39f5 - releng/15.0 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 2709755d39f5df1f9d0e12eeb447535e23080d6d Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:27 +0000 Message-Id: <6a0e0def.388c4.54e8c15c@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2709755d39f5df1f9d0e12eeb447535e23080d6d commit 2709755d39f5df1f9d0e12eeb447535e23080d6d Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:24 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. Approved by: so Security: FreeBSD-EN-26:13.freebsd-update MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) (cherry picked from commit b97f143b6ca97ea767383fc96cbf50d4f4394ddb) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 23f1106e3bde..e0df876cba67 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2576,7 +2576,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Wed May 20 19:39:29 2026 X-Original-To: dev-commits-src-branches@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 4gLMLV0sXsz6fJVM for ; Wed, 20 May 2026 19:39:30 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLT50W4z3XtL for ; Wed, 20 May 2026 19:39:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305969; 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=i7M4Kygpg4aPYIwJGk9VUJnUOZ8nlo33isUD8GJ8ECg=; b=kdFxqIdXB43l8OLu3qsCYfuefWPpqPY+TjXAaf0ntBWPjvodaAH4YA5FxhpJbl9Wz3mbsp dl6YpMA9o2J1l0m7/Ohj1qKGnw5TBN5XFtuQ60YB5rOQ91jHvCH2FOne4Mxo+K0YhF+39i xNh1uQYP+a6vUvLsQltynI9anLcaCyihnvKxP1oQcLXNw2XGb4ayl/+iOUlHeqTmV/ycm+ yyOTRVKa8AfDZPQBXV8VXGZhODxR/AhxT7pF7MYIcWX2ionxEkLlbZUk1rRNYrk0vpiALe V8p/e6751URaUh1ocY9JQfkCb8iNcPfWr0IPWDOwthw0p9y3tLgpqelhqERgxA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305969; a=rsa-sha256; cv=none; b=eJU93nZv9QQLKZ1y0JDhAqsXzHUplrPN/gzrhNH2W7upn0jg3LZ+9qC5X/eJWc6ibHiinC WAWLmhzyHQn+Xw0N9ETk/RO3YJM3iS9EuZUoq7BDECacFBSiu0jbqSvV3/ov+ckKtotGaI P+n4VCsg2uFvViuN7u6sHPwT1FrnGhH77JYTSHCnX4l2ZftTHc0inNVdRJqBtPUqLUESLn zcdm1PPDsZZHPcYkUksJa76eBlWgQfC2e5fAxmi9166cA66RaQW55HeN72D2e6h6WrjefL 6n0Ut28Q7BaYXmls2CfB613e8K15O66AUmPh+3Thsh0cPPf6qQubrsUiOZMp0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305969; 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=i7M4Kygpg4aPYIwJGk9VUJnUOZ8nlo33isUD8GJ8ECg=; b=uKaT1aC+O+YYKRqZCCmJLukMojR/OgNz9SksIFcsAyCJMXxOVEBuB4YiWB4UEdwYorYGjq L28TszYZj1x5iGKiV4OXxRZH2Lq/cF/ftb+UYDdhw+HvtBR8yrmy2dayHEy5+dCfhpARqF sDMwPc3fz4BkNexbpzKtXwzWeB7BwqUMnUwMGNQEeQMM2DgJ9YsABNXqi8fnsjIq1XvO5d BGcj9lEWoJA1DYFMJ8RlT7Q19uIOwF3eqA1g4B4f2bj8moPB+7cnv/D5t6yvjKoYY69qFa 7fhZBsQM7nHxbk1ntbSH0aseXbMHC4CAgGVfmx8sethGQEW4R3SgysjjCrWWSQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLT4MXLz1DfH for ; Wed, 20 May 2026 19:39:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37639 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c301b76a0054 - releng/15.0 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: c301b76a0054bdd81e4156e5bb3a6f5741ffb8fe Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:29 +0000 Message-Id: <6a0e0df1.37639.6eadf6e5@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c301b76a0054bdd81e4156e5bb3a6f5741ffb8fe commit c301b76a0054bdd81e4156e5bb3a6f5741ffb8fe Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:24 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++-- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/procdesc.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 8 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index 11bd1b6f30e1..5b03bced4bf3 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -270,6 +270,7 @@ procdesc_free(struct procdesc *pd) KASSERT((pd->pd_flags & PDF_CLOSED), ("procdesc_free: !PDF_CLOSED")); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -312,10 +313,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); return (0); @@ -430,10 +428,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index 81102dffa6ff..56d625950a80 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 9044b1e7e4f2..5c2290c67b8f 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -31,6 +31,7 @@ ATF_TESTS_C+= ktrace_test ATF_TESTS_C+= listener_wakeup ATF_TESTS_C+= module_test ATF_TESTS_C+= prace +ATF_TESTS_C+= procdesc ATF_TESTS_C+= ptrace_test TEST_METADATA.ptrace_test+= timeout="15" ATF_TESTS_C+= reaper @@ -95,6 +96,7 @@ LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util LIBADD.listener_wakeup+= pthread +LIBADD.procdesc+= pthread LIBADD.shutdown_dgram+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c new file mode 100644 index 000000000000..7505e0e4bb94 --- /dev/null +++ b/tests/sys/kern/procdesc.c @@ -0,0 +1,128 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* Tests for procdesc(4) that aren't specific to any one syscall */ + +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); + + return (atf_no_error()); +} From nobody Wed May 20 19:39:30 2026 X-Original-To: dev-commits-src-branches@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 4gLMLW0xYvz6fJpD for ; Wed, 20 May 2026 19:39:31 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLV5YlTz3Xnc for ; Wed, 20 May 2026 19:39:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305970; 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=GP8/OOf1eWXH/yabQVAxX4+8AzCIgAXUIh5W2hLIV8g=; b=ZYmWOQcHnWy4BSQlR+2cVq+0aaowCCxOnvAJjyPvNvTRTrHW2bZFGRzeKxztrl2YoCQQ+E ho7uhrnqR4NMp/zLgVHEsUZj6u+7MMkjCkKIQkCd5Ysogr9zE/1g0fTftGG+lkhmjO+7pc 4KXZrtx458nQ/KW1Mxur38S4qpzK1co/nXUuI3ccUAUtxp96b632C0jw9E+T2jPxScDn71 U7tXNpuaBRNVcqQpHbMnulRKRJzDllT5BNzUVZSyzzlq5Av+DDCV+eej0KKgHCn5brfl+H US26bTE5QUobb33LpZ6Kn1hqK6tnq8M3+/bX8t8XzljRUxbGV3aY5SZhtbi+mQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305970; a=rsa-sha256; cv=none; b=T+2JxRhOjRq0hDEiOrNdlvNc7+DvNSzjgWn8ex4janfWEAZqrshDcb5D5HaWTJ784pA3XO xKKgGKRvsGz2+CRwG4/xJ5Tk37rqH4gHWgxiXJhVUR8HCGz4JBCxlLDMq6PyQPQN6DevfG 4Ywjg5bEakzZwfWDylDI38CJxk0511mxgF5WOGIg+Qn/Iiybm1g9Go5SzhJHLgSkxQwOTi rwHTFaU/tcAlpHFF5c6/VHihfomq1tyR+V0iqhxzZls2k/Vbt7OdPrYHr8PbFmnUEYxnGp ZntbJcqr1u9xdApQEtMQ0h+YsWbt/U7CrR5xUxeHvJNa77x5mX7IG1+6A6vf6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305970; 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=GP8/OOf1eWXH/yabQVAxX4+8AzCIgAXUIh5W2hLIV8g=; b=k+z/11E5TBS4+RD7FBskXNJxf1RJ3IUUwR9fFcd1TEsz7UZeLkfLUX51a4ivFHcRgULdl+ dZq9LMTVhfneygeMBkF1gcdfdQeTQjlIiuwGhER+BfE8zeZ55AVAhyDlIxmxGzsSDxDMWp S6IeM0FtcJqudG3QVRGMaKhCQtvffmjXncbYoSUbCFMy9sy47VT7Ijs5+rimGlTmDCNtgc SrPSHOnIJ1Jq5nCr34V2wm63gPp7Fu4XR7KAQ7kBe7AaWJLYkbWEs5Sr/r8RnpZFDRK2cy uu1n4sjO6d8omVlzq4J4Z0bt/iN1uCsZsR/RR0bfzoEdqS3WjVd2QwHI6fw3zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLV522Lz1Dhb for ; Wed, 20 May 2026 19:39:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36570 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7363574d68ad - releng/15.0 - jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 7363574d68ad17a7d56f6025f41597f28baca6f1 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:30 +0000 Message-Id: <6a0e0df2.36570.56cb3708@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7363574d68ad17a7d56f6025f41597f28baca6f1 commit 7363574d68ad17a7d56f6025f41597f28baca6f1 Author: Mark Johnston AuthorDate: 2026-05-10 15:15:45 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:24 +0000 jaildesc: Make sure to drain selinfo sleepers in jaildesc_close() Otherwise they may be left on a freed selinfo list after the corresponding jaildesc struct is freed. This can be exploited to elevate privileges. Remove the JDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Fixes: 66d8ffe3046d ("jaildesc: add kevent support") Reviewed by: kib, jamie Differential Revision: https://reviews.freebsd.org/D56945 --- sys/kern/kern_jaildesc.c | 10 +-- sys/sys/jaildesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/jaildesc.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_jaildesc.c b/sys/kern/kern_jaildesc.c index 3f322b271400..679416e8fe28 100644 --- a/sys/kern/kern_jaildesc.c +++ b/sys/kern/kern_jaildesc.c @@ -197,10 +197,7 @@ jaildesc_knote(struct prison *pr, long hint) JAILDESC_LOCK(jd); if (hint == NOTE_JAIL_REMOVE) { jd->jd_flags |= JDF_REMOVED; - if (jd->jd_flags & JDF_SELECTED) { - jd->jd_flags &= ~JDF_SELECTED; - selwakeup(&jd->jd_selinfo); - } + selwakeup(&jd->jd_selinfo); } KNOTE_LOCKED(&jd->jd_selinfo.si_note, hint); JAILDESC_UNLOCK(jd); @@ -257,6 +254,7 @@ jaildesc_close(struct file *fp, struct thread *td) } prison_free(pr); } + seldrain(&jd->jd_selinfo); knlist_destroy(&jd->jd_selinfo.si_note); JAILDESC_LOCK_DESTROY(jd); free(jd, M_JAILDESC); @@ -276,10 +274,8 @@ jaildesc_poll(struct file *fp, int events, struct ucred *active_cred, JAILDESC_LOCK(jd); if (jd->jd_flags & JDF_REMOVED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &jd->jd_selinfo); - jd->jd_flags |= JDF_SELECTED; - } JAILDESC_UNLOCK(jd); return (revents); } diff --git a/sys/sys/jaildesc.h b/sys/sys/jaildesc.h index fda270d62e70..77c017f7e14d 100644 --- a/sys/sys/jaildesc.h +++ b/sys/sys/jaildesc.h @@ -71,7 +71,6 @@ struct jaildesc { /* * Flags for the jd_flags field */ -#define JDF_SELECTED 0x00000001 /* issue selwakeup() */ #define JDF_REMOVED 0x00000002 /* jail was removed */ #define JDF_OWNING 0x00000004 /* closing descriptor removes jail */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 5c2290c67b8f..8a2788470a8d 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -22,6 +22,7 @@ ATF_TESTS_C+= exterr_test ATF_TESTS_C+= fdgrowtable_test ATF_TESTS_C+= getdirentries_test ATF_TESTS_C+= jail_lookup_root +ATF_TESTS_C+= jaildesc ATF_TESTS_C+= inotify_test ATF_TESTS_C+= kill_zombie .if ${MK_OPENSSL} != "no" @@ -85,6 +86,7 @@ PROGS+= sendfile_helper LIBADD.copy_file_range+= md LIBADD.jail_lookup_root+= jail util +LIBADD.jaildesc+= pthread CFLAGS.sys_getrandom+= -I${SRCTOP}/sys/contrib/zstd/lib LIBADD.sys_getrandom+= zstd LIBADD.sys_getrandom+= c diff --git a/tests/sys/kern/jaildesc.c b/tests/sys/kern/jaildesc.c new file mode 100644 index 000000000000..11d751554887 --- /dev/null +++ b/tests/sys/kern/jaildesc.c @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2026 Mark Johnston + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* + * Create a persistent jail and return an owning descriptor for it. + * The jail is removed when the returned descriptor is closed. + */ +static int +create_jail(const char *name) +{ + struct iovec iov[8]; + int desc, jid, n; + + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = __DECONST(void *, name); + iov[n++].iov_len = strlen(name) + 1; + iov[n].iov_base = __DECONST(void *, "path"); + iov[n++].iov_len = strlen("path") + 1; + iov[n].iov_base = __DECONST(void *, "/"); + iov[n++].iov_len = strlen("/") + 1; + iov[n].iov_base = __DECONST(void *, "persist"); + iov[n++].iov_len = strlen("persist") + 1; + iov[n].iov_base = NULL; + iov[n++].iov_len = 0; + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_set(iov, n, JAIL_CREATE | JAIL_OWN_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_set: %s", strerror(errno)); + return (desc); +} + +static void * +poll_jaildesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test for the case where a jail descriptor is closed while a + * thread is blocking in poll(2) on it. + */ +ATF_TC(poll_close_race); +ATF_TC_HEAD(poll_close_race, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_close_race"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a jail descriptor returns POLLHUP when the jail + * is removed. + */ +ATF_TC(poll_remove_wakeup); +ATF_TC_HEAD(poll_remove_wakeup, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_remove_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + int error, jd; + + jd = create_jail("jaildesc_poll_remove_wakeup"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(jail_remove_jd(jd) == 0, + "jail_remove_jd: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); +} + +static int +get_jaildesc(const char *name) +{ + struct iovec iov[4]; + char namebuf[MAXHOSTNAMELEN]; + int desc, jid, n; + + strlcpy(namebuf, name, sizeof(namebuf)); + desc = -1; + n = 0; + iov[n].iov_base = __DECONST(void *, "name"); + iov[n++].iov_len = strlen("name") + 1; + iov[n].iov_base = namebuf; + iov[n++].iov_len = sizeof(namebuf); + iov[n].iov_base = __DECONST(void *, "desc"); + iov[n++].iov_len = strlen("desc") + 1; + iov[n].iov_base = &desc; + iov[n++].iov_len = sizeof(desc); + jid = jail_get(iov, n, JAIL_GET_DESC); + ATF_REQUIRE_MSG(jid >= 0, "jail_get: %s", strerror(errno)); + return (desc); +} + +/* + * Regression test for the same use-after-free as poll_close_race, but with a + * non-owning JAIL_GET_DESC descriptor obtained without root privileges. + */ +ATF_TC(poll_close_race_get_desc); +ATF_TC_HEAD(poll_close_race_get_desc, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(poll_close_race_get_desc, tc) +{ + struct passwd *pw; + pthread_t thr; + uintptr_t revents; + int error, jd, owning_jd; + + /* Create the jail as root; keep the owning descriptor for cleanup. */ + owning_jd = create_jail("jaildesc_poll_close_get_desc"); + + /* + * Drop root privileges. jail_get(2) with JAIL_GET_DESC does not + * require PRIV_JAIL_REMOVE, so a non-root process in the host prison + * can obtain a read-only descriptor for any visible jail. + */ + pw = getpwnam("nobody"); + ATF_REQUIRE_MSG(pw != NULL, "getpwnam: %s", strerror(errno)); + ATF_REQUIRE_MSG(setuid(pw->pw_uid) == 0, "setuid: %s", strerror(errno)); + + jd = get_jaildesc("jaildesc_poll_close_get_desc"); + + error = pthread_create(&thr, NULL, poll_jaildesc, &jd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(jd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); + + ATF_REQUIRE_MSG(close(owning_jd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_remove_wakeup); + ATF_TP_ADD_TC(tp, poll_close_race_get_desc); + + return (atf_no_error()); +} From nobody Wed May 20 19:39:31 2026 X-Original-To: dev-commits-src-branches@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 4gLMLX2V0Zz6fJSC for ; Wed, 20 May 2026 19:39:32 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLW6Kj9z3Xnt for ; Wed, 20 May 2026 19:39:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305971; 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=WRBpvF7SGlJ6kCOFlKPXWi9UD9HJT3PKZT9z+D8FFnI=; b=S63POdnOhbWRUggEaJhsowjzYnYGWC16e995OzVkf2taAS5JaXoblq49DCVEXUM4txWCHq B1k6gbQK3ju7VtJ/v1VcaHdrMdz5YgrOg9/vvemH/VcFxLmA3No3RzUn15dtnDl8kzd0vf adExyPuakRnmXGOO3116ai2qPQPXKNAzv4h55x2IiHrtRRIuz7HtRU/JXbLqrHP/N/Yb6Q n8EgqfpEGZS9g4guMlS4QFbq+Rq5t+JMBc21DwT53tQU032T1lv8T9EGNvvzISCF7lD9vd 6KvqM9RkTyPh49pghg65k3WSPWR2mYl5gOX/R/MrAscu1F5fsB25byOlY9e48Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305971; a=rsa-sha256; cv=none; b=iyJ/QR3L+xQUT6geLj9mVCi03/B//CPQ25ZlpoKCd9HmkGXHH725CNtWFjO2PhgA1Bc+AL t2stPN2FVCgr4prqo2R5ghh2j+VghzYM9OVR6TT6JDTNEj/ExLgGcWUyTtqzcWs52gR2Pe aKeAO5+gidg2ZWNE42lkjOuR0HwK021OiCHKjRxSs7A78s4x2UcrO2DjXtemJd/olKE1Jm S3eNchO+K+5WYYudZavxqLi6tgJnXhewpx9m2qkSfIxS91tW4QU+yCHRVjrS5MjQZVbbmg 4U4gCAAcH4Tg0bGztiYIyAG1ILGaWoMTduIZmfE1fBv2QKbT9zPaWD4gqlit2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305971; 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=WRBpvF7SGlJ6kCOFlKPXWi9UD9HJT3PKZT9z+D8FFnI=; b=X8UGKMwLJUjynp58UCkgqn7RMA1YQXCkUW9bJJWWUzeR916d5tuHl4ZeBJ78/Mq03wD/wI mpMJSZgD4tz8w9sAZxyGiwCuPDcuuqeyN5G3VlTVc57Fni2/0tRVT3y2AEmHY++h4XhJei VAlN4Oc7U8ksDMCmU5d83i9GBKTwjIOv+AG8WZhn2HhfwZ7T4KPFGE5kz9UxL1akbvSx7U cRPZBVMMEbHq5xtRxw7i+M8GKRofq/SdG2u8xTSIVhUbxk4/E29vm+d1IJtSlLpdW2Zzre NxO8r8XixnfFB/tzDGTYzUKaSFFIFaukzC+idmCDomwXYiQ/IVJ6d1ZQMC6YEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLW5sPCz1DXs for ; Wed, 20 May 2026 19:39:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 368ec by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: af79f4148450 - releng/15.0 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: af79f4148450d6cfc401ee5ae5c8dfe2d5143ede Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:31 +0000 Message-Id: <6a0e0df3.368ec.779e74d0@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=af79f4148450d6cfc401ee5ae5c8dfe2d5143ede commit af79f4148450d6cfc401ee5ae5c8dfe2d5143ede Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:25 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index ac267a66d669..2f4d400c0ca1 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:39:32 2026 X-Original-To: dev-commits-src-branches@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 4gLMLY32Ndz6fJmV for ; Wed, 20 May 2026 19:39:33 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLY01dxz3XxF for ; Wed, 20 May 2026 19:39:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LhFb5aC4690rYmHh2J4UESPjmdWwMpHeNZ/6/dJ2djo=; b=WPfFDzP44r01T8aTOcTjl85N1DNllaGUmE0U2R3FxKbt1wcGOGx9yJL+/AkYLmWu8wmxWJ td+pVexyzTVyU+JaA1S+Y5z/ZymfQC/FspIa6ocpi1KJGpsIxw6feMRMM5xMFgB4FRzzFh 3Kbb+kbFJN5ZldUI2IJ366QlKxPnkLqWFmrt+huWATTlKvyy6pZTjajxleUSjZK5OXC5dK zNTnpuBlX6JjxgDvt6LQSprowd5Z5ByVRIpnZVhEACicrOKcLBLj8/mF1YEJ4IGMzm4RIv EfUE95uhwHvBcGvNeFXAyeco+lojpYWaOczDbd8Fo7fzV5GLLm2Myc94W+YTng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305973; a=rsa-sha256; cv=none; b=KDljymDw4aVPb5MfFY7NZJ/Pith0zgt26Ma+At0mBV6tthj0ZShd0afTvMWsQv9tXZjDqB ceQjTj0EBAsNFb9A2fY830sodY7f5jXCIPn60f8DcTFvxqG0lampaYG8q2zmHg9TwVRUJz TGvo1bFml2nKwUK2wAL+VLHSv3KV+YfaPqIT6iSz0Vk0k5fG210XOeIBNfUkq6PQQf5KGM TGaP3J476/7XLvCrz5n942kHqeyDBYNtrGcysZv2LxwdcMWDVclMEw0Ysr1U98HIyXqTk6 0N66OVFb3D65whfVPtuTqjonA17nsk1qZMc7wQB53iPbg4ZriEz+FxLEXwhVXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LhFb5aC4690rYmHh2J4UESPjmdWwMpHeNZ/6/dJ2djo=; b=IqbrwglYMHa6qQObjwYIKu2g58X/vC7EzhVIA9QnQF0jVLbkn/BHKGaoqqWTk1YpBu1ONk u7qSmnAb7b4egE2ft2EfpC2iFngUA3wIHRo7Yr2N8uuS7NW07vESPkKvHZylFiC0xuIkSB jQJ5jXpqbpRrUIG3+qgoD2lblCdGSiZQub3FWJhrEBrpmdK+IB9NYxJhL7PshtZgas4go6 TVNvJ2F5wWtN/12J2Nv6sAo1wMFPhNrNZej3WOiD7G/uKTyyJOpnK5xfpMevR6GVU+/m2x rOIan9TC2O+5mzjGaAktK2UM5v0WMuYn5H7K0OcwKFeJhBrYjdTiLTEulcnhLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLX6gZsz1Dc2 for ; Wed, 20 May 2026 19:39:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39136 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: 0dd8b983db3c - releng/15.0 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 0dd8b983db3cd8c104264b4bafa37a913fe06546 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:32 +0000 Message-Id: <6a0e0df4.39136.282ae20e@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0dd8b983db3cd8c104264b4bafa37a913fe06546 commit 0dd8b983db3cd8c104264b4bafa37a913fe06546 Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:51:58 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 18 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index d9d79f38c269..5ba177943400 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -240,6 +240,7 @@ struct fuse_data { #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ #define FSESS_WARN_DOT_LOOKUP 0x2000000 /* Inconsistent . LOOKUP response */ #define FSESS_WARN_INODE_MISMATCH 0x4000000 /* ino != nodeid */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 00ad11108ee0..91f258e87a46 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2841,8 +2841,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2851,7 +2851,14 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EXTERROR(EIO, + "The FUSE server returned a malformed list")); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2907,6 +2914,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -2987,8 +2995,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -3005,7 +3011,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index afeacd4a249e..6dfda55079eb 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -492,6 +492,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:39:35 2026 X-Original-To: dev-commits-src-branches@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 4gLMLb6KN7z6fJpP for ; Wed, 20 May 2026 19:39: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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLb1NZXz3Y24 for ; Wed, 20 May 2026 19:39:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0NODNyEZgJC5V5gFxa9hLb2vXFHNwt6g5/22jl1QR0E=; b=fhlD0ygNwab4c6fstC1bq5BoSNyReV4A6SDzjh8iaSNeBlCJijuYPONmFtM/v+b4ZOjgiI xwhnfVCVj49roX+Rp6lyFNpjU7+AuSZxzv3YvH2XaGUR2dVxkKcyiPhWGiIVZrhn3gn98P DQcMyFQiPAifMOq1fBqPY+soB/SdkTpaZjyanfPUX+lhxze9h+FuVQDOw3DW+Gs9NfRHmK ahsooD4XdYCO6c4E7gHzaeAPuV2aQS7PP2S4MiYk0zrUIvicBZZbfhSdBN7ds7Vhkb6rS1 5UjioaHTslqf8WatMbKGzYUT1fNhTJnlUyaFjtqCrORRYJ/GiOWdbVaKQvs+/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305975; a=rsa-sha256; cv=none; b=Zdow8ZduvjbMzFbhX2AfsQv56Z8vMPFjAtR0G1Chwb3xCFbuPso+cMkwHSCXyBjWTR4LeL /aLe6pPUUKxQaprQ0MLEIb8o06eM6vmPuzSu8V/Oa16l53K4tjfoPC02OI4qRiCTA3t+as PAg+4CmEOZ8QEaxQhXj8WmbS9Id70/fJlbEQlgZPG96Bw3jgcgSHd8wXAl7GhWySvIiHfW O/rowf0J9X8PXIeMH/nAum5h8jRT96Iz0beCRAOnlK4XRPiZyDx0LlvMfsqHsgjmU+4ioV ZiE+XMQPHru3Gi8Ru3ZFQk/G8c0y2ROvjD8UdJ78h7mqGhgL0fEiJpdclw2QFg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0NODNyEZgJC5V5gFxa9hLb2vXFHNwt6g5/22jl1QR0E=; b=TxyexisTpjuNHC6CwEu4ODTSkoZI6BhoiaMEfBy8GHi6zT6i5C3alTYWKP9CSnP4WlPcpw 8KuAISd4QLCePzXzUByla4ssDBtGOTAPXedo2T7J5xUtg6fTr9RLKbq7AWEywpmvdKtPBy eaKpUcVPb4Quy5/q1s+4tIQWudbrDDYIeD1+6k0xRpmgv8vOMgqCSFqty0wwuyQhwEkp1W 00Wtf4tJxCIymlykWLrGT1qANSXvnqZdGwity3Zlhx6tIHw15wNVJ7fRZs5DKkUGez15tv /M84qAE0MIf7tuBHIvqmRM/qXZIOaIh3GmYZgThlwxBY6Ooo7XqI/3xxle+61A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLb0pgGz1DXt for ; Wed, 20 May 2026 19:39:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 368f0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: e22f3f55c360 - releng/15.0 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: e22f3f55c360085e7b00cc00e7c8ac623802714e Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:35 +0000 Message-Id: <6a0e0df7.368f0.29f7c7@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e22f3f55c360085e7b00cc00e7c8ac623802714e commit e22f3f55c360085e7b00cc00e7c8ac623802714e Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 187 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 11 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 262 insertions(+), 141 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index df58f48d78eb..b951de58d229 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -222,10 +222,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -235,55 +231,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 70418db50085..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,7 +30,7 @@ * SUCH DAMAGE. */ -#include +#include #include #include #include @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -71,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -81,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -101,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -110,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -153,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -166,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -196,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -329,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -417,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -429,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index 4b6c72fd86e8..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,6 +1,13 @@ -.PATH: ${SRCTOP}/tests +.include PACKAGE= tests -KYUAFILE= yes + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:39:36 2026 X-Original-To: dev-commits-src-branches@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 4gLMLc3nHnz6fJpS for ; Wed, 20 May 2026 19:39:36 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLc1lMyz3Xjc for ; Wed, 20 May 2026 19:39:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305976; 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=louIYM/7DMHXaFBxAOxOV9UieZpnPkRkmeVh95twfTY=; b=Yg+hEg4XKd3wLPYpDXL5hTP9nlXstrMqGen6IEFfihQ7nrP4dS3e+rRA1ge8CskyEze3KM 5mvaRl5yJqFRpux+vonMnzkAoEiAdK0lZTl459prKX0Fh7AEPaYFGJl6Sp2otmVmMTXqwu z0DrWVfLGVNvheueF5KDHuYxMCeNIoyzxlGdc8M1+9WxWEF0Ry3EbIy99/CQW3Mmg0+Tgl 3UtcEupfiDQP4XMBwnpKvSXNuphOwjFk3FEZ5wTbHKq2xAGoXgI9I9v5BESaaEaO9lkO5F OlPucDiHO07fQw8Wxoq/U8773lTZfXZeayqKJSxhPdJBXygG9NdjnIBDGRYTCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305976; a=rsa-sha256; cv=none; b=LcVv5qINXn5xuHdu1TFSxrnrC7aaPqc1i1izMV5TkZT8sG9E2V2ZUbmj7xc2NpFl8vu3Um QD4oHVAwkic1xhgqqqbf++ZT+Zw5O3Yw4tJFFzxvPPNvK6Xl5uIfOzHYxMdnJs+W7ygUf9 4dxG07Xwe4NB5nLyROi+KIFateXr84mdfOewmsbv/Wg+QgX5SZZwbLJvmeNE0rkCSGOukd 0KxuGGl/nELOyWDkUI6xIlyxAIfgWbmbhtbY3aizZ9c0PPR4Vp0WpJPK303sr8ILDIG13C mae9FHMzZ/eyIVq3lm6KDsiixp++Dwm7dgBuJGdEGGuDqytfW2QhDA8IYLMppw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305976; 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=louIYM/7DMHXaFBxAOxOV9UieZpnPkRkmeVh95twfTY=; b=yOyxCzZtzha7P8Y2QcTjfLbR3iNURezAto0p5XWrskk2dcRKkGHs54MGRLTGYgueUvTdA+ katigD5X4wJwoBJ7RDiIaZtiShjdFUK7kewWc93LFBbVdqC3giGece77qR7bSMJJ1ErsY/ nRD58mVvuaXKsuKo66QTkh4Vy6V7uQxjs6dWu+tcpd6fNKBmQYq1nGALGaDM0KmJUjxH4r 3n7uP1vbKp9saETn1dMAPIJg+NN+EA6NcwUWReaXAhP0ysn5ekT+ibZD5ofYNsR3HlXnV3 +PwYsVhXeRQkR7yxxmHIdaE+T4wWpZEpFgiHQjKYaBTljvwUeTHBV/qUy+WhFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLc1Jvhz1F4D for ; Wed, 20 May 2026 19:39:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38687 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1c5742d1d84d - releng/15.0 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 1c5742d1d84d34cfc3e71f5871f569aaa3ef203c Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:36 +0000 Message-Id: <6a0e0df8.38687.3ff248a1@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1c5742d1d84d34cfc3e71f5871f569aaa3ef203c commit 1c5742d1d84d34cfc3e71f5871f569aaa3ef203c Author: Mark Johnston AuthorDate: 2026-05-12 14:13:56 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index 33d94a933f45..aababf76c266 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -213,27 +241,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $NETWORKS - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -270,7 +285,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:39:34 2026 X-Original-To: dev-commits-src-branches@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 4gLMLZ3GW5z6fJmW for ; Wed, 20 May 2026 19:39:34 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLZ1VQZz3XrP for ; Wed, 20 May 2026 19:39:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305974; 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=J9yKz8DZ9XfQ8EAXtPRMWEwl0ij9g66TFEw/gTzouLA=; b=kFnduCKYoi7ZfVoZcSJBUlA6LWjiqUQs18Zm6XoT7keqwWkh6t12zh19dVFyLassl7C7sq Pf1PPTc+N0PMdLse6PZltfacBBGiOcqPxMt5DwaCVRZk2H6G/6BbkYL2Bjf0Kh0vsWaDg4 ZuujVRrbLmbcdZDiDBA44bFYXEvyI1zbjQIaW6vqsE8+qPxoZggIPZuPX/wmY6SE75Vsns 8kugotxplYkgZPqrYxjx5fixSwgyGzF5ttmr+wp3Zp4RfJAmP58cOa10NFOTPTOwQ5LUKg GszNNLgU4FCckEsJRwcCQS+TpO5+iazOclQlJRv96KO0+bJNYpy/7037YHiiwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305974; a=rsa-sha256; cv=none; b=aAeDI02VODKnVagcwAjOQNUKjH3LAC452LzSQohD71YJ5feHHpU5Iw6pWTqMBT1MLYxL/f aO4qaz3l32tTiiO74ekTU3SJOVjsPxlT0sA2h45rFiT8RMXd0Gh8pBscpYtFxQEPDN3y14 0joQmHy3ALRQuUjJW+bo0yiphaMwSzRS1s+XDYt+IECTBhPQVHkLfXuPUKgB+3v+OIPLhN PUPj+HsmHKLZWc3kyK71v98vT9zcfhC1yI8OHaDtQ/VgPNuSuV963FGj9GOdbUNQ7sr5Ff jRZGQneMBEc4jKasHbhLSgV2UFCcypsrN+7v03wvE4ptYV5kwXoejXqjsRH4rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305974; 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=J9yKz8DZ9XfQ8EAXtPRMWEwl0ij9g66TFEw/gTzouLA=; b=RwZz9BWnqCConhPTLWbBYkLV6vpJO6PWIKk5m+61EYYf3bLKw3rYk00a142yzawQh6Eo07 ejER232+CmpNvvjDsg6g0NsBUHPfETCxalmzasfb3thtag6h+XTNJXJyRvgf83zNKdO0M4 tXU5A5djLQKcOv/3YcWvGzHUjt+IBsQeRoH/e8nvrk5eBu8B82hQY4T3lHTz9J+DbtNLxi ko+35yPKLFk54Wtpen3rF/+3ac6mEWWhMbplDzjcQt5RMAs9fAus+CejOpVyTrJTp6fKfC Ygq9xN6gRsFyGl+ai6Qih78t68vQ+QkpW3gNXdi8Z+QVfGiPaHQMl56qWOUnsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLZ0PBCz1F3k for ; Wed, 20 May 2026 19:39:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39219 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: fd24dd0b38a8 - releng/15.0 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: fd24dd0b38a8b96878fabda17988bed0917be494 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:34 +0000 Message-Id: <6a0e0df6.39219.5b2bde77@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fd24dd0b38a8b96878fabda17988bed0917be494 commit fd24dd0b38a8b96878fabda17988bed0917be494 Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:30 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 85 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 8efc0886988b..1eac5cc2993f 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2678,23 +2678,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index fee0bd2ffa38..c1a5d226e990 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4362,6 +4362,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4386,35 +4405,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4657,6 +4703,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); ATF_TP_ADD_TC(tp, ptrace__PT_DETACH_continued); From nobody Wed May 20 19:39:38 2026 X-Original-To: dev-commits-src-branches@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 4gLMLf5Gmjz6fJhC for ; Wed, 20 May 2026 19:39:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLf3d0Mz3Y09 for ; Wed, 20 May 2026 19:39:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8fv5tNjOtCwX5AnLpqVsr1/FeqY7ZCny7opHTtFMLas=; b=YgGt86ZnD2h2fKN+A0mvopzGDFsZ5hvZciIfIW5/FbSY1fJbs9/0vHFe9X9NY1gfzp3uBP WqjM+0zQgvxx+ppwEi1VRuCNM0t7BNnhETj4bW12VBU07VzgqNeVOa6Kt4r0vJCSZTxrrC /lZKWqF1WY/W3eAaAZpP6iYddbULSnQhcO5FVo7i/lhVN594akKtsF3fL2nNDfgLbzXxpx LH6pK2Q1Fk1G9IpwzJv8xokcnFIan4yi9PfovzF1QLWeb+KVTzzFDd3Sx2uxXlK0YrVGi/ T0ooH3Zm0s4sqlOINMn+/eOMOx00Hq7S469htNTCNI9Y5/Je2LKV6n9vmI8wpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305978; a=rsa-sha256; cv=none; b=RaXoNT2mwywi9GTRtOJsUXJnObjsbQVedZNF6dozdDfrxIhMzH+V+kgBTHRtAI9QoDrbkG stGHIPQRqh/IYhpsrlUeUIoYVyy+Gp3ga8Bm1dcRPTDkTUTrHpywCJY9x0CCDT2726l4rG oGEf77m/e8lgcMQfUm5NyXse+q+FoYOSNIzJv8putHfmf2wDuEjYbPhqD6Wz6NeQgNs75U /9y4wX17wHypkIQwaPrGm5vq4UXeIpUD60KuU73KmWyBBITPAs+IpRpyiKR3kypQJvANOL JBwTbpk5GSVF8VzPwcVb6ZUFYz9AdtyjWERgo3CC8PjWsSx05cFhQGXstZyGJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8fv5tNjOtCwX5AnLpqVsr1/FeqY7ZCny7opHTtFMLas=; b=b9WEEV0Q6sikdFk4D+j/HuLeE6Fb9TgpqzJcILQstw+O7lh7/ZnkO/oW7rRzyDNrzh0dEf 7WwaFbBv+w1Lf1aY3BOHEtYKIW1jd8i82/3YlwwQeHwLzEC8tmKjlg4yK8rDJUdPBuDZVW kPswXmnamrVNwbLDwX0xDQXlIE6NA6FfRS8tQbmHcKERzUXuQKUQ7guBqDpbJiyGb+J0Pa HIWN/rBHlPlVeRLIZysGclEfJ3DRV0Ecq3yWIJ8ZmwbsAypRF0c4ww12KoXgpOu76wJK1r eVlXERVXzc9zi0N8aAWiz4yTjGrCC+g58f9uDfHFuTD0wtqJRO7hhFqS57FLQQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLf369wz1DfL for ; Wed, 20 May 2026 19:39:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3850f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: f69df16fcc20 - releng/15.0 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: f69df16fcc204e2ec651c8465343611f370c2f8e Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:38 +0000 Message-Id: <6a0e0dfa.3850f.7aa9ed21@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f69df16fcc204e2ec651c8465343611f370c2f8e commit f69df16fcc204e2ec651c8465343611f370c2f8e Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Approved by: so Security: FreeBSD-SA-26:24.cap_net Security: CVE-2026-45254 Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) (cherry picked from commit 7eb3fd691d64dd42f9d32e04cb9b5811fd7c8e55) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 5887fe3c407e..67eec73cae7e 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1122,12 +1122,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1200,6 +1225,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1258,6 +1286,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Wed May 20 19:39:37 2026 X-Original-To: dev-commits-src-branches@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 4gLMLd4khJz6fJpW for ; Wed, 20 May 2026 19:39:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLd2jSmz3Y04 for ; Wed, 20 May 2026 19:39:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305977; 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=QIFuQvDI5wivJvMLtBFBIvOIA/VsqU35U9WKZzDE4Ks=; b=NHBGYs2UsFL7MUWRvTleNwGG9xHQzSunteyolA1RExEeYCJSX/A1WkZ9/mvDMmNd80E8oM ggpVnYlZmFSuP3JHf4xZcrRYHeOYW8aFWPf2UtZwE06Rt+OGM3aeh1lGQgcvtHQ5qo5Sqb vj0Ow4XIHQH+ZW+Ik8KkyKYzpUZilGDWIbK570YSYmntDLVtTm0h0sfq1HykfOeKsEb2zQ MnQ0WFJdiGqpvgdSCHpvSRQPrz7oSb6X0nrXf9cCU+UWfShnodQJ9LqOk8vR3TCg2vGbrM vLQupFcwI7zb1TQERVBk8Wljy8jbH85WcqQyLep47cgM6zX/6b4VGMXAJn6EeQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305977; a=rsa-sha256; cv=none; b=vTv4N7Y74a54snr28uUaW8wXBGWhMax+De4bZNie9YVTJ+qhbgToClHgL4xukT7yLi555z 8Obye8g2J1TE+c9UJHkO8Gm0vChcyrIrMXbTOctkt3VUyLdJtEjKulK9YmH2wGWrcbRR0p J+pfZXe/zQMeusPcDkLGNoZm4jLF+DFCJzo7s813sQpnO0BcTddXYk1uwLojn9L1i8Pan0 oMfpBtboPxsQNL7iVf1qVeW+qQJIonUVwthBFYzJ643TTvQ9Dh6LGh7jDlXcD+zYxmUfXF Xr01dGUXeuXhHAKhqpt0owETBrg2hNSK1Y2K5nutFKO/2ZUmCg8hYvtEoNAlBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305977; 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=QIFuQvDI5wivJvMLtBFBIvOIA/VsqU35U9WKZzDE4Ks=; b=i5hXxxYFum/AORg3FJDXydsX671sZvR26n5bRGwG1QqUik9G6X7gKRpSbdSWSRZL4PAuav FKVKcnrm7/CdGTgvBA97kZO/G3Gyh7sTuBIItq9IH+hXXSWaq1+OFmV+Oa8eUjuYlb5/GA rLyIx/bC9iVT7bKr38D+FL/nMzLu/p+7yBWX0qMjXy3/XBVRnJllyWv5ayybwFcK8AzNhD HGugbv2gqzC+xl+kixcJRAZbqvTeAVz4FtEWIhhHjQNdyClVT4J/XEgqmWruyeJ6etxXf6 pprohxA2nHCAHuvAcqSwQJ1DLplIKt4mW4/0cgL8/z6nbgtagq1ekW4rovul0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLd2DYJz1Dsw for ; Wed, 20 May 2026 19:39:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37850 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b89f48ade920 - releng/15.0 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: b89f48ade920727d8dccee1bd58edb5cac64ea0d Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:37 +0000 Message-Id: <6a0e0df9.37850.7c25a576@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b89f48ade920727d8dccee1bd58edb5cac64ea0d commit b89f48ade920727d8dccee1bd58edb5cac64ea0d Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:39:39 2026 X-Original-To: dev-commits-src-branches@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 4gLMLh0XDsz6fJbQ for ; Wed, 20 May 2026 19:39:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLg4VMfz3Y77 for ; Wed, 20 May 2026 19:39:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305979; 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=Opqf7YvYPk37/Q6fYyof5HwBNn2h7+8Mbbe0aXBWfek=; b=MVd7fPqcdTBytIygEQqDJQXZF/tdSbVP3MbzHeN4Q3YzO0BVWHUT6ZIr9xLvX7e5TGjOKA 3tkEZLJB3ai6s7Dq8fRhAacpt/uFAgaV+RzczTLRH/mbS/OQsY8GvpKxV5y02twsJ8A3qQ ZBrI63wRZdZgSIFLrLep83yfPMefr2n29VkEb0Uw2EV6FwarzzFl2/PYSNo8KwgJ5wvJEt mqAjWUjP9giuhXX7+pDDiQent/LgLwRVyeJNbcxL10ykFIEDqFK3NN6QAPpuTSr7KX2MnA Lix9InL0NhTi7amtTMRbpesf1++oxdJQ27+IdtGao4lKUlWotl9AJvrPZCSJGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305979; a=rsa-sha256; cv=none; b=QVoTvDklrtB5CAZRA7GY0gjEj/boZibTc9QVRpGNObcbqxi46LiwH6ptKmcyt6QZx7RsXs bTo6cuyHJg7VfVMRyuriVaMy88SkmyzvUfkyMkZoA9AbdpG4TaqmFciq94S9a7mDu9AYej jGVk7sqImyVY/ICaw11V0A4R+Qccf+/mfbSAZu1fRx19dyAks1/5vaDUgyEoHCx2OhpEjc q49J+6cNwIvdIFG3JRO83dOcnFtkPktI2dJua5EUyHAmMLSmlBWQSACP8cAqLGbouCcC/P 8PZV9Hh97WatX91Xy4KW8UqNJDk5H8hyq20Meh16YjTeZRy4KXvbLMIzjfqjdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305979; 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=Opqf7YvYPk37/Q6fYyof5HwBNn2h7+8Mbbe0aXBWfek=; b=akiHZcblqMJF4Ougb3fm3/jWgsNhbiR/Jn4QJ1Q92wt/B80LmlddO0L3MYqktHIpmtQ2BX 9WTN2xRukD/6BMLk+MJYKrajEaKQvZmf5m2QZYHFId2z7F87zgl2ihG2g7OiIjc0DScDyk GAmPbuvNDiqDi0tpjb+gLpNNe2oL9OBTNGHTAHkOuETFrrRvqIgQMb+oEFzcbJWsftFIXW xslsOHi72FD0tLVBP/LdHZEf6OWcRcMhbwGOLCCMncq8cNT6Rk/v8mSlohO00eqLZUkmve h+NnShedlyT8T+rtR1c/74eRD/tC05jJ9wiwgUBMJ/qjsB8nBhgqeeeQJ5tQ1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLg3wJLz1F8m for ; Wed, 20 May 2026 19:39:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36c7e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6d536196f1bd - releng/15.0 - Add UPDATING entries and bump version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 6d536196f1bda0cbe06c2945f2aefebcadf5c144 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:39 +0000 Message-Id: <6a0e0dfb.36c7e.3e75cc6c@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6d536196f1bda0cbe06c2945f2aefebcadf5c144 commit 6d536196f1bda0cbe06c2945f2aefebcadf5c144 Author: Mark Johnston AuthorDate: 2026-05-19 18:48:07 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 Add UPDATING entries and bump version Approved by: so --- UPDATING | 26 ++++++++++++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 13798c48378c..abc517696265 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,32 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20260520: + 15.0-RELEASE-p9 SA-26:18.setcred + SA-26:19.file + SA-26:20.fusefs + SA-26:21.ptrace + SA-26:22.libcasper + SA-26:23.bsdinstall + SA-26:24.cap_net + EN-26:13.freebsd-update + + Stack buffer overflow via setcred(2). [SA-26:18.setcred] + + Kernel use-after-free via file descriptor syscalls. [SA-26:19.file] + + Heap overflow in FUSE_LISTXATTR. [SA-26:20.fusefs] + + Missing validation in ptrace(PT_SC_REMOTE). [SA-26:21.ptrace] + + Stack overflow via select() file descriptor set overflow. [SA-26:22.libcasper] + + Remote code execution via Wi-Fi access point scans. [SA-26:23.bsdinstall] + + Incorrect libcap_net limitation list manipulation. [SA-26:24.cap_net] + + freebsd-update attempts to merge a generated file. [EN-26:13.freebsd-update] + 20260430: 15.0-RELEASE-p8 EN-26:11.dhclient diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index f78a5481e04d..210c5ccf747a 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -51,7 +51,7 @@ TYPE="FreeBSD" REVISION="15.0" -BRANCH="RELEASE-p8" +BRANCH="RELEASE-p9" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed May 20 19:39:53 2026 X-Original-To: dev-commits-src-branches@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 4gLMLy069Mz6fJhN for ; Wed, 20 May 2026 19:39:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLx6QLDz3YdW for ; Wed, 20 May 2026 19:39:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4MxKe27ZjL/V4PzrDOWUwC5dz0G7MKK1ghd6ueyNLvg=; b=hl3mJvLvFWLETeHkuHetgQdYRuaK6geFnVyH6XRYpDqn062fD8GoVcwH2iM8vTJCiie1ij 69d6x9JER2komUtAjvVxlFP2MAzgsINyYvxQVgBYLNPbWemEN7UwMXzq/nyfVuNQl2Y/Ti svf4IpzFeWERZyHi12DM8SUm2yfA6BSmvQc5Q0ddg9u3dKYnQZoQEqsV4f6UGyWCefTxfG K0O3ZWdyNM+KrZufXm7lUs+xPpjYG4GuEzRyff2Z0jb9MhtL5FPoGAOP6Z72pU8iSOf5Eh 1IHSptdSSSY3DVxOqRts+mol2Wh/urCLUz3NEdWlEAgZYugtkhsOQTwhn18V4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305993; a=rsa-sha256; cv=none; b=rhClWbPM+a34MvYZYCmnIuW6X5sjf+MKiBiOj1gprkt76vUaR0g1y2FTDENXiwFlyVnXXe QV8YrsZtwG2CqBwqyqWZmP6plFyonZgw+owHHXG4C18oTkGTkN4WNHlBoqvIYlxAruCNah gUdhb/thXENHhaDSorDeROUR9G3gENABFPIttIV5CyxZzMa1XP3eQZdk7/2PHb9yEn5xgS x64vMMqfV7l+yup6ZSzle1BljWgFF6+PLrvOh5sF/51LsZfV/u/2Rexo3Ug2N5UaQRSvO0 bXqApMKL59u3GLfzABlBsYvlRafNrsxo4tCLwkCIg+Bb6vc48l/B435D9oB/cQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4MxKe27ZjL/V4PzrDOWUwC5dz0G7MKK1ghd6ueyNLvg=; b=ZhAwJlMzAY1ZQSy4DLtHy4Rok2ySbmxxosWH1PApew9jlHePRE4EzUOvsPJaIm8I/vOoRr 7Fx4HDB1noKX5LN10vY5H0mhX+Bq7uBAVTGOJbA8Ld/HJvYOVbJ71IfmZqGf/9ScGt8gVU F7CwU0MKqia8x4KvkI3GiUBUtmiTfSM8nR2OQAijCx36y5/J7YRoCWwbtx5+TtB38mdbYU 0SFFJCbncL0cTGE7Rq138s9qpHCPyzO6pQE0Wd+ZLepiJYVeWkKwkkCUd8XbhElY3t8mu/ 5foXviUT1rriThPIo9lX17kLzC4w4oZhGX2Pn8EnCXQhV4FQnGoYjBq1GsNaNg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLx5cHxz1Dc6 for ; Wed, 20 May 2026 19:39:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36578 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: 081a9e933033 - releng/14.4 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 081a9e933033a950e615ec8f7200277f9b97c75f Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:53 +0000 Message-Id: <6a0e0e09.36578.13c7983b@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=081a9e933033a950e615ec8f7200277f9b97c75f commit 081a9e933033a950e615ec8f7200277f9b97c75f Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:49:37 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. Approved by: so Security: FreeBSD-EN-26:13.freebsd-update MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) (cherry picked from commit 7d9c1d3895b307085131f922d7e46a4812f04675) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 1e9e6e63e992..5d52eb285fe0 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2523,7 +2523,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Wed May 20 19:39:54 2026 X-Original-To: dev-commits-src-branches@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 4gLMLz3chwz6fJmt for ; Wed, 20 May 2026 19:39:55 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMLy6v1Vz3Yb4 for ; Wed, 20 May 2026 19:39:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mW2a+1iHML7idsFRJ2qAFc2m4kn5AouQkdeDOSmS8Ds=; b=FjB0/ZbHFsUHAO+X64m7K17Yh/Xqr/vR2fvVic2Z2uWR8Bsf685Lz1w03ElpwEVn5dzP26 hPez7IfpQi1CgsCohlcVsj60NjjiJG0ptpT2roru2NYUShUsaFj7DPB24/0SWuAg54DpxF bJOwliWSEcqYh44UlyA9/4NPFlucONT6ZBamLngrtecdzeiFupSZOPUyjDB4ll3LEMO5XL 2yuPqFlyyc0FLY/11Aub4+irItvuhTzzdOTR9n3wjtKsDOnviTORhnmGBjOruZv1Ce3lGK Pb/8UdW6WFgU3l815DUaIAKzd1ewQizhypT3pXS/HYL4sEXKazmPWgD/ZWlorQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305995; a=rsa-sha256; cv=none; b=a2Knexb57Ik7Vgqb9WPworvPWWhAcH4Ay23nFVTCcBQHQC+XKyFmUT5HWJCOwYOd08aR0p fMthMUyKHaUq3Ahz8FczcABUyFLuKzRz7dRrzSgZ84mpX/x2oNxVtYAUvwIycuAFfUjXQI lKjdwKrzFhmmG4oSfZs49GjXeY/jqExjklcw9cI4yApbL3uoqPDwkYKlp+HPrvXeCDmk+m /qBeLKe2gu7uMV1tzzaXALTVHA+nvPnMS1hgNCnpJBMslhc/fBroJ7GeGNoBP1vGqI0IPe F/Z+UUBRKD9Ow36DCGZx/IjWjQ21Gbea8S3eLAZRTO6uzqvfbtbxp0YB7thjzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mW2a+1iHML7idsFRJ2qAFc2m4kn5AouQkdeDOSmS8Ds=; b=bpRoEa81N2LL8/N8B0ECYXms6Ns+R5PcH2ohmvsnYGO+fH3zAg0aBhMVNcRBsKN/dZMQJH /guEPC3tNM9fEOrgHTNniOzh65l9dEMyYFFQ5BpJIXZYSLjL1du8Be739hJrUDa174Djth SOtedzRfb+UBe8Q684mbdIat4Awq/Sn0GeEo61v/T6IQXwifvoEy059St6BLtnVyKVbXIW 5n46++c/hdFfkqfyZdTrZ3f9MQbAzl187jAzI6L3jIy/3BoGujC6/ElSo/e4wYz0JA786k POit0iACoan+weGQj4hHR+PxzWq2Cv9eVgwqHdKfc3syGxGO/9toxr3cVIOUEQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMLy6S2Vz1DXx for ; Wed, 20 May 2026 19:39:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3657d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: 34da5845b8d4 - releng/14.4 - setcred: Fix buffer overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 34da5845b8d401a451dabc6c1c5bff6973879105 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:54 +0000 Message-Id: <6a0e0e0a.3657d.669c016e@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=34da5845b8d401a451dabc6c1c5bff6973879105 commit 34da5845b8d401a451dabc6c1c5bff6973879105 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-07 08:06:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:49:37 +0000 setcred: Fix buffer overflow Since groups is a pointer to a pointer to an array of gid_t, we should use sizeof(**groups) or sizeof(gid_t) when calculating how much to allocate and copy in. We were using sizeof(*groups) instead, which meant that on 64-bit platforms, we would allocate and copy in twice as much as we should. Unfortunately, in the smallgroups case, we copy into a preallocated buffer which has the correct size, which means that if sc_supp_groups_nb >= CRED_SMALLGROUPS_NB / 2, we overflow smallgroups. This is a direct commit to stable/14. Approved by: so Security: FreeBSD-SA-26:18.setcred Reported by: Ryan of Calif.io Fixes: ddb3eb4efe55 ("New setcred() system call and associated MAC hooks") --- sys/kern/kern_prot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 246413a54903..e2accd7f7729 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -527,10 +527,10 @@ kern_setcred_copyin_supp_groups(struct setcred *const wcred, */ *groups = wcred->sc_supp_groups_nb < CRED_SMALLGROUPS_NB ? smallgroups : malloc((wcred->sc_supp_groups_nb + 1) * - sizeof(*groups), M_TEMP, M_WAITOK); + sizeof(gid_t), M_TEMP, M_WAITOK); error = copyin(wcred->sc_supp_groups, *groups + 1, - wcred->sc_supp_groups_nb * sizeof(*groups)); + wcred->sc_supp_groups_nb * sizeof(gid_t)); if (error != 0) return (error); wcred->sc_supp_groups = *groups + 1; From nobody Wed May 20 19:39:56 2026 X-Original-To: dev-commits-src-branches@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 4gLMM03CkFz6fJxY for ; Wed, 20 May 2026 19:39:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM00yYWz3YV2 for ; Wed, 20 May 2026 19:39:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305996; 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=SdAFXp0G1tzkuEUiMTYXov3CccjL3UwrB3BqHPAdg8M=; b=o8mdtad1o7+PrCROcN8o3EW3pg9zg8C9UumKeac5mGdVcaJx05QUbz2LNl0avGMubQILP2 RzCdoC1dcYxkrIqtrETIgEMiIRfmSTa8dAG57i+pnGrq8eX2I/bVKA2jZKs6JZtqxZrvFi tr70texuN/QZ7sj93DyJd9LEJcZGoVRrZsXOtJJxW393Y59f8ooCwefLU4dtoO+rNJ2xJp xmQ25rF+eMOHfEPvOo60sMcesuSgsq6b11UzzviYdSHBg7ORL4TfiAVJwEPUyRqNBoeVTz GYZR+lRrCsG/81SGhTZRNhIEsiks0mfFXpqWaAFlFeNFvZVBmypOjvuwiqJgTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305996; a=rsa-sha256; cv=none; b=NCao4JGLlsaF1Qe2CqoT6r8qoFPKoychGcGq5bZVXKdCa2tiVhRsBDBvETOWMkY3vyt9nA nTBAx8jQrhvzz+kjvVR4UDkQv7qBnQkwJHTFK0kmYAKZA+Z0fnf8TCQmA0Zvg4X6AjHAr+ G6tKZBbq6//6Z7XBe7haPby0gc9uelQubUAJw2dqZUm7W8uJFxmeSOOcnwyqZf+v/3KSyU Bs4qHJmolx7zvIn/JL0xnZKczsu0rZuMTGZT0zD15FnchqXWkRkMudR3VxHjzcjzpNorWc ffANYJ1T2eVAV88t44TAZfk6pA0+3RxIJ16CnSIvOC1hUEfcnlGT7KcNBs8yHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305996; 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=SdAFXp0G1tzkuEUiMTYXov3CccjL3UwrB3BqHPAdg8M=; b=u7U+msp1TxfiONmeTklzscXnF3N15FY1YZi6dVYaybVBxKIQZlGWqf4rXjDL3vRk9M7VGs jpH4FSFlwSQixPs5XQ1sz1zLlrPJ9BZJYE7aiDsnrP11DtA+UtJuN1jVQ94viymhkAGLif BwKKbLQrWt9XEg30ZSeqaGWNzz90XUERYPgWWk//itUOFZKVZkPQ/bRhjoR+yM4MUl2FTU 8BBBj5XseCBO5+8SEIhIfiC6GABctOSO8UZEHP04JXwnhoWZ/nqVnwwaCd2TdspXB12ajx 6/FYc7kZNEfcK20HND669lbj+iks+qbqtV29s1q3H/W2w2xQcchpMHQGEuIINQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM00BBhz1F8n for ; Wed, 20 May 2026 19:39:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3841b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 79d6615af76d - releng/14.4 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 79d6615af76d6b77e0a93475643d5e20672330b6 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:56 +0000 Message-Id: <6a0e0e0c.3841b.7a00b656@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=79d6615af76d6b77e0a93475643d5e20672330b6 commit 79d6615af76d6b77e0a93475643d5e20672330b6 Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:49:37 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++-- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/procdesc.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 8 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index b2b638b6f99f..515d0365ec61 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -273,6 +273,7 @@ procdesc_free(struct procdesc *pd) KASSERT((pd->pd_flags & PDF_CLOSED), ("procdesc_free: !PDF_CLOSED")); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -315,10 +316,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); return (0); @@ -433,10 +431,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index 81102dffa6ff..56d625950a80 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index b8050931de53..3dcfbc71f6e5 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -27,6 +27,7 @@ ATF_TESTS_C+= ktls_test .endif ATF_TESTS_C+= ktrace_test ATF_TESTS_C+= module_test +ATF_TESTS_C+= procdesc ATF_TESTS_C+= ptrace_test TEST_METADATA.ptrace_test+= timeout="15" ATF_TESTS_C+= reaper @@ -85,6 +86,7 @@ LIBADD.unix_seqpacket_test+= pthread LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util +LIBADD.procdesc+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread LIBADD.sendfile_helper+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c new file mode 100644 index 000000000000..7505e0e4bb94 --- /dev/null +++ b/tests/sys/kern/procdesc.c @@ -0,0 +1,128 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* Tests for procdesc(4) that aren't specific to any one syscall */ + +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); + + return (atf_no_error()); +} From nobody Wed May 20 19:39:57 2026 X-Original-To: dev-commits-src-branches@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 4gLMM13DcWz6fJxZ for ; Wed, 20 May 2026 19:39:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM11K28z3YVM for ; Wed, 20 May 2026 19:39:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305997; 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=0FVA/5sItBJjr1CzTlauAVCYMraiCOJFJ32WrHpWzEE=; b=Yo3Hl3Hds6AXZYH0p8T9aJygdbFqZRZeWY0aG0O2k1fi1oIyw8Bd6Kyu2A4lhv9T7Uk7Es 8L2RtC7QYIeMi4YDv5cH29M9vLpzEUlYIBRZIWX3D1WRvtL23+j75teGVwdD/ejLwEvMUZ ae8hrBEQ2CZ6cgNzjmg55qeXTws2oisavepJYkbmHCIkWnHWmSFpZh6rdMOsmfKi9/ipgR E/Z2E7JRsgyuSf1az+xYZx8xHSBaQNj67pAA+8vBp8FCpCBwSx8n0EZ6qUaCKC37/EntGi PewU6v6mGUVsar824O8Y0G2kLCYSm1agqNBimuOowSwIFij4l+12ycOEvMW9yg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305997; a=rsa-sha256; cv=none; b=RioXdT/OcvOf7CvC7WOrlf9JIs5eQ18Ja86CiW+x7pTwFzmMbCBtLG0nRXZB5lAYxAG+Yr JwlX6XHxGWZcoRHLsdkM5pmvpbeFuMIukmeYsuho0RCBYZQEhX2q4dzctDArIy0hl1Ym9s UUHehGz2dPiZ9xmMdIMjFry7+O+x1ZUoH3qIBxSSxT/w52NkmShZ0agRWB+TbhwFxVYSqj aItGWWtX1ASfwZljsPXg4GIWzgsIcoI7lswpWZ+xG2QW7RQbBMaxwcrCsjr2HZj8F9lkDz bWVyXcMkCo37aqeqgX0qZiqVKTnMh3sAikmmO6sBgVx3ycAKyf+NzSzo8p1icA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305997; 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=0FVA/5sItBJjr1CzTlauAVCYMraiCOJFJ32WrHpWzEE=; b=IRNnUBjtUulUSd4T/Iwf0tYfeqB/rMSrCHB+Q/0cWzjKPhE2jeLYGqreoDdgEIITb+xwyt 6TJCIyTPaQDHc8JffOnBDqoyltTUwbzLODwzz5Xd4TVCMJ9KsptOPTqXRLLyOIPu131dd6 WPImvU44JMVcmFuqYHUoClQLFISACOt6Wo2MI7LSpEXH1MMLrAjpH1whb+lke4kPI4v1gS qrCxupUJuk94gGcIKLUtfwkJL4IYwqLRotOVVxvD0QrddrrTryxfjgAX+kCEklYwrK7nyA MH4CJq9ipiUDXtE+va/BERcE/8WuzXlz7xSnC9q3sHbM/bXGEiFd6ac/iqSC+g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM10lDbz1Dsy for ; Wed, 20 May 2026 19:39:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3921d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8d8694c224e2 - releng/14.4 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 8d8694c224e2ddc632583c9327415b4c15a1a52a Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:57 +0000 Message-Id: <6a0e0e0d.3921d.5fce28a0@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8d8694c224e2ddc632583c9327415b4c15a1a52a commit 8d8694c224e2ddc632583c9327415b4c15a1a52a Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:49:37 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index 1df97dd91400..4c3aa5be0cce 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:39:58 2026 X-Original-To: dev-commits-src-branches@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 4gLMM2604pz6fJmy for ; Wed, 20 May 2026 19:39:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM22K3xz3Ybg for ; Wed, 20 May 2026 19:39:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9nG1+byHo/28y+F6PRsjtuQb27Mon+MmhsPxYfT3i/g=; b=qtKkg+A0vPkWiMw6fcwZ/Wdmd5Pucwzld7XtzNoKwFbD9+k8i3UZAv0nJFPvhpFz1YZOGG 6BYjEQZOomw15Rw+5jcVb3pIavaljYrlPlq/QEqd24c3Hw4ND0khdd6KF0c1nHWLXlKr/h 71oRrdh2+grgjtS5E1L8nauPa31z8xoid6nZ7M2cDYkY7j67mz1EkHASZohOdEjh/LnTim xVLMG5ENxFMFAHh+cVxANCwf4kep2CXrA2tChkhLo32XpPRKoJAnRWrsfOy5bv0oDCGupz YgHJgztu/ITHygHWj0sM4GFYul1YkHtxxlDnPKMlUF8+9XWYmONfbEQwsu11nQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305998; a=rsa-sha256; cv=none; b=hDEuaNTM9EkJCHpQ7LPDcUihSetiIpCtikGKOl7fNANszVaH5MdFP5LqmTnqCxtEdXYD4q yaiN4m6g9ILfWZNNxvab7L08ssIuw6Jy0z7thsjCmWWDmVQJDgXWF8t8OrJgiYT7lMbsSI 63R9BR6R1baPPSEBCmNQUkYN/Kqiav19rpbIpEfWnkzWDgYiyMoL4kTGkcsU2WVapVayGz 61RCDv8IEdMBK1io1tgiseaX8iecs5yheLOrUVso488YbjFdSDOUBX+mmugC6Rbol/ZpaI IQEFvsUSlGrrwMA0BiELVoVA9JeehsBLXnWOpN/FLn+YKHCNsMLfyLEX7ykBQA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9nG1+byHo/28y+F6PRsjtuQb27Mon+MmhsPxYfT3i/g=; b=M6Xm+xpaLTgmfADbuZaP0EUh2OOIClMfV6xpdFvsF0Yk+Zgvo1Npf+JXXS7hs6EJJSVrWF aAqVpjTwlr4V25nnBoNMv5Yg8qSanBpWVM06eJPIQToCGAhpK9EohXzai5Py6TjvSkIsrM iEK6Lja1TiLnZSE0t5nPVz2O+tBfKnTPz9onqazBb+Dy+MvEGqzL6ywNb4ny6h+4Ajfg10 laaFH4Dzv5adEbjGG7qCvgY4IbjBu/whUW1twE+ZERmGk/8tIDCi3Zcls8rk/mF++WTN/x f5Dh0rYv3pIDigZMP407hUizvf6NnPJkW+16KF7QOl0PK9U4+7ikNVZpp915ZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM21dMnz1F4H for ; Wed, 20 May 2026 19:39:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3734b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: 6a299460f159 - releng/14.4 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 6a299460f159e4ed7e7ffa1e717fc2f473ea9e79 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:58 +0000 Message-Id: <6a0e0e0e.3734b.7800222e@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6a299460f159e4ed7e7ffa1e717fc2f473ea9e79 commit 6a299460f159e4ed7e7ffa1e717fc2f473ea9e79 Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 17 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index 3bfc859dbac9..ca70177d049a 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -240,6 +240,7 @@ struct fuse_data { #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ #define FSESS_WARN_DOT_LOOKUP 0x2000000 /* Inconsistent . LOOKUP response */ #define FSESS_WARN_INODE_MISMATCH 0x4000000 /* ino != nodeid */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index e400d02887fd..ba72a21c8efe 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2794,8 +2794,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2804,7 +2804,13 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EIO); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2860,6 +2866,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -2937,8 +2944,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -2955,7 +2960,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index 7fa2a741e074..a348315265c2 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -448,6 +448,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:39:59 2026 X-Original-To: dev-commits-src-branches@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 4gLMM35zk0z6fJv7 for ; Wed, 20 May 2026 19:39:59 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM33Kv4z3YVc for ; Wed, 20 May 2026 19:39:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305999; 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=wliR9ofbJ1kNkBFlgZnuUtFjaL2EZg67OqEMkwTalZ4=; b=bZVIwlNlUMFICl9+EsoL0eJuhLR9J4oHPjCF8aUm/i1rxnJi7nvOY4sq38h0MmGhtqe6Al Wk8QVf6SzwhKLPa4inodsAHdpoGH+JfYg6gmDwATDv6rA44J4bRPatUQUC0OweUMq61zcR jNtwUwPK1C508S5tMjc9tRI9+/yPVa6BYnbOkiBDlCTT0mmrwM+EUDv90b5PyLBPeRsRok sLYAdMW5qB/ltXzBfGvzusmqsMXHXQGQLX75C6Ux10cUKhANi6z26dpV5GXBw1wc1VjNNq s3PZc8EfbiYCMMtB6d6XnfEZR7W3Esc4GFzluf4OVVisznpwNKVMn5lPP9/mDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779305999; a=rsa-sha256; cv=none; b=r2ajhPJXyf83KJB3nGc+EZ1R33Oqq6sfCrH7d9dnrck/lfC1ihpwlfMx5fOjHYyXaRsNHB TVDBwtZzhxv80b/5Jmy7S2QO4xe+JJGr5iTY26bbc5UhFgxJ+6qTlKrgDjLMCxeJbl3ehl veuSZXXHwoWUDnRiAfwzlsjr2mvFWi6NXLeNslLkRnKZ2wfWRg9BWwUS/BwBsp5a4BI+24 eYqb2iwPW+E13Urrs/OaidTqU3ryAoDUTE9/frAM5752XbcP9fgF7GRL+qf55wu5M2Q2zR 39+6YbgfZ5XSwydEM19oyGF/B2FwSkUgiv3bCbk0I9bCAz4LJtZ/WVir7b6Geg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779305999; 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=wliR9ofbJ1kNkBFlgZnuUtFjaL2EZg67OqEMkwTalZ4=; b=whSrK61tJ0Rd+vU4/0XYtEpBs4L08joLvEQS6nVruG77cUcJHfhiIAoUpLnz/EoW/ZGoBp 4xrrHfqLZkK3gfLOYgcb6sL0/89USjiY8ovnrAbyWS7Ui8h0enMnSxqNvH1bAQUGUb204R c+yRwhs9sfL4W1ghZDfKy7m3SfS6zb2qjyb+0azAezVk7YBWOStoW2UCrHtZR/ruNqDyv3 SmNVDWwIw5Ng47wOK6W560OvtlXpR8AlUTZzwJP+FVplqKhoXt0wQ8n71gvarSmiKLFDMi X7wJ6QtZeqLRk5um/cQcMW34OVu7fzi+P/DdMR+Qs/QJbgIxYAEshAugrNisfg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM321cgz1Dt1 for ; Wed, 20 May 2026 19:39:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37350 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:39:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c21d23f0f8be - releng/14.4 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: c21d23f0f8bec6fa4c48e6ba780c6a43197700ea Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:39:59 +0000 Message-Id: <6a0e0e0f.37350.252a1d40@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c21d23f0f8bec6fa4c48e6ba780c6a43197700ea commit c21d23f0f8bec6fa4c48e6ba780c6a43197700ea Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 85 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 5304436f4dd5..91361d680809 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2692,23 +2692,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index b96e7d126b03..f5350524273b 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4363,6 +4363,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4387,35 +4406,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4658,6 +4704,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); ATF_TP_ADD_TC(tp, ptrace__PT_DETACH_continued); From nobody Wed May 20 19:40:00 2026 X-Original-To: dev-commits-src-branches@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 4gLMM51Q2hz6fJv8 for ; Wed, 20 May 2026 19:40:01 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM42trWz3Yxv for ; Wed, 20 May 2026 19:40:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fDn0utS/lvi/iBDeeZkPB1iE+jBmqLiq/ivZmdK0euU=; b=erVw6dysF/1PJXwQSB5rdjYnS4koP0r2mlcln4UCvWyqodjUV3fFh+3fFvTbDkxrF5KfCo Wo5xkCML7YZuRObSdu1RoejyUSW6mQ0PPmv1ctxgAIhHWFupe09bVoisT39aYlTN0t75N4 BIIm8+daQ1wi2IAgzIKFHB3gNk/nUrw8mqy7O7byq72hI+RNs543iBdQUi9eCuCrwShF4E J3d2SmkFA0LnKzDx3OQdAC/6RpOyHxKcAtuMUAg/+mVD7vGXhW8KopKcOcO/lH0aqOKO2S DddOxMm6ZnXG7kQCMHbWASUL/GKOwoW/86DyUBeya3JKRNhcRgGgb//ZXzjMyg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306000; a=rsa-sha256; cv=none; b=K6ASui069BDzGdSJmhycYffvonsvLOz8TegvZ5yAydCokJyrbW8i+oUmFK2ZMQKfqUQJFU seGqlfxprtEFrMz5Cdl84gdFBRsH7JheK5CLrpgj5L5JwtILbCGNnz9HoNhhAYsjTzSdlW tAYqaZKGN0G/nOkXtY9M/kRqv+KhJJk0dCFQ6HEPrcvVBoHEPazym7pZ3TKsmD+4F5M/P2 DBL0nDVsSfnrMbHpqy4oPEnVwUqcY2FJLlJzxHbB286giY9YrRNMPBno23gRclqnzHO4Uu OurIy4UdzG0jy3ErZKOnGEDMfI2KFOH2akaMSoh4i8mOY7NRq5g6iH1IbsIjcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fDn0utS/lvi/iBDeeZkPB1iE+jBmqLiq/ivZmdK0euU=; b=v1o5aumT5gEM66dufe0gh1VQru7TKmWi2cZbV0E6wCdzbsDc0Qb9p2EGXLS9g3XXDsUtv+ zW7slg3BFWsKiO2GNkQn3uh1zLEmCYSdpz/Vdm6Ks6P2AiOjNztuuetgYUPOj0WzlovEA3 eKsQliaeGDGzWG6DEEvNfAqENh/UpfaG+DPzhdXOb6zs4mq5lyg6AaD439jgxDKRzzpQdd WFASTNhNLx09kczH61qhlnSQDJIGevqCl8tOcl5U5Svxj7Mb5C3jXurryoTnVL0b6ebpYz drMkO7+KIVoIvoseQrpNtJxxb5KtD/ymiYhJ4or+QLDyFn/U6nh8MDugcCJJWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM42PMpz1FCJ for ; Wed, 20 May 2026 19:40:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3842c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: ae34dd1a391f - releng/14.4 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: ae34dd1a391fb217f8583d86b77b446b7e4a19f7 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:00 +0000 Message-Id: <6a0e0e10.3842c.2150c82e@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ae34dd1a391fb217f8583d86b77b446b7e4a19f7 commit ae34dd1a391fb217f8583d86b77b446b7e4a19f7 Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 188 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 12 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 263 insertions(+), 142 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index 3468b520e275..6e9cd9d3d338 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -223,10 +223,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -236,55 +232,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 103791676272..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,8 +30,7 @@ * SUCH DAMAGE. */ -#include -#include +#include #include #include #include @@ -42,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -72,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -82,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -102,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -111,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -154,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -167,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -197,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -330,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -418,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -430,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index b8996030aafc..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,5 +1,13 @@ +.include -.PATH: ${SRCTOP}/tests -KYUAFILE= yes +PACKAGE= tests + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:40:02 2026 X-Original-To: dev-commits-src-branches@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 4gLMM708q0z6fJqG for ; Wed, 20 May 2026 19:40:03 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM63rn1z3Ypc for ; Wed, 20 May 2026 19:40:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306002; 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=xq3IComEi5HkRkmyGCdMursSeNmptS69Weo3nB6nPJo=; b=cFmJc11NFr3zg168oB0pQJa7kwE5JjYmTiDBDIL4XB9W5Kxdzan8y4Ss3Z68iUPNCgEZuw 9rSxAsEgYQ0/uPepeoLOrjNrm2D+sTDUM0Z9461CtdY9rpj8W/luSDZQDl2ftepf2Gag/I FhQ3ey6m92/eo74rsnvYmY/WFByp5g6AL9UQq5jxVF32Z/8SzHZTsdnFmisjDMJortu+e/ 7XSFRgYipwX5tSCpWh5UBDHINwhySlnUtJluFehnewjDA1bLVvaFPwIstfJf9yuHZvSjh3 X5yBqg5mrDbweD53sx6IgteE2l+Z/ZiUynGyaNx+2Ka3kFoRBPgMXnz38kBn3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306002; a=rsa-sha256; cv=none; b=xk6ro52NMK6SluvB9gq3tzsxTUvzAz8S37jlKtpjJilybM3hgNt0S1/DYXqHNWtLKIlFJA p2r0aG5Y84Az5LQYccoLMJAzfMR0e8fmdlvbDSFthChdWEE9fe7sXQilZL+1JgJXym6k1h zcYAKl8HurjfOd1knOIn1/5R2LKLFyNLJ5KvGxdvmuMLl+4VPDzGxdTf2Z+GGyWJ3OkX2i rpoiwBbdjnSNXPT0JVHQ7vdi8QS9x4H22YhMDxn9rzDjuwygLvPDqx97YDLVBRHT++mkKM 9aUlsSoCr2R14T3N/WMBPD69xu4VPThWiHoHmtKUg7NtDDNjNgkl83Sj/aAqJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306002; 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=xq3IComEi5HkRkmyGCdMursSeNmptS69Weo3nB6nPJo=; b=vFdA1E5xgq5x1/lm7Gx2dlY5ZOenE/xz1QUjng4OUqfZFubravQW3yvUfsqie6kWG4ld6P BmRCAAIhCFAb7YwMHFcj/Q/iJ+dHowg3RVZBCS4vM4WZpzE7/aDpTzuCAAykkJhxMEawlH t9q3+U4+RByi8YL4JlRZIVZzlBH0IMBseHCl6DfF8s//Uxp95+IZwIUw2SX4cLEBabrBKe LgPFM3r8i5tNR2UYJ4SMncKaDRJhX5CE0bQp5p8+aHhay/P8c0PBPAesELP0JTosn4dcCe YXMr8M9I6d+8amwtZmEYtnlfO71Y5kJetHIaVoC7Bum5RVn37cJKV+feJUkCuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM63Dpwz1F6Z for ; Wed, 20 May 2026 19:40:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3932b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: dd50cc216e4d - releng/14.4 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: dd50cc216e4d401dd8e3ddf06683630e68533511 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:02 +0000 Message-Id: <6a0e0e12.3932b.4b3a8b3@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=dd50cc216e4d401dd8e3ddf06683630e68533511 commit dd50cc216e4d401dd8e3ddf06683630e68533511 Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:40:01 2026 X-Original-To: dev-commits-src-branches@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 4gLMM60s9dz6fJn3 for ; Wed, 20 May 2026 19:40:02 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM53J1Bz3YpX for ; Wed, 20 May 2026 19:40:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306001; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bp8aaSrlM7t6k2/bc1S7IvOenUgNR22G+AHIF2dPxFU=; b=Fsh2cN3Q8nqk5rFitMYhL0siunJ+wV1iFVlNBg4ptZvkfdx1ekEEmnUnP0Lu+sQ2AeM2ss FAVFOJbDffhUsgXfM1Qgkw3k01iDta0hSzYa0CKuhywcrgcTrDvuJ5LYKU8tUWbO97wVj0 KoQh1ZRTsQ9vcjPnfojVmjcWHXP/iez2Y2McuuBJC3yaajSAen7BxT3goKotzJytc2/XpZ Ps/GyGY/Mv83mx/38I07P/6727FENfrpHieS5M2SZlOos6qj4oHtn2rja06y3LwD8POCMt QQpbN483lxT3okEzEALIBYy+aZIMXbzEgOv1bwVYIAi79t66c8eB1CIBuvbekg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306001; a=rsa-sha256; cv=none; b=WsdhK2zhvppm+8am8jmQXywWTo8Tr+63sK35nROc12Ib14JSd6UYB6TP0BPVvV4wg5Efno eDK1DwjN13oIbo/aGpOBJ0GAkwjOg9eEtUbiEKq7Au0BJ2B+B1d9FM50TjlSsCog3FeQXC B2A9s7slaZdW1QNvhg2ixMiB4seJgZuow6WrJnf56Tda5nC3bzs8RongtKfPMEbL4Cle2m T2MjLN2gSQqVFVugMIwFZrjTY7Y63C8OATLQq5LuJHjX0h0jHQ9l0BOfjc8PsSt+u2eIfX lVh5VeuVUv92yZOVFP+m/5opQW2Ur1b/6QIhDlI6JrbQZCTOnDGUH1UPdYEGRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306001; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bp8aaSrlM7t6k2/bc1S7IvOenUgNR22G+AHIF2dPxFU=; b=tWrn2ROZsoG8trrudh6h91GFJqBIKOQrFpE0fzYFbwOZ0rD2eU0eXaKRWcQHHRoU0nnC/o DY8dtYjkPuq7+UkoTe04FviFnSYYKqnKu2Y5nIDbwKHGOwFV2seCa2mFm4qR/aFL8riifU BHtBQZgl8RUAo8rI8QNzWBCWnl6HRLJH1wvFBUhN0BiUULDoC5DBUap8YrtJzl0w4nPEak C3gcWCqYtGAOCJj1bXLNVRL2htSPXgY6ngID3x8xp12VZv2ZNsezHGUyfMq2CQVLZXoMPm gCcEi7WWULHcXgBXjee5bWsaV+N33M0Vrb/GqBMIl3u1uIcjluHHL89JoYDSoA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM52qS0z1F4J for ; Wed, 20 May 2026 19:40:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39489 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Renato Botelho From: Mark Johnston Subject: git: 70e6a19f3dae - releng/14.4 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 70e6a19f3daed92b1493eeb8f75007491e9afa03 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:01 +0000 Message-Id: <6a0e0e11.39489.64e2fce4@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=70e6a19f3daed92b1493eeb8f75007491e9afa03 commit 70e6a19f3daed92b1493eeb8f75007491e9afa03 Author: Renato Botelho AuthorDate: 2024-05-20 13:43:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index b5c488b22b2f..aababf76c266 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -213,27 +241,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $menu_list - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -270,7 +285,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:40:04 2026 X-Original-To: dev-commits-src-branches@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 4gLMM86RMQz6fK42 for ; Wed, 20 May 2026 19:40:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM84Qfzz3Ypq for ; Wed, 20 May 2026 19:40:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306004; 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=0tKv/1QDIhxuuusa9QfpA27RSJKfxgTKC1JX4X0Zq6E=; b=Cidyl6mp/sHCkVZvsoyf+XfGT/hG8zLuP9WJjV4bQKHxlAlsmKnhREJZOtEa2ZxPBDcGKS jqlkm3qMlvN4VQaLEi1hpcyHPRVV1JUu1zAYl2TvdyaWHLYLfe5qrJZQArL/VXPEwITioF aWEauM4yrAoRcC0S9pT/QK1ZFekPfzNx8DWvmzUQDhaYywOBUyflaUr90AGLdM/WPX87qE QhfluIj/1htr8dvFFhspPRmnBWAIQi+u4rAW8O1OsGV+GHQ2FwUA0ogRRXj7cuQS5hUj4S x+hpG/Ud0aSx9xV/UrL06YWfiOkYZ3aGu74KPHqj5boE35zFU48zIjgJh1Ve9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306004; a=rsa-sha256; cv=none; b=MzeBCGASpIsed2lnAEl0jr/MFm0qP8GOUDdrD77c2yfgu8PbyvV352hkxf8grvLfhZodU4 6W8fZp+xmvWaZ2u34KKENVKArHQuMbWrFtTEBBU46hxNWF9D9JJgNgw4nTKwhX1r/1hSBf nowZBpHmLC+IRZGjRZ2RTY5SbMdpHtpDsPpjZedxiL0mVcrh9pkPcqju9au93/fUyNJN3f Ol3+E08WJqB3nPFk9kjAcmMlCRiamDmxKn1O2TdrYvQYCcKayza1VbXcQxGyC2scSgXKPS vqtSrNvQyFbEU1N9ijQJNBBdHIW658+iUZEefsGDyvOudV+fyKlLj08pD7NJBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306004; 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=0tKv/1QDIhxuuusa9QfpA27RSJKfxgTKC1JX4X0Zq6E=; b=kA3JVVH0ERwq+oDoEuaJy/1MhVwaa6OokVsTVTHhENWNQl0/kIArY90Kil2sVVLYlgvY8h VWFrpI1Eq/lqbEVss5FTyoOQjGaSlHozdPQkC4ZuHz7HDaA/yRT86uXdk0stIUbAsi2Mjs TQVf4q2XinGxVo6CMGt2qoiXgezin9I2nwUgIJjOo4WgOplPVdAjxqyWz2HX4H1SlZmMpD u0yJvJmrdzdrnJUnegLSFRiMeRgz095/6BZLYY6Xb8vx3a16Xdtv8MqZ+zoO3DtvDnXDdU ODrd+jGCivp+/fGF5QdhCGMq4kJyy5mnTymyoQJP85EGtjsV0qlngapHRidpXw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM841cLz1F4M for ; Wed, 20 May 2026 19:40:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 392b3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 069cb8961153 - releng/14.4 - Add UPDATING entries and bump version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 069cb8961153c9c70af58d7159eb33f026129c1f Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:04 +0000 Message-Id: <6a0e0e14.392b3.7ad6af6a@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=069cb8961153c9c70af58d7159eb33f026129c1f commit 069cb8961153c9c70af58d7159eb33f026129c1f Author: Mark Johnston AuthorDate: 2026-05-19 23:23:50 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 Add UPDATING entries and bump version Approved by: so --- UPDATING | 26 ++++++++++++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index d13f33a05583..14e25a3b5cb3 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,32 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20260520: + 14.4-RELEASE-p5 SA-26:18.setcred + SA-26:19.file + SA-26:20.fusefs + SA-26:21.ptrace + SA-26:22.libcasper + SA-26:23.bsdinstall + SA-26:24.cap_net + EN-26:13.freebsd-update + + Stack buffer overflow via setcred(2). [SA-26:18.setcred] + + Kernel use-after-free via file descriptor syscalls. [SA-26:19.file] + + Heap overflow in FUSE_LISTXATTR. [SA-26:20.fusefs] + + Missing validation in ptrace(PT_SC_REMOTE). [SA-26:21.ptrace] + + Stack overflow via select() file descriptor set overflow. [SA-26:22.libcasper] + + Remote code execution via Wi-Fi access point scans. [SA-26:23.bsdinstall] + + Incorrect libcap_net limitation list manipulation. [SA-26:24.cap_net] + + freebsd-update attempts to merge a generated file. [EN-26:13.freebsd-update] + 20260430: 14.4-RELEASE-p4 EN-26:11.dhclient diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index a60c58811c3f..c71cb6eb9b68 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.4" -BRANCH="RELEASE-p4" +BRANCH="RELEASE-p5" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed May 20 19:40:03 2026 X-Original-To: dev-commits-src-branches@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 4gLMM80FlRz6fJnL for ; Wed, 20 May 2026 19:40:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMM74GnXz3Z3r for ; Wed, 20 May 2026 19:40:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X77aTXrdKFTd0D9B+O6f8SN7TsgLOQ++XIYi6W/jq/c=; b=Med8JqH4zlJ2WOVyQfkdcWXz/2npKr+Jy/I9bkS8f/SVzNdCrgGQl8noFa9YJ8B8IpH+UW Yfh0xVZMnyWGP6m4YhO1d3TNjNNdvvT3bM58xbeWDi7xmUvUG13JyC00bMM9G137biBOKH a4VqcJjYEIQGlGgF1Kyniu84uEOlxYArOQna0vPxb8mv0NsFsPJUWD8eZDgi52r5ZGR68a CZ0eWsJGQbS/WSWFF/c8DT6zuocbgPpyPmMLafvWLXC+3KiHf2bxyHmvQ2TE51oJXKo8wa E2ISgFgzOgAZ54YO0chaTX1wKaltJII6ZFx6FYgouCFjXMN7ZOBIOc4q82s0Ow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306003; a=rsa-sha256; cv=none; b=H/ImaBBdb2WjrBDuMXSnQnPNxriz++Ev4DYp+1J7yhCPGK1kyqSwQp5IfEpZgK/wM47Fl6 60L0NduBin6xGiJr+tUV7hk4bdP0NXPDxrdhHnWpyjfe8GsxOael6agAyRb19EmfLThasc pBRS+JBbdKMBcpeZnk7jSfiQeXPGLaHkIscgsUfFzi8SSFBQB+6g+wHIElMMvJvy6iGQes M7ipHIiH4o4PNHx2c7n/Z21gl5vRYK8uiLP3dQNdbgaPMeJdsgnPGFshpI+fhK1il6HjF+ PASUH0Tf/72itwB2I9z5YRgS0OMeoRxDpVJ8kNCsT9RWPGIcezPkeXozlPUz9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X77aTXrdKFTd0D9B+O6f8SN7TsgLOQ++XIYi6W/jq/c=; b=Su2AcOAqoyTHmQOXouJypWcSwrE9dy+h+EFk6jawjfaaWtwYlGGLjT3yRgvZEFGwMIzwgE jBxhZRZPDacaDrKGJzjpNxQZ/9q3BeY6i/6UgGC0RTCmDgTwTBkqUfY/IlXpwTtnb0R1UT YpeKFH0D45RwdowqIY9qdzFyy57UcUvGodHwppdJlafVw/lTYpP0zApRvH7kW5ChtHo4K2 i7uPGwAtVEqmIj+IGqymL/QlBVlyi9f3mSenqAzf6CIfaIGIK0Vmk3FW2l3+uDocuU8xwD nVI9ab2vZmwP07wCWC+sVBhxI+k+48Wclz/R/E3oL91Hs3B2v4qNayk8Fz8EmQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMM73dQ5z1FCM for ; Wed, 20 May 2026 19:40:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39255 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: f977328c7277 - releng/14.4 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: f977328c727735f32f7615f19ef6aff96484ffeb Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:03 +0000 Message-Id: <6a0e0e13.39255.46c1dbc@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f977328c727735f32f7615f19ef6aff96484ffeb commit f977328c727735f32f7615f19ef6aff96484ffeb Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Approved by: so Security: FreeBSD-SA-26:24.cap_net Security: CVE-2026-45254 Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) (cherry picked from commit b79faca1c5964d89c125d02de35928b733041f3f) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 40d18319ae28..303a8e4b2120 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1099,12 +1099,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1177,6 +1202,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1235,6 +1263,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Wed May 20 19:40:32 2026 X-Original-To: dev-commits-src-branches@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 4gLMMj1TLQz6fJnZ for ; Wed, 20 May 2026 19:40:33 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMh5Y8Kz3b5m for ; Wed, 20 May 2026 19:40:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JzE2dSC2fmL6CrYGRlVGhusdcTmWYTROnEj3ImFANjg=; b=nM9RDSsnmgbTuybAQ6CHUCyotLenU6Kq/TM4bhXf9pQhEyPaxc9I8KYl3ogtsWrnAOo4nM 6jrl1ghmEsnrZ3SVU/FxhUeQJqm4T7QDALZGbISvrCWAqHKBMUO/g4oTfVZTBhzyyDLFLh xAUQN57kNZJILipsK/X6tPnDuIh9ZmV/bF2/Iujljgll0Yd+X4s5Q6yIO4HwnQNbkD9dX1 VJJVCwsqh1VJCyJem/bEfWH9BaCtpBiTxzp1S7DBt2NfzUUeRxI02GnzIiL+7Z0domTMBF YSCjyV8NohQtGWYMVN3w2Vn+g5dCs8SETiUQXGC9U1aESGFv0iE+VPzvavrz0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306032; a=rsa-sha256; cv=none; b=jR5DEl2Xq1Q7KXgENEADKILTk16eicJnZ70Q/jybRc4kQ08Kd2n5ZFVyZIB6+ScLERgtQA F6RCEvRpkjzUuZEOMA7rZxVM93iK9Rr2HlFNbqz92HCktlQ3A644Rs6smk/y3Pp0sisPUi CLz8Dg23gOswOJ+qmcgxUEwz6p1cRETUmcD3MbURrj/1iQ2xtUykRRjLUwVYbyDNu21Z5I nphbKdDcjDNBXvaQK16VkRmxJsztZZZYaYUEwc1AqlUMxoN2CTk9hOxLDz5B3nTQ4+U/mi kmZZjJJJ9yZkExaYMbcnEJdbAXo7cYpJDa8MzDDnpJd01vjeYAcuA3CWlJ1MFw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JzE2dSC2fmL6CrYGRlVGhusdcTmWYTROnEj3ImFANjg=; b=oL5pBSK1+YnK+8ZBHwi7TGTmBO/NAXvlVU68REUU+ZI6KnIuvFw60q5EE6bbrSHxb/Ca50 CNy8+IO1j9uI8bqgwShfN88jvYPLPAsfGib8h/wBTN4ntecw9+1sN2DU2o/4d7VpyQu3gi +RFNPxspf5EsCvLi0pIHnpyFnk02bNxxGN5xviklxXa4D/cZ43+EE+uMBmd0sKCG6vMCNq VlTpXlORv/mxHjcMynO8Fxdd1qYGFitffnrGkTOasz7RAewQOoVrfhiuPxQdTmyR5iGZa/ 9fn7uGMVYh2ANwmyS58ZmRJUsluqn860KlzUBr0RbFKEASM6rrLN9VwumicM2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMh50VZz1Dhm for ; Wed, 20 May 2026 19:40:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3932c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: bfff5c180193 - releng/14.3 - setcred: Fix buffer overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: bfff5c180193845664a0d9f56f94111214e7c80b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:32 +0000 Message-Id: <6a0e0e30.3932c.516f7981@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bfff5c180193845664a0d9f56f94111214e7c80b commit bfff5c180193845664a0d9f56f94111214e7c80b Author: Dag-Erling Smørgrav AuthorDate: 2026-05-07 08:06:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:48:36 +0000 setcred: Fix buffer overflow Since groups is a pointer to a pointer to an array of gid_t, we should use sizeof(**groups) or sizeof(gid_t) when calculating how much to allocate and copy in. We were using sizeof(*groups) instead, which meant that on 64-bit platforms, we would allocate and copy in twice as much as we should. Unfortunately, in the smallgroups case, we copy into a preallocated buffer which has the correct size, which means that if sc_supp_groups_nb >= CRED_SMALLGROUPS_NB / 2, we overflow smallgroups. This is a direct commit to stable/14. Approved by: so Security: FreeBSD-SA-26:18.setcred Reported by: Ryan of Calif.io Fixes: ddb3eb4efe55 ("New setcred() system call and associated MAC hooks") --- sys/kern/kern_prot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index d0f4c8cd6992..cec3fd829564 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -527,10 +527,10 @@ kern_setcred_copyin_supp_groups(struct setcred *const wcred, */ *groups = wcred->sc_supp_groups_nb < CRED_SMALLGROUPS_NB ? smallgroups : malloc((wcred->sc_supp_groups_nb + 1) * - sizeof(*groups), M_TEMP, M_WAITOK); + sizeof(gid_t), M_TEMP, M_WAITOK); error = copyin(wcred->sc_supp_groups, *groups + 1, - wcred->sc_supp_groups_nb * sizeof(*groups)); + wcred->sc_supp_groups_nb * sizeof(gid_t)); if (error != 0) return (error); wcred->sc_supp_groups = *groups + 1; From nobody Wed May 20 19:40:31 2026 X-Original-To: dev-commits-src-branches@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 4gLMMh0tRGz6fJnY for ; Wed, 20 May 2026 19:40:32 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMg4dxyz3ZmM for ; Wed, 20 May 2026 19:40:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V5abASC8sR56fMBEOI6D3qyFAEsiAw3ZyJioalMTMOs=; b=C1vJv0RNvYefBLaFwFiS0M4To19/C+lsCSwxX3XxpUjggeN7jLX6XpgFaeU3hMiOrZAtA5 5E2O2l/OM/C+fRdvV6Cw79rHl6+RDTfpeULQDRMchgJmoZULb5/jApgYY/kvpbtIapFnuA oOEurqfuF8F7yWEKcawHpKyTAc1sCXy1Op4ZvUDCAewQwN/NAdj+5/ZWkW6JEwSY2g7yJt LwNCtpLHhFClkpQCvH0QbNaTKljugWkcuKHPXbn84uDVf5mZAFMht1E/ASf2cYf5y6Xi1/ rL4uP+0sNh2UuG8EdEh01rmi8LjEr/LlzUTa9dXny1F9CEAWPdjEXrrTrI/B/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306031; a=rsa-sha256; cv=none; b=jVHK5zwyczythJZAWYOlDWEh7T0AokSWG7Y0+UsWx766HPpAiq46wPTPwPREVLO96uZjix YQJZuRG+2krJWP6j/y6oieFtBLSsJqf/HSj+HStABfYrlj5xpGFitSWHRiqhB2sefHiGMp q45c6IHVOE99JllJ3RjbGB4Jmenggpr/RNqdU+p/RprXbOIVRUzGeRHsrc8dMyvQBwEKKq Wq33CElSwKGSolh2fJGFrkcZEl6stOQrqj/u16F5+TCx+o7KHFFNFAmLVIlc/Ec4u8G4Qy WvRimmFUTQpYLeWMvm2I7ywx3RmiU4lDxF2tKjjp1q8plvFOPuXvhVgTdMognA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V5abASC8sR56fMBEOI6D3qyFAEsiAw3ZyJioalMTMOs=; b=xi2yhX9H8BRShZwuLd7VExj/xhIl62M5prQf+X5d312/jqCJippgr3plDrEIVO5A8RZE7p utGro3f/2XRzildAgn4Er3m7L6EwuFKDpTROyDQuyAxxH/OJJ5DH5BE/RPexc3jWBvA0dB F4HCVGPj9rAc/e1X82ijT51WDz/84LK84MJsAByX5bi2KuRf7mYFsXumH+lAPCh0nCerlI yqZnYnP6AKMATqL7nVxGV3/n+KEEPpCv6h6eyYslXGHPVdc12MRy6Yc3st3Yl2S/j/+skG tKbR3ejFpMLOwr/Km0TY0BUQjeD+heTo81dWak2JDnDLZLO1cwZZfZrYatfwtw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMg48WWz1F8t for ; Wed, 20 May 2026 19:40:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39938 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Mark Johnston Subject: git: a1b3818746e3 - releng/14.3 - freebsd-update: Skip /etc/ssl/cert.pem List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: a1b3818746e3a3c75aa8f1ad5c4b8eb04542112b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:31 +0000 Message-Id: <6a0e0e2f.39938.51396809@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a1b3818746e3a3c75aa8f1ad5c4b8eb04542112b commit a1b3818746e3a3c75aa8f1ad5c4b8eb04542112b Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 16:22:04 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:48:36 +0000 freebsd-update: Skip /etc/ssl/cert.pem We already run `certctl rehash` at the end, there is no point in asking users upgrading from 15.0 to 15.1 to manually merge the trust store. Approved by: so Security: FreeBSD-EN-26:13.freebsd-update MFC after: 3 days Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D57028 (cherry picked from commit 2509ddee9bdb2240ba2f622e3a55a98ebc2aa4ae) (cherry picked from commit 7d9c1d3895b307085131f922d7e46a4812f04675) --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index cf314a256b81..8629a97187fc 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2528,7 +2528,7 @@ upgrade_merge () { # Some files need special treatment. case ${F} in - /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db) + /etc/spwd.db | /etc/pwd.db | /etc/login.conf.db | /etc/ssl/cert.pem) # Don't merge these -- we're rebuild them # after updates are installed. cp merge/old/${F} merge/new/${F} From nobody Wed May 20 19:40:33 2026 X-Original-To: dev-commits-src-branches@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 4gLMMk2nb7z6fK1j for ; Wed, 20 May 2026 19:40:34 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMj6KG4z3b5v for ; Wed, 20 May 2026 19:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306034; 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=d4JukfOrK9rNtJeL60hDZTFNEuYj84SJPxUvdWBATzc=; b=rlve4w334djuyL/XR8Kok3TKxgZCFknpo/1EV3x6N0tghgA6CQLX/HL4QyGxMUVpeqBrAo vRGO/a68P5MYGuhEVa2tbfW7gsgBgC8dZJcqPU3SiL+6+HuYXtn8jGBn6lTQS9wBafyDoY Nhsbv3BnXETwqg5lzQZ4c9BiEPK2pomeFPQDGFVExuEiU8jfWZCoeZTvx2AxPQQoONI0MS FKVqTr+u5sJzH5j4GEU8HOUiqIDiJcocP3Vo6xZmxpkyfwuj7nns9q+C1/WXz94QnFM24z FmIFX1zgXbcfb3ihmXLoe4Yj+YC79zOxcZ3RwxChGB7tyV2ui8974EKklsC11g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306034; a=rsa-sha256; cv=none; b=CJAP8wAEUq+R5/VXnCjK/Am5Q2Eqffjp9m+WciE0h3BkzKvwkvBVmueB4HZFd5SCXY7kn+ mn6Cjmmdc3L2NNKV9VhdakFd2CSpGlF3d8YPkLuyvZKPoEMZ+x7JHh+1sjEfwGwMOF1eXs Q/n2GLoPKN26peIBtfDCxMFGQUSxwIbWDV0dpNfZDkkx3w9Q/kkTQc1eCh49xzZfbjh7JW 9o88noQlPAkUAal9GL8GAwuTF05WHshp83VKCh0raKdgkeGn9KnQtAjLiIDxWDWY1HvpSh 0pFB5VnF10Agsl2ZF/cAAt/kFifD3WAGgDPAcsB6GNgLR7sZnE/yQFDSwwu4EA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306033; 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=d4JukfOrK9rNtJeL60hDZTFNEuYj84SJPxUvdWBATzc=; b=cQSuIOHUdP4Nn3qbYRd/wQk58jA5CstwdLmArhnPm8KUvRgdJnmB+lo7xbbJe0gcTm5pTc q2Tdl0tIEJ0sVGSgmhOu4qRPuQUKTz1E7sq06hYzaD+BscLBpho/Oec72juR7LypTT6fs9 WL/s1f4zplyI2UZMm4Mxf+y4qrjsD2+4BM1WWntmAaYZsnNphExIsQ7lcFN0X7Q6YsMJrg oyMqbBXcVs9RbTUcOOs2dOtpNhcsfJ+ASzimPlifq7KLPKPmofp6V2TxE7OMQQZ8vWLwL1 1uH4TIVD6tlJtJf9RpAERXLITef1KHNzh+Oxx6KA1/gXKMhvGPXEqsBwQbbufA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMj5n0jz1F4N for ; Wed, 20 May 2026 19:40:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37657 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c20b3d4a83ad - releng/14.3 - procdesc: Make sure to drain selinfo sleepers in procdesc_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: c20b3d4a83adcae4beec1c0c73bf42caa344a963 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:33 +0000 Message-Id: <6a0e0e31.37657.16417cd1@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c20b3d4a83adcae4beec1c0c73bf42caa344a963 commit c20b3d4a83adcae4beec1c0c73bf42caa344a963 Author: Mark Johnston AuthorDate: 2026-05-08 13:03:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:48:36 +0000 procdesc: Make sure to drain selinfo sleepers in procdesc_free() Otherwise they are left on a freed list after procdesc_free() is called. This can be exploited to elevate privileges. Remove the PDF_SELECTED micro-optimization. doselwakeup() is a no-op if no one ever called selrecord() on the file description, so I see no reason to complicate the code to avoid the call. Add some regression tests. Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 Reported by: 75Acol, Lexpl0it, fcgboy, and robinzeng2015 Reviewed by: kib, oshogbo Fixes: cfb5f7686588 ("Add experimental support for process descriptors") Differential Revision: https://reviews.freebsd.org/D56887 --- sys/kern/sys_procdesc.c | 10 ++-- sys/sys/procdesc.h | 1 - tests/sys/kern/Makefile | 2 + tests/sys/kern/procdesc.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 8 deletions(-) diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index 3221885c9277..4ac4ca401ef4 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -273,6 +273,7 @@ procdesc_free(struct procdesc *pd) KASSERT((pd->pd_flags & PDF_CLOSED), ("procdesc_free: !PDF_CLOSED")); + seldrain(&pd->pd_selinfo); knlist_destroy(&pd->pd_selinfo.si_note); PROCDESC_LOCK_DESTROY(pd); free(pd, M_PROCDESC); @@ -315,10 +316,7 @@ procdesc_exit(struct proc *p) procdesc_free(pd); return (1); } - if (pd->pd_flags & PDF_SELECTED) { - pd->pd_flags &= ~PDF_SELECTED; - selwakeup(&pd->pd_selinfo); - } + selwakeup(&pd->pd_selinfo); KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); PROCDESC_UNLOCK(pd); return (0); @@ -433,10 +431,8 @@ procdesc_poll(struct file *fp, int events, struct ucred *active_cred, PROCDESC_LOCK(pd); if (pd->pd_flags & PDF_EXITED) revents |= POLLHUP; - if (revents == 0) { + else selrecord(td, &pd->pd_selinfo); - pd->pd_flags |= PDF_SELECTED; - } PROCDESC_UNLOCK(pd); return (revents); } diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index 4e8b06fb7377..6a6bb670a16c 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -86,7 +86,6 @@ struct procdesc { * Flags for the pd_flags field. */ #define PDF_CLOSED 0x00000001 /* Descriptor has closed. */ -#define PDF_SELECTED 0x00000002 /* Issue selwakeup(). */ #define PDF_EXITED 0x00000004 /* Process exited. */ #define PDF_DAEMON 0x00000008 /* Don't exit when procdesc closes. */ diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index ac7e4898dfa0..f06f58f1eae6 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -24,6 +24,7 @@ ATF_TESTS_C+= ktls_test .endif ATF_TESTS_C+= ktrace_test ATF_TESTS_C+= module_test +ATF_TESTS_C+= procdesc ATF_TESTS_C+= ptrace_test TEST_METADATA.ptrace_test+= timeout="15" ATF_TESTS_C+= reaper @@ -81,6 +82,7 @@ LIBADD.unix_seqpacket_test+= pthread LIBADD.kcov+= pthread CFLAGS.ktls_test+= -DOPENSSL_API_COMPAT=0x10100000L LIBADD.ktls_test+= crypto util +LIBADD.procdesc+= pthread LIBADD.socket_msg_waitall+= pthread LIBADD.socket_splice+= pthread LIBADD.sendfile_helper+= pthread diff --git a/tests/sys/kern/procdesc.c b/tests/sys/kern/procdesc.c new file mode 100644 index 000000000000..7505e0e4bb94 --- /dev/null +++ b/tests/sys/kern/procdesc.c @@ -0,0 +1,128 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 ConnectWise + * Copyright (c) 2026 Mark Johnston + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* Tests for procdesc(4) that aren't specific to any one syscall */ + +static void * +poll_procdesc(void *arg) +{ + struct pollfd pfd; + + pfd.fd = *(int *)arg; + pfd.events = POLLHUP; + (void)poll(&pfd, 1, 5000); + return ((void *)(uintptr_t)pfd.revents); +} + +/* + * Regression test to exercise the case where a procdesc is closed while a + * thread is poll()ing it. + */ +ATF_TC_WITHOUT_HEAD(poll_close_race); +ATF_TC_BODY(poll_close_race, tc) +{ + pthread_t thr; + pid_t pid; + uintptr_t revents; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLNVAL); +} + +/* + * Verify that poll(2) of a procdesc returns POLLHUP when the process exits. + */ +ATF_TC_WITHOUT_HEAD(poll_exit_wakeup); +ATF_TC_BODY(poll_exit_wakeup, tc) +{ + pthread_t thr; + uintptr_t revents; + pid_t pid; + int error, pd; + + pid = pdfork(&pd, PD_DAEMON); + ATF_REQUIRE_MSG(pid >= 0, "pdfork: %s", strerror(errno)); + if (pid == 0) { + pause(); + _exit(0); + } + + error = pthread_create(&thr, NULL, poll_procdesc, &pd); + ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error)); + + /* Wait for the thread to block in poll(2). */ + usleep(250000); + + ATF_REQUIRE_MSG(pdkill(pd, SIGKILL) == 0, + "pdkill: %s", strerror(errno)); + + error = pthread_join(thr, (void *)&revents); + ATF_REQUIRE_MSG(error == 0, "pthread_join: %s", strerror(error)); + ATF_REQUIRE_EQ(revents, POLLHUP); + + ATF_REQUIRE_MSG(close(pd) == 0, "close: %s", strerror(errno)); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, poll_close_race); + ATF_TP_ADD_TC(tp, poll_exit_wakeup); + + return (atf_no_error()); +} From nobody Wed May 20 19:40:34 2026 X-Original-To: dev-commits-src-branches@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 4gLMMl2Pfnz6fJy8 for ; Wed, 20 May 2026 19:40: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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMl0MtWz3b6C for ; Wed, 20 May 2026 19:40:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306035; 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=Jx8eXCu503z/XN/4Cdyken78o3mj4emeou43BvNGv1I=; b=UlogEfy9kIv/fenWGGBcbb2b06BXYEckjhjcFuv4d/BIDm2+ozCTYvkahSlHrogSl/s2AN htB0MHWInywOGnW+rkwlFrGhTdglLyz9XrGEXlDiSeGrlw+OiKyVb2X+Q0RXnGmlRen1TE vNewLCWohPQnBDbkZm01QCar2zT+oQFjkoHUv2m+2iY4XD63AdBOhXD6dWrhUf4+OdGHVK Y6vLGw0u3vnmHNKcSTtawbz49Kj/GvkN3FCBHAxOJSqTqwWGYvOb9n8W/Xkm2cLiuElYzg 81NaKXo/rb7fkBR92aFn6UHpAYJMPb4x4J5cNTFoGEn66c83v6qnAQaONjy8TA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306035; a=rsa-sha256; cv=none; b=ks1rBKeL1Qpi+0AySYksJKfDd2tor9K9+UhnX96l3jq8S928Q74cvJCEV3B7vxytaybEsK ONl36J2BPMKHPR0nkkTEhukifx280HBwFEWdg5Y5e5ziBEJR8sYgR9I574zwquqgKMFnIl ZhSJvyUVz5HN8ObHUx9iuFFEsrOmZYDKsOr+RN3rKYJOVT4/HEVa6PGBc7cQdXpmBii3AN F1hV+6uTi2rwpN6GAyhVbYKbawYKZaNo9F3DEfGeW50rXMP7tvnhFaVnbPnRbxampdZ1ep s//kCIsFnR2KaPpAqSnnjIhq0lc0rjiITXwHvzHGP2X7n8uDP8hec0LD+BNg5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306035; 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=Jx8eXCu503z/XN/4Cdyken78o3mj4emeou43BvNGv1I=; b=TvmMhCz5PzxNgcBbFkybzAhE7C+2ZuZ/ZQLxfVKSkc2Yx7uc3aYQNxY2PILRZxqr/SrECS 1OtjqbG/tDxmNz/nXuGXrL0a13qsB4IYXLL8KD74DEjHEb7FvnS40C96LGa328MfYPubcY Te5V0HLf440xmgfxaDdx41od0DOJQRcKYjrICtEQ71AFf0n++QwHwfmJN/SYgaED5km/+a zq1T/rkQYYxvIsHBtixckZkmTz9aEXELyaNacPe4f/1TQKLQCh74RQDNklX3Eq4eum9PPZ S/kpap51wmPH7uJrSNiLqhq6uSI1MxMTrMnTOzOx07QXf77JObiZsTczyUqcYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMk6crcz1FCN for ; Wed, 20 May 2026 19:40:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39711 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 659818009d15 - releng/14.3 - netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 659818009d15a75d504c316a1e497c9bbe42450b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:34 +0000 Message-Id: <6a0e0e32.39711.53a5d62a@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=659818009d15a75d504c316a1e497c9bbe42450b commit 659818009d15a75d504c316a1e497c9bbe42450b Author: Mark Johnston AuthorDate: 2026-05-19 00:09:54 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:48:36 +0000 netmap: Drain selinfo sleepers in nm_os_selinfo_uninit() Approved by: so Security: FreeBSD-SA-26:19.file Security: CVE-2026-45251 --- sys/dev/netmap/netmap_freebsd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c index 6448fdc74160..7264111deef5 100644 --- a/sys/dev/netmap/netmap_freebsd.c +++ b/sys/dev/netmap/netmap_freebsd.c @@ -119,6 +119,7 @@ nm_os_selinfo_uninit(NM_SELINFO_T *si) taskqueue_drain(si->ntfytq, &si->ntfytask); taskqueue_free(si->ntfytq); si->ntfytq = NULL; + seldrain(&si->si); knlist_delete(&si->si.si_note, curthread, /*islocked=*/0); knlist_destroy(&si->si.si_note); /* now we don't need the mutex anymore */ From nobody Wed May 20 19:40:36 2026 X-Original-To: dev-commits-src-branches@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 4gLMMm6JK9z6fJt1 for ; Wed, 20 May 2026 19:40:36 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMm0j4xz3bBP for ; Wed, 20 May 2026 19:40:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcW+xt74xUt3ZSTVtGwXxd5XTova+19blrh8ktjaqPM=; b=rH6w1rOSX1m/3cjmqM/ntwoGaeeet3XbPQBe4MXDO6frMGDxg7/F7LJmLGLXq8SGiyXFle VODKJY0+VbhBVUKNbWQtDggHP6fL6T85K1ik7HwbS6JZm867sLOJtNuXGybRhaBRsITzyg bUx/2XIm+vyubw5YWpWBIAV4Pq9LbnWjUwgRapLTB7f3TclswKyXwOeHJs/foqXhYMaHwK XJkMR3IYAWGfnqowHehPv4Gdnzrw2PcJ2cZ/12ooDdHE2dsfmqrfNFBANOULJBkB0EiF2P /D/INccABagWr3eIqOjyVvzDyrst7s60O2gvOWGnxnGns2GoODtcyWBuqjsWKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306036; a=rsa-sha256; cv=none; b=DFLuS1zjCVDsqrTd5lUJ1wDAiH/fWTdZFj2SbRcyxWEF901RwkMtE1Pm+1N2ki3JApc2X5 C5VY4ThPDtVnVOlVSF3fC/fqR1y+6L3NZTrZ5+9ZLqYDqqTIaiATWJ4aqUEHeTlwpd2fdr PiBo6O69UKqCJswmGuDqrq3/xYBcXohVUrEDcv44KFU8XNyDHDOa8FUHGvm5+1Yb0Vfd2Q 9F6Cyc1G3rNS8vXPJOkmsX7sBF1dWYmpgAh7J4NzVP8ZGtjh0SbRYPRWeBCik62RR8bT8Y WQNsivaOtMxgyBb/2cQvJkYxP2HCVBsMAUi2surqaK5XRUJ1ZbVdX7AoSMfyMQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcW+xt74xUt3ZSTVtGwXxd5XTova+19blrh8ktjaqPM=; b=bx381jYY07AQR3mrsrRM5XniLtiVxIQ6biO/O4xdFmjfvlPBrPW123N3mJYdnYtPwdfhCN 0u48D0wZkO+OD5IlS9iPhhUhljoL9bxPOiojIH5CIM7SshuTskW7y375hSAUJCgPKKw/cN 7uuJnvdI2Bz13MY1j/KURJRcKya8t4K9HRTs7nGQme7gsqYeVlrztQiIHAhE+2E6PxY0rp umlFy8XghpIEYxLk2BIT6j5aIeRujg+8iLgxjBD9pQ0IE3aHFQ8TNya8JrcwuV4lcl90dK n240fesdOUDx5kB+uA3pFGwirUcmctTsPCx0OwLtmB1fcs0AGMPK8nxctaCUaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMm06nwz1Dhr for ; Wed, 20 May 2026 19:40:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39ccd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Mark Johnston Subject: git: 53f3bf4ee1ce - releng/14.3 - fusefs: Handle buggy servers' LISTXATTR response List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 53f3bf4ee1ce1d985c1070d4e5b1e4978f2bb92b Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:36 +0000 Message-Id: <6a0e0e34.39ccd.31d701b8@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=53f3bf4ee1ce1d985c1070d4e5b1e4978f2bb92b commit 53f3bf4ee1ce1d985c1070d4e5b1e4978f2bb92b Author: Alan Somers AuthorDate: 2026-05-04 19:35:11 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 fusefs: Handle buggy servers' LISTXATTR response The fuse protocol requires server to respond to LISTXATTR with a NUL-terminated string. If they don't, report an error rather than attempt to scan through uninitialized memory for a NUL. Approved by: so Security: FreeBSD-SA-26:20.fusefs Security: CVE-2026-45252 admbugs: 1039 Reported by: Joshua Rogers Sponsored by: ConnectWise --- sys/fs/fuse/fuse_ipc.h | 1 + sys/fs/fuse/fuse_vnops.c | 17 +++++++---- tests/sys/fs/fusefs/xattr.cc | 73 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 6 deletions(-) diff --git a/sys/fs/fuse/fuse_ipc.h b/sys/fs/fuse/fuse_ipc.h index 5648624f4c63..7627eadb3a95 100644 --- a/sys/fs/fuse/fuse_ipc.h +++ b/sys/fs/fuse/fuse_ipc.h @@ -238,6 +238,7 @@ struct fuse_data { #define FSESS_WARN_WB_CACHE_INCOHERENT 0x400000 /* WB cache incoherent */ #define FSESS_WARN_ILLEGAL_INODE 0x800000 /* Illegal inode for new file */ #define FSESS_WARN_READLINK_EMBEDDED_NUL 0x1000000 /* corrupt READLINK output */ +#define FSESS_WARN_LSEXTATTR_NUL 0x20000000 /* Non nul-terminated xattr list */ #define FSESS_MNTOPTS_MASK ( \ FSESS_DAEMON_CAN_SPY | FSESS_PUSH_SYMLINKS_IN | \ FSESS_DEFAULT_PERMISSIONS | FSESS_INTR) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 87e44051d9a9..5987a2a3061e 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -2806,8 +2806,8 @@ out: * bsd_list, bsd_list_len - output list compatible with bsd vfs */ static int -fuse_xattrlist_convert(char *prefix, const char *list, int list_len, - char *bsd_list, int *bsd_list_len) +fuse_xattrlist_convert(struct fuse_data *data, char *prefix, const char *list, + int list_len, char *bsd_list, int *bsd_list_len) { int len, pos, dist_to_next, prefix_len; @@ -2816,7 +2816,13 @@ fuse_xattrlist_convert(char *prefix, const char *list, int list_len, prefix_len = strlen(prefix); while (pos < list_len && list[pos] != '\0') { - dist_to_next = strlen(&list[pos]) + 1; + dist_to_next = strnlen(&list[pos], list_len - pos - 1) + 1; + if (list[pos + dist_to_next - 1] != '\0') { + fuse_warn(data, FSESS_WARN_LSEXTATTR_NUL, + "The FUSE server returned a non nul-terminated " + "LISTXATTR response."); + return (EIO); + } if (bcmp(&list[pos], prefix, prefix_len) == 0 && list[pos + prefix_len] == extattr_namespace_separator) { len = dist_to_next - @@ -2872,6 +2878,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) struct fuse_listxattr_in *list_xattr_in; struct fuse_listxattr_out *list_xattr_out; struct mount *mp = vnode_mount(vp); + struct fuse_data *data = fuse_get_mpdata(mp); struct thread *td = ap->a_td; struct ucred *cred = ap->a_cred; char *prefix; @@ -2949,8 +2956,6 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) linux_list = fdi.answ; /* FUSE doesn't allow the server to return more data than requested */ if (fdi.iosize > linux_list_len) { - struct fuse_data *data = fuse_get_mpdata(mp); - fuse_warn(data, FSESS_WARN_LSEXTATTR_LONG, "server returned " "more extended attribute data than requested; " @@ -2967,7 +2972,7 @@ fuse_vnop_listextattr(struct vop_listextattr_args *ap) * FreeBSD's format before giving it to the user. */ bsd_list = malloc(linux_list_len, M_TEMP, M_WAITOK); - err = fuse_xattrlist_convert(prefix, linux_list, linux_list_len, + err = fuse_xattrlist_convert(data, prefix, linux_list, linux_list_len, bsd_list, &bsd_list_len); if (err != 0) goto out; diff --git a/tests/sys/fs/fusefs/xattr.cc b/tests/sys/fs/fusefs/xattr.cc index 7fa2a741e074..a348315265c2 100644 --- a/tests/sys/fs/fusefs/xattr.cc +++ b/tests/sys/fs/fusefs/xattr.cc @@ -448,6 +448,79 @@ TEST_F(ListxattrSig, erange_forever) ASSERT_TRUE(WIFSIGNALED(status)); } +/* + * A buggy or malicious server returns a list that isn't nul-terminated. The + * kernel should handle it gracefully. + */ +TEST_F(Listxattr, not_nul_terminated) +{ + uint64_t ino = 42; + int ns = EXTATTR_NAMESPACE_USER; + char *data; + const char expected[4] = {3, 'f', 'o', 'o'}; + const char first[255] = "user.foo\0system.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + const uint8_t badlist[9] = {'u', 's', 'e', 'r', '.', 'f', 'o', 'o', 'd'}; + Sequence seq; + + EXPECT_LOOKUP(FUSE_ROOT_ID, RELPATH) + .WillRepeatedly(Invoke( + ReturnImmediate([=](auto in __unused, auto& out) { + SET_OUT_HEADER_LEN(out, entry); + out.body.entry.attr.mode = S_IFREG | 0644; + out.body.entry.nodeid = ino; + out.body.entry.attr.nlink = 1; + out.body.entry.attr_valid = UINT64_MAX; + out.body.entry.entry_valid = UINT64_MAX; + }))); + + /* + * On the first LISTXATTRS call, return a big attribute just to fill + * the heap with non-NUL data. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(first); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(first), + ReturnImmediate([&](auto in __unused, auto& out) { + memcpy((void*)out.body.bytes, first, sizeof(first)); + out.header.len = sizeof(fuse_out_header) + sizeof(first); + }), &seq + ); + /* + * On the second LISTXATTRS call, return a malformed list with no NUL + * termination. The heap might still be full of the data from the + * first call. + */ + expect_listxattr(ino, 0, + ReturnImmediate([&](auto in __unused, auto& out) { + out.body.listxattr.size = sizeof(badlist); + SET_OUT_HEADER_LEN(out, listxattr); + }), &seq + ); + expect_listxattr(ino, sizeof(badlist), + ReturnImmediate([&](auto in __unused, auto& out) { + memset((void*)out.body.bytes, 'x', sizeof(first)); + memcpy((void*)out.body.bytes, badlist, sizeof(badlist)); + out.header.len = sizeof(fuse_out_header) + sizeof(badlist); + }), &seq + ); + + data = new char[1024]; + + ASSERT_EQ(static_cast(sizeof(expected)), + extattr_list_file(FULLPATH, ns, data, sizeof(data))) + << strerror(errno); + /* + * Receiving this malformed list, the kernel should log it to dmesg and + * report an IO error to the caller. + */ + ASSERT_EQ(-1, extattr_list_file(FULLPATH, ns, data, sizeof(data))); + EXPECT_EQ(EIO, errno); +} + /* * Get the size of the list that it would take to list no extended attributes */ From nobody Wed May 20 19:40:38 2026 X-Original-To: dev-commits-src-branches@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 4gLMMp6f3dz6fJt5 for ; Wed, 20 May 2026 19:40:38 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMp3WmRz3b79 for ; Wed, 20 May 2026 19:40:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3nYGjdK8wwRqd4jLt8Uxsa9eJEkhI5xR5A8svj9THGA=; b=XVURLiDJUI9nU7Y9/q90M45B9cNMfFuKhHpwGOV1Ba4lgpl1OpoTOXlvx0zqutz3m1MSV1 faMPMAmEgu2tpzXelo3RzCGmrlafyxBHCccvyRxgljHfIm3FwKGkmy9AR/+DahZKOHwM2U JSowZxjheMu0VtfeSFvN3nkkzpTCmYm1FlcWKyx18nypCLzCfeTbTAysIbUbFZ5mASMh0Q C1YHEU/PIn1SEoiOXyp2dd55D7qa/Q6JlCUCYWHvmcLGgSZQzbn5HXBkEkXPYcWJovo5vn q0ZkkgMMCC5rtxqchcd4nDVQgifyijDZnUIIDxMDQ06mT396UFZKjEyhcCwZrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306038; a=rsa-sha256; cv=none; b=WLqqazcoViTRuOpxNqUw39hvO0ccOE/Do5V4RE1n4a8uks4vdUYTWxGevuBYzmFp8AXh+O OWpIFCbpxtJiTJfT7QiaZ8JlY0u2c73+CQonSqb0Om56xxaB7eydv5vfY74bU5c8qkOhih CjWohAsyh1cO1ij9EfXCmkvqDeiI/teDh0NuTL1eTeR2jvi9ahs0xJvGNGJVVrhrokkvJS TYC3PWaH0OadcuWSkFXYAz77/U+vKFjnBKz0pjrpQIqKWSFKgTO49avqt4JXwzqeFUcVgs K88apVzD/WWz/XD/0zaVd2XufieA3g4Gq3NUTdpOz4rqFPpX78Dd4wmjiW1Qcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3nYGjdK8wwRqd4jLt8Uxsa9eJEkhI5xR5A8svj9THGA=; b=pEZCLtkQOv8stkVu6mIu/nAW7cOBVsmdQytU/61Ywl0H09eZOcmb3m502Ikz7x6HDhKzKD 06SI/+aO2JKrRf6+r0Ded+jOwT6yAUGbLk4uJHyMvloZjerf9Qqvn8PpTZBVt1yo8CMB1s SV/eJaUudQTQdW0NTSBFCakhJspYH7YVbW7QwVW7Zo5maPAEaNscce9V5J/d4hHb9hgzy+ UOEVQIuCV3CFyOEKq/xfRWc/9vUMGvDZJH9Fef9NUg2NX3i/+gKXqrvlPI63tuA6lWmpr5 Q1rWuGLEydiTZOONuBAj0FF4qKc9OwmgsaRSP0+1IQ0gmpVwoZeVdDHvUEg5aw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMp1qv9z1F8v for ; Wed, 20 May 2026 19:40:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39a97 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: cbec31838173 - releng/14.3 - libcasper: switch from select(2) to poll(2) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: cbec318381734159c4d1e2a831ddc5c2ad402eb0 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:38 +0000 Message-Id: <6a0e0e36.39a97.2a035ee8@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=cbec318381734159c4d1e2a831ddc5c2ad402eb0 commit cbec318381734159c4d1e2a831ddc5c2ad402eb0 Author: Mariusz Zaborski AuthorDate: 2026-05-18 15:32:49 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 libcasper: switch from select(2) to poll(2) The previous implementation used FD_SET() on a stack-allocated fd_set, which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE (1024). poll(2) takes an array indexed by slot rather than by fd value, so it has no FD_SETSIZE limit. Approved by: so Security: FreeBSD-SA-26:22.libcasper Security: CVE-2026-39461 Reported by: Joshua Rogers Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D56695 --- lib/libcasper/libcasper/libcasper_impl.h | 6 +- lib/libcasper/libcasper/libcasper_service.c | 57 +-------- lib/libcasper/libcasper/service.c | 188 ++++++++++++++++------------ lib/libcasper/tests/Makefile | 12 +- lib/libcasper/tests/cap_main_test.c | 142 +++++++++++++++++++++ 5 files changed, 263 insertions(+), 142 deletions(-) diff --git a/lib/libcasper/libcasper/libcasper_impl.h b/lib/libcasper/libcasper/libcasper_impl.h index 5f0aacf2afa8..43d2495cacf6 100644 --- a/lib/libcasper/libcasper/libcasper_impl.h +++ b/lib/libcasper/libcasper/libcasper_impl.h @@ -54,6 +54,8 @@ void service_message(struct service *service, void service_start(struct service *service, int sock, int procfd); const char *service_name(struct service *service); int service_get_channel_flags(struct service *service); +bool service_have_connections(void); +bool service_poll_dispatch(void); /* Private service connection functions. */ struct service_connection *service_connection_add(struct service *service, @@ -64,10 +66,6 @@ void service_connection_remove( int service_connection_clone( struct service *service, struct service_connection *sconn); -struct service_connection *service_connection_first( - struct service *service); -struct service_connection *service_connection_next( - struct service_connection *sconn); cap_channel_t *service_connection_get_chan( const struct service_connection *sconn); int service_connection_get_sock( diff --git a/lib/libcasper/libcasper/libcasper_service.c b/lib/libcasper/libcasper/libcasper_service.c index 3468b520e275..6e9cd9d3d338 100644 --- a/lib/libcasper/libcasper/libcasper_service.c +++ b/lib/libcasper/libcasper/libcasper_service.c @@ -223,10 +223,6 @@ service_register_core(int fd) void casper_main_loop(int fd) { - fd_set fds; - struct casper_service *casserv; - struct service_connection *sconn, *sconntmp; - int sock, maxfd, ret; if (zygote_init() < 0) _exit(1); @@ -236,55 +232,10 @@ casper_main_loop(int fd) */ service_register_core(fd); - for (;;) { - FD_ZERO(&fds); - FD_SET(fd, &fds); - maxfd = -1; - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; - sconn = service_connection_next(sconn)) { - sock = service_connection_get_sock(sconn); - FD_SET(sock, &fds); - maxfd = sock > maxfd ? sock : maxfd; - } - } - if (maxfd == -1) { - /* Nothing to do. */ - _exit(0); - } - maxfd++; - - - assert(maxfd <= (int)FD_SETSIZE); - ret = select(maxfd, &fds, NULL, NULL, NULL); - assert(ret == -1 || ret > 0); /* select() cannot timeout */ - if (ret == -1) { - if (errno == EINTR) - continue; + while (service_have_connections()) { + if (!service_poll_dispatch()) _exit(1); - } - - TAILQ_FOREACH(casserv, &casper_services, cs_next) { - /* We handle only core services. */ - if (!CSERVICE_IS_CORE(casserv)) - continue; - for (sconn = service_connection_first(casserv->cs_service); - sconn != NULL; sconn = sconntmp) { - /* - * Prepare for connection to be removed from - * the list on failure. - */ - sconntmp = service_connection_next(sconn); - sock = service_connection_get_sock(sconn); - if (FD_ISSET(sock, &fds)) { - service_message(casserv->cs_service, - sconn); - } - } - } } + + _exit(0); } diff --git a/lib/libcasper/libcasper/service.c b/lib/libcasper/libcasper/service.c index 103791676272..72de10477480 100644 --- a/lib/libcasper/libcasper/service.c +++ b/lib/libcasper/libcasper/service.c @@ -30,8 +30,7 @@ * SUCH DAMAGE. */ -#include -#include +#include #include #include #include @@ -42,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -72,7 +72,8 @@ struct service_connection { int sc_magic; cap_channel_t *sc_chan; nvlist_t *sc_limits; - TAILQ_ENTRY(service_connection) sc_next; + struct service *sc_service; + size_t sc_pollidx; }; #define SERVICE_MAGIC 0x5e91ce @@ -82,9 +83,90 @@ struct service { uint64_t s_flags; service_limit_func_t *s_limit; service_command_func_t *s_command; - TAILQ_HEAD(, service_connection) s_connections; }; +#define POLLSET_CHUNK 8 +static struct pollfd *pollset_pfds; +static struct service_connection **pollset_conns; +static size_t pollset_cap; +static size_t pollset_size; + +static int +pollset_add(struct service_connection *sconn, int sock) +{ + size_t i, newcap; + void *p; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd < 0) + break; + } + if (i == pollset_size) { + newcap = roundup2(pollset_size + 1, POLLSET_CHUNK); + if (newcap > pollset_cap) { + p = reallocarray(pollset_pfds, newcap, + sizeof(*pollset_pfds)); + if (p == NULL) + return (-1); + pollset_pfds = p; + p = reallocarray(pollset_conns, newcap, + sizeof(*pollset_conns)); + if (p == NULL) + return (-1); + pollset_conns = p; + pollset_cap = newcap; + } + pollset_size++; + } + pollset_pfds[i].fd = sock; + pollset_pfds[i].events = POLLIN; + pollset_pfds[i].revents = 0; + pollset_conns[i] = sconn; + sconn->sc_pollidx = i; + return (0); +} + +static void +pollset_remove(struct service_connection *sconn) +{ + + pollset_pfds[sconn->sc_pollidx].fd = -1; + pollset_conns[sconn->sc_pollidx] = NULL; +} + +bool +service_have_connections(void) +{ + size_t i; + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].fd >= 0) + return (true); + } + return (false); +} + +bool +service_poll_dispatch(void) +{ + size_t i; + int ret; + + do { + ret = poll(pollset_pfds, pollset_size, -1); + } while (ret == -1 && errno == EINTR); + if (ret == -1) + return (false); + + for (i = 0; i < pollset_size; i++) { + if (pollset_pfds[i].revents == 0) + continue; + service_message(pollset_conns[i]->sc_service, + pollset_conns[i]); + } + return (true); +} + struct service * service_alloc(const char *name, service_limit_func_t *limitfunc, service_command_func_t *commandfunc, uint64_t flags) @@ -102,7 +184,6 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, service->s_limit = limitfunc; service->s_command = commandfunc; service->s_flags = flags; - TAILQ_INIT(&service->s_connections); service->s_magic = SERVICE_MAGIC; return (service); @@ -111,13 +192,16 @@ service_alloc(const char *name, service_limit_func_t *limitfunc, void service_free(struct service *service) { - struct service_connection *sconn; + size_t i; assert(service->s_magic == SERVICE_MAGIC); service->s_magic = 0; - while ((sconn = service_connection_first(service)) != NULL) - service_connection_remove(service, sconn); + for (i = 0; i < pollset_size; i++) { + if (pollset_conns[i] != NULL && + pollset_conns[i]->sc_service == service) + service_connection_remove(service, pollset_conns[i]); + } free(service->s_name); free(service); } @@ -154,8 +238,16 @@ service_connection_add(struct service *service, int sock, return (NULL); } } + sconn->sc_service = service; + if (pollset_add(sconn, sock) == -1) { + serrno = errno; + nvlist_destroy(sconn->sc_limits); + (void)cap_unwrap(sconn->sc_chan, NULL); + free(sconn); + errno = serrno; + return (NULL); + } sconn->sc_magic = SERVICE_CONNECTION_MAGIC; - TAILQ_INSERT_TAIL(&service->s_connections, sconn, sc_next); return (sconn); } @@ -167,7 +259,7 @@ service_connection_remove(struct service *service, assert(service->s_magic == SERVICE_MAGIC); assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - TAILQ_REMOVE(&service->s_connections, sconn, sc_next); + pollset_remove(sconn); sconn->sc_magic = 0; nvlist_destroy(sconn->sc_limits); cap_close(sconn->sc_chan); @@ -197,31 +289,6 @@ service_connection_clone(struct service *service, return (sock[1]); } -struct service_connection * -service_connection_first(struct service *service) -{ - struct service_connection *sconn; - - assert(service->s_magic == SERVICE_MAGIC); - - sconn = TAILQ_FIRST(&service->s_connections); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - -struct service_connection * -service_connection_next(struct service_connection *sconn) -{ - - assert(sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - - sconn = TAILQ_NEXT(sconn, sc_next); - assert(sconn == NULL || - sconn->sc_magic == SERVICE_CONNECTION_MAGIC); - return (sconn); -} - cap_channel_t * service_connection_get_chan(const struct service_connection *sconn) { @@ -330,14 +397,6 @@ service_message(struct service *service, struct service_connection *sconn) nvlist_destroy(nvlout); } -static int -fd_add(fd_set *fdsp, int maxfd, int fd) -{ - - FD_SET(fd, fdsp); - return (fd > maxfd ? fd : maxfd); -} - const char * service_name(struct service *service) { @@ -418,9 +477,6 @@ service_clean(int *sockp, int *procfdp, uint64_t flags) void service_start(struct service *service, int sock, int procfd) { - struct service_connection *sconn, *sconntmp; - fd_set fds; - int maxfd, nfds; assert(service != NULL); assert(service->s_magic == SERVICE_MAGIC); @@ -430,43 +486,9 @@ service_start(struct service *service, int sock, int procfd) if (service_connection_add(service, sock, NULL) == NULL) _exit(1); - for (;;) { - FD_ZERO(&fds); - maxfd = -1; - for (sconn = service_connection_first(service); sconn != NULL; - sconn = service_connection_next(sconn)) { - maxfd = fd_add(&fds, maxfd, - service_connection_get_sock(sconn)); - } - - assert(maxfd >= 0); - assert(maxfd + 1 <= (int)FD_SETSIZE); - nfds = select(maxfd + 1, &fds, NULL, NULL, NULL); - if (nfds < 0) { - if (errno != EINTR) - _exit(1); - continue; - } else if (nfds == 0) { - /* Timeout. */ - abort(); - } - - for (sconn = service_connection_first(service); sconn != NULL; - sconn = sconntmp) { - /* - * Prepare for connection to be removed from the list - * on failure. - */ - sconntmp = service_connection_next(sconn); - if (FD_ISSET(service_connection_get_sock(sconn), &fds)) - service_message(service, sconn); - } - if (service_connection_first(service) == NULL) { - /* - * No connections left, exiting. - */ - break; - } + while (service_have_connections()) { + if (!service_poll_dispatch()) + _exit(1); } _exit(0); diff --git a/lib/libcasper/tests/Makefile b/lib/libcasper/tests/Makefile index b8996030aafc..1ddb7e72128b 100644 --- a/lib/libcasper/tests/Makefile +++ b/lib/libcasper/tests/Makefile @@ -1,5 +1,13 @@ +.include -.PATH: ${SRCTOP}/tests -KYUAFILE= yes +PACKAGE= tests + +ATF_TESTS_C= cap_main_test + +.if ${MK_CASPER} != "no" +LIBADD+= casper +CFLAGS+= -DWITH_CASPER +.endif +LIBADD+= nv .include diff --git a/lib/libcasper/tests/cap_main_test.c b/lib/libcasper/tests/cap_main_test.c new file mode 100644 index 000000000000..0551f12de66e --- /dev/null +++ b/lib/libcasper/tests/cap_main_test.c @@ -0,0 +1,142 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Mariusz Zaborski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include + +#include + +#include + +#define NCONNECTIONS (FD_SETSIZE + 64) +#define FD_HEADROOM 64 + +/* Test that file descriptors past FD_SETSIZE (1024) work. */ +ATF_TC_WITHOUT_HEAD(many_connections); +ATF_TC_BODY(many_connections, tc) +{ + struct rlimit rl; + cap_channel_t *chan; + cap_channel_t **clones; + size_t i; + + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + atf_tc_skip("getrlimit: %s", strerror(errno)); + if (rl.rlim_max < NCONNECTIONS + FD_HEADROOM) + atf_tc_skip("RLIMIT_NOFILE hard cap %ju below required %d", + (uintmax_t)rl.rlim_max, NCONNECTIONS + FD_HEADROOM); + rl.rlim_cur = rl.rlim_max; + ATF_REQUIRE_MSG(setrlimit(RLIMIT_NOFILE, &rl) == 0, + "setrlimit: %s", strerror(errno)); + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + clones = calloc(NCONNECTIONS, sizeof(*clones)); + ATF_REQUIRE(clones != NULL); + + /* + * Every cap_clone(3) adds one more connection to the helper. + * After this loop the helper is watching more fds than an + * fd_set can hold. + */ + for (i = 0; i < NCONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu/%d: %s", + i, NCONNECTIONS, strerror(errno)); + } + + for (i = 0; i < NCONNECTIONS; i++) + cap_close(clones[i]); + free(clones); + cap_close(chan); +} + +#define CHURN_CONNECTIONS 50 +#define CHURN_CLOSE_STEP 5 + +/* Test that gaps in the file descriptor list do not break casper. */ +ATF_TC_WITHOUT_HEAD(connection_churn); +ATF_TC_BODY(connection_churn, tc) +{ + cap_channel_t *chan, *survivor, *extra; + cap_channel_t *clones[CHURN_CONNECTIONS]; + size_t i, survivor_idx; + + chan = cap_init(); + ATF_REQUIRE_MSG(chan != NULL, "cap_init failed: %s", strerror(errno)); + + for (i = 0; i < CHURN_CONNECTIONS; i++) { + clones[i] = cap_clone(chan); + ATF_REQUIRE_MSG(clones[i] != NULL, + "cap_clone failed at %zu: %s", i, strerror(errno)); + } + + /* + * Close every Nth clone. + */ + for (i = 0; i < CHURN_CONNECTIONS; i += CHURN_CLOSE_STEP) { + cap_close(clones[i]); + clones[i] = NULL; + } + + /* + * Force a poll() cycle: the helper handles POLLIN on chan and + * POLLHUP on the closed clones in the same walk. + */ + extra = cap_clone(chan); + ATF_REQUIRE_MSG(extra != NULL, "cap_clone after churn failed: %s", + strerror(errno)); + + /* A surviving clone must still round-trip. */ + survivor_idx = 1; + survivor = cap_clone(clones[survivor_idx]); + ATF_REQUIRE_MSG(survivor != NULL, + "cap_clone on survivor failed: %s", strerror(errno)); + + cap_close(survivor); + cap_close(extra); + for (i = 0; i < CHURN_CONNECTIONS; i++) { + if (clones[i] != NULL) + cap_close(clones[i]); + } + cap_close(chan); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, many_connections); + ATF_TP_ADD_TC(tp, connection_churn); + return (atf_no_error()); +} From nobody Wed May 20 19:40:37 2026 X-Original-To: dev-commits-src-branches@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 4gLMMn4bSPz6fJt4 for ; Wed, 20 May 2026 19:40:37 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMn1NDdz3bHJ for ; Wed, 20 May 2026 19:40:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306037; 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=cShUw8FEA5wXePSeJwT7q9M8MEUqflGcKVUb/6Jt48A=; b=RPHWdbutL+Hh9QXTQf2sDVzYzaF/M0Zv/71FcIhgcAVrSPHMwccO6jxxrE9NHKJbIyDRY5 8tT3jijDmKg3xEhwhlnaukGkMR7rbf4gwoqQS/hE1v3aoZNXb1bDsGCOGe43sYgZqBC5K8 KyEmmdszqikL28gnt84bBcJnvOxBKjOpX0+jZbqJ5jYPpEGJ6+7yPyTEMGMn9W5v1TEaqh 9Dmy53q1e5CqIG3mEUZXHXXA3YfJcfOvn9DFixvjzzM/kzg8jElj7kWtn/8G77Vyz3aYiJ B3h9vMNs2a7et/IYLfClxP023BdN7wy+wrlJQI9ITcEVhZ3Ys9n+N9lWtYPiEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306037; a=rsa-sha256; cv=none; b=oLad5gC+Pywlm5wW9C4fOO1Gd+o9vxkuFYdRpmvghzjchVkVsc54f/gQHmmREC9NFA+1X6 NHIJDA6TStD6wq97hf/H+yRS0SvCFf4pr8T4xqjQB83Ena1uZURAwZdMJZRacUFGGPzXyz Rt0xd95RcK3T0VNy+4p75GszKE8wGX8evt1P7S9RAwbThT+SFXWVMCmma5giG0I5cAMxK9 SvPjjI3ROlcY5IfVViVKxWKgI2nh2e7AiGDW4sNgwkXizm+fjV/aE9eQ+nu4OKeLZd95sv aNJhwriT9eyU5lSghNVxGB4+nQ/g2ylfxnN/7ABxPVgRbdFeNEThGJtRYrbLvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306037; 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=cShUw8FEA5wXePSeJwT7q9M8MEUqflGcKVUb/6Jt48A=; b=ZvK6iaCSi4FAkSv9P4aZDlBwda47MxAZNitD1l8+tGzmY+6tRWs0d7ICAhoAQes+H49ozQ baMCUEgFSgLUKwayQd6fCR/AnIfH4CJoLxuXVFqhsFelIl2USi9M/AGNzn1yvgCr71uROO eVCim/fguJf33cRd5sywCpUdzypeBY2YW+Yj/Xt90lxNVtqgkyNTDyS1Lmbdo3aQvrOtCn 3jrP6yaIsBX8cbIGq4THJnpS0TfSYXuIsv+I8KuJ0Smtk+rsmGz7fvU6zEDfUDW000TLTF 1tILhveQnp1H+6o12W7oT1m0bBm1ObtyYtEekPG413Wt7VieNgmYjjnSmNdZng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMn0yFzz1F4Q for ; Wed, 20 May 2026 19:40:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 389f9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 45bd421661c4 - releng/14.3 - ptrace: Fix validation of PT_SC_REMOTE arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 45bd421661c401b117b452e92dd473950b8d9ee0 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:37 +0000 Message-Id: <6a0e0e35.389f9.670e3409@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=45bd421661c401b117b452e92dd473950b8d9ee0 commit 45bd421661c401b117b452e92dd473950b8d9ee0 Author: Mark Johnston AuthorDate: 2026-05-12 17:32:17 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 ptrace: Fix validation of PT_SC_REMOTE arguments - Fix an off-by-one in the system call number check. A value of SYS_MAXSYSCALL was permitted. - Validate the system call number after we've dealt with syscall(2)/__syscall(2), since they pass the syscall number as an argument. - When the syscall number is for syscall(2) or __syscall(2), we must make sure that nargs > 0 to avoid an underflow when shifting arguments down. Add regression tests. Approved by: so Security: FreeBSD-SA-26:21.ptrace Security: CVE-2026-45253 Fixes: 140ceb5d956b ("ptrace(2): add PT_SC_REMOTE remote syscall request") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D56978 --- sys/kern/kern_sig.c | 17 +++++---- tests/sys/kern/ptrace_test.c | 88 +++++++++++++++++++++++++++++++++----------- 2 files changed, 77 insertions(+), 28 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 8e5c9f247b57..3ef9d093b29e 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2677,23 +2677,26 @@ ptrace_syscallreq(struct thread *td, struct proc *p, struct sysentvec *sv; struct sysent *se; register_t rv_saved[2]; + unsigned int sc; int error, nerror; - int sc; bool audited, sy_thr_static; - sv = p->p_sysent; - if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { - tsr->ts_ret.sr_error = ENOSYS; - return; - } - sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + if (tsr->ts_nargs == 0) { + tsr->ts_ret.sr_error = EINVAL; + return; + } sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } + sv = p->p_sysent; + if (sv->sv_table == NULL || sc >= sv->sv_size) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } tsr->ts_sa.callp = se = &sv->sv_table[sc]; VM_CNT_INC(v_syscall); diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index 9aff1738f293..bfe76d86fd16 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4363,6 +4363,25 @@ ATF_TC_BODY(ptrace__procdesc_reparent_wait_child, tc) REQUIRE_EQ(close(pd), 0); } +static void +pt_sc_remote(pid_t pid, struct ptrace_sc_remote *pscr, int error, + syscallarg_t ret) +{ + pid_t wpid; + int status; + + ATF_REQUIRE(ptrace(PT_SC_REMOTE, pid, (caddr_t)pscr, sizeof(*pscr)) != + -1); + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_error, error); + if (error == 0) + ATF_REQUIRE_EQ(pscr->pscr_ret.sr_retval[0], ret); + + wpid = waitpid(pid, &status, 0); + REQUIRE_EQ(wpid, pid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); +} + /* * Try using PT_SC_REMOTE to get the PID of a traced child process. */ @@ -4370,8 +4389,7 @@ ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_getpid); ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) { struct ptrace_sc_remote pscr; - pid_t fpid, wpid; - int status; + pid_t fpid; ATF_REQUIRE((fpid = fork()) != -1); if (fpid == 0) { @@ -4384,35 +4402,62 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getpid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == fpid, - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); - - wpid = waitpid(fpid, &status, 0); - REQUIRE_EQ(wpid, fpid); - ATF_REQUIRE(WIFSTOPPED(status)); - REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pt_sc_remote(fpid, &pscr, 0, fpid); pscr.pscr_syscall = SYS_getppid; pscr.pscr_nargs = 0; pscr.pscr_args = NULL; - ATF_REQUIRE(ptrace(PT_SC_REMOTE, fpid, (caddr_t)&pscr, sizeof(pscr)) != - -1); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_error == 0, - "remote getppid failed with error %d", pscr.pscr_ret.sr_error); - ATF_REQUIRE_MSG(pscr.pscr_ret.sr_retval[0] == getpid(), - "unexpected return value %jd instead of %d", - (intmax_t)pscr.pscr_ret.sr_retval[0], fpid); + pt_sc_remote(fpid, &pscr, 0, getpid()); + + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); +} + +ATF_TC_WITHOUT_HEAD(ptrace__PT_SC_REMOTE_syscall_validation); +ATF_TC_BODY(ptrace__PT_SC_REMOTE_syscall_validation, tc) +{ + struct ptrace_sc_remote pscr; + quad_t code; + int status; + pid_t fpid, wpid; + + code = SYS_MAXSYSCALL; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + exit(0); + } wpid = waitpid(fpid, &status, 0); REQUIRE_EQ(wpid, fpid); ATF_REQUIRE(WIFSTOPPED(status)); REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + pscr.pscr_syscall = SYS_MAXSYSCALL; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS_syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 0; + pscr.pscr_args = NULL; + pt_sc_remote(fpid, &pscr, EINVAL, 0); + + pscr.pscr_syscall = SYS___syscall; + pscr.pscr_nargs = 1; + pscr.pscr_args = (syscallarg_t *)&code; + pt_sc_remote(fpid, &pscr, ENOSYS, 0); + ATF_REQUIRE(ptrace(PT_DETACH, fpid, (caddr_t)1, 0) != -1); } @@ -4529,6 +4574,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_wait_child); ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); + ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_syscall_validation); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); return (atf_no_error()); From nobody Wed May 20 19:40:40 2026 X-Original-To: dev-commits-src-branches@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 4gLMMr6P8rz6fK4Q for ; Wed, 20 May 2026 19:40:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMr47bqz3bFm for ; Wed, 20 May 2026 19:40:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306040; 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=y3ZOS/y2Fk1qsHSj0IkNq+oNA6pRiGyU2ki6vU6uiFU=; b=V+zeYfY/BKntYx7UoMwvVX+n5amoHxaRysjapzGo5qVlBgPUfH+ED3xNlUz3RrK41/+UL+ gh0ogPA2UmDF3qI+xxMaAa+qPT2Ru5XOdZN3Uqr56aG2LhiisxswC3iof039wckvpPak/5 p//BOuBJ+p3DEw5vPug77WxkpSkmK+0PA+ref3KFabawcGGKUtlq4/mta0aO0hJGnFcoK6 dy1WcHvwAnOsa776gITu9/ss4JQ8fwUhGXI4WgZF5TAcwSb1bZpglq34qERl5fCog/k3bN fLt6bMI3dBA9VdYxEvsnCNrnwUNB/q7VIZn9vdwq4d9/BKdVqRNOr88v2Q+WIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306040; a=rsa-sha256; cv=none; b=BIwZPQ8rym0302S/jLC7NBOALckuhgGxLMmRIYHaO4uOlGEHSdXRMKbx+uYoweil5tYuIN 0N5WKbKOFTtDFnSI3KnDeF4Iikm+uHEPpv3SQREOG8Xi3KQk9gS7y8IrRiXYaGDg8xMONR PqPUWxjC7DR7jiF85ZVsiJwjUmvaw1l8KTscyvIgIKpyxlSnVltJhcAbrOCc2HenU+Ns2o T4B4ftMhzaOtQr7JaGnonJR0ZozyBeUtzHvnBSL1J6dSv8EX/euIJJcJlg21wOdoa5Nhpj 8C2WWUJ26D3evkJ9IN3PwBxSqUuRz9LPdOatsednDFP/QP/4X4bjOpWakS93Lg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306040; 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=y3ZOS/y2Fk1qsHSj0IkNq+oNA6pRiGyU2ki6vU6uiFU=; b=pg6Ou1rKszDzVOwUioGMBCO02Wzz714ctQfg/h/E3+U3W+pKQDVwqLt30cEJf/JxmGq7Ul jBFEVH03JGaJdbO/Tq7x714AamppV8GOCfDFbyIXdghlcrOLViw3mEBFIwycHrGJ8PEYtT BNrnR3FJZDiwhTnsBG2iuom3fpaPe5eygIs7WURTcABbPoOJzdU18QW0q4DCx6bvI5eFuV 40CvXABfpgXK5BzZ4vD93/L702RXyXtNHzR5x8If+IskJPpFpy1eMXt7sYyoKTjtkWKZo3 Of0QDmeTjEcLBJeVV87jPanFk4ORVBCx4vr3Dvhb0poPMc1X93apIpMrMoPosA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMr3YRyz1Dt7 for ; Wed, 20 May 2026 19:40:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 384cf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9cb0be8381f7 - releng/14.3 - bsdconfig: Make sure that SSID names are properly escaped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 9cb0be8381f7c9ecab5892f4f7277f53b7fcc5f6 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:40 +0000 Message-Id: <6a0e0e38.384cf.2c88939e@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9cb0be8381f7c9ecab5892f4f7277f53b7fcc5f6 commit 9cb0be8381f7c9ecab5892f4f7277f53b7fcc5f6 Author: Mark Johnston AuthorDate: 2026-05-12 14:16:46 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 bsdconfig: Make sure that SSID names are properly escaped The f_menu_wpa_scan_results() function returns a list of networks discovered by a scan. The untrusted network names are evaluated in f_dialog_menu_wireless_edit. The quoting applied in f_menu_wpa_scan_results() protects against evaluation of something like "$(whoami)" but one can add single quotes to defeat that. Pass the SSID names through f_shell_escape to work around this. Escape single quotes in f_dialog_wireless_edit() and f_menu_wireless_configs() too for consistency. I note that this module doesn't seem to actually work, see e.g., bugzilla PR 229883. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des Differential Revision: https://reviews.freebsd.org/D56974 --- usr.sbin/bsdconfig/share/media/wlan.subr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/usr.sbin/bsdconfig/share/media/wlan.subr b/usr.sbin/bsdconfig/share/media/wlan.subr index 5847356d1925..5d271c403b3c 100644 --- a/usr.sbin/bsdconfig/share/media/wlan.subr +++ b/usr.sbin/bsdconfig/share/media/wlan.subr @@ -813,6 +813,7 @@ f_dialog_wireless_edit() [ $nmatches -le ${#DIALOG_MENU_TAGS} ] || break f_substr -v tag "$DIALOG_MENU_TAGS" $nmatches 1 + f_shell_escape "$wssid" wssid f_wireless_describe WIRELESS_$n help menu_list1="$menu_list1 '$tag $wssid' '$wbssid' '$help' @@ -1076,6 +1077,7 @@ f_menu_wireless_configs() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid menuitem_$n get nconfigs nconfigs desc="$nconfigs $msg_configured_lc" @@ -1184,6 +1186,7 @@ f_menu_wpa_scan_results() while [ $n -lt $nunique ]; do n=$(( $n + 1 )) menuitem_$n get ssid ssid + f_shell_escape "$ssid" ssid desc= if [ "$DIALOG_MENU_WLAN_SHOW_ALL" ]; then From nobody Wed May 20 19:40:39 2026 X-Original-To: dev-commits-src-branches@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 4gLMMr012Qz6fK6P for ; Wed, 20 May 2026 19:40:40 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMq37KRz3bNH for ; Wed, 20 May 2026 19:40:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kuNqt8gAbLkf69MT4fOuX78cF7IKYc/koBvWlKAWsGc=; b=dngIwbqVtcVjSxks/aV37J2jMVnat4Jr/BlWQdipkkwpRJHiPMivKfJbVF7Id/400zEbLv Z0ElypuwHVgLSkE3W765vZ/WIivl2nbB7nqd+xOny0VfwaVXMqf9O48qlbFCktd+xqawUo IOwCKUdpVTITBJ0pKDugNYZLf3qaQZnE8THGd1OVyG0cMt8bPYv0at/OHPWVHvgK/ivvkC IoLFiVuzhEe6GTyRgwMPBFNHuOpypPQ1hjjSXV9NfczPFo4aCpY+iP+TPz9d8JUhK8qV1h iz9ykp5rKLYegnlgvwLOOd3FaNAqM/I9a//UgEcMlHpWq9dDN3h4kffTPzyDIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306039; a=rsa-sha256; cv=none; b=eXj8B2gxi89iVP2WTWwM2Dg88m52B2+e2090+3eNi5zYvzzw3LsRnrC3kBCfZXsZWFLJ+c bct7NyxLdDo1RPvkLX27RvL6NaS392VV5tCqomf/uX+VFKnfJpFqpP/h/SxbaVMS5H0pr+ DlMr8WhG6JVXu1OLD1anvyCr2McVy/ANHP6GcQ7jIs+VbgPCVrtpMPr7AntBQhhjw/VWhF 9ATcw24dsoijAGiyWzCnrJw1h1w8SDZGNWHOtFovHM8hy1KDdGG3eZ97bL7WEeddaw2E2Z fTNdOkO4TeHamiE8s7VzvTgvqrgu8m1cyhezNqbaYsMAymyic9pDcoGEa7zK4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kuNqt8gAbLkf69MT4fOuX78cF7IKYc/koBvWlKAWsGc=; b=MJu6wB7kgX7Ng1eOy0f9AgyrN5hM4YeCv9s+YfBbKroOJiljImv93cxQqxuIfC3PPjvXeP twfOgH2/kbpTso6690lX0GNWD7akODJQ4q++3x1B1M7+GnLhZN/aDULAq5EcG2qpvELGt3 lr6ZsG+hqL5uSY12vG++fzTdpD3VoBRioEe5+++tBGtjikXlxMihCttbXFHYc9Qwed2Vl9 cQki2KF7df5ze9pDKyUtGGS6mwM7Rs2Kkka/APzB5XYI9HKc22rgghFcUhB27CuAIlTp7T y4exts8DtUHP6dshLR6RMUPXf6N7scjJPXRmwRgz+W7T3LHiK868VVvqeJ+FoQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMq2hPwz1DY6 for ; Wed, 20 May 2026 19:40:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39c24 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Renato Botelho From: Mark Johnston Subject: git: 7b80739d1290 - releng/14.3 - bsdinstall: Avoid invoking eval on the wlan SSID list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 7b80739d1290bb634fa7f45137297a0a8d02b3cd Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:39 +0000 Message-Id: <6a0e0e37.39c24.379b2a98@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7b80739d1290bb634fa7f45137297a0a8d02b3cd commit 7b80739d1290bb634fa7f45137297a0a8d02b3cd Author: Renato Botelho AuthorDate: 2024-05-20 13:43:35 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 bsdinstall: Avoid invoking eval on the wlan SSID list The wlanconfig utility is not careful about handling untrusted network names, which can contain shell metacharacters. Factor network selection into a subroutine and use the `set -- "$@"` trick to build up a list of positional parameters for bsddialog without evaluating them. Approved by: so Security: FreeBSD-SA-26:23.bsdinstall Security: CVE-2026-45255 Reported by: Austin Ralls Reviewed by: dteske, des, asiciliano Differential Revision: https://reviews.freebsd.org/D56973 --- usr.sbin/bsdinstall/scripts/wlanconfig | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/wlanconfig b/usr.sbin/bsdinstall/scripts/wlanconfig index 728833f8d4a0..75e3413a06f8 100755 --- a/usr.sbin/bsdinstall/scripts/wlanconfig +++ b/usr.sbin/bsdinstall/scripts/wlanconfig @@ -147,6 +147,34 @@ dialog_country_select() country_set "$regdomain" "$country" } +dialog_network_select() +{ + local ssid flags height width rows prompt + + # Avoid using eval on untrusted data. + set -- + while IFS=$'\t' read -r ssid flags; do + [ -n "$ssid" ] || continue + set -- "$@" "$ssid" "$flags" + done <&1 >&$DIALOG_TERMINAL_PASSTHRU_FD +} + ############################################################ MAIN : > "$BSDINSTALL_TMPETC/wpa_supplicant.conf" @@ -207,27 +235,14 @@ while :; do f_eval_catch -dk SCAN_RESULTS wlanconfig wpa_cli "wpa_cli scan_results" NETWORKS=$( echo "$SCAN_RESULTS" | awk -F '\t' ' - /..:..:..:..:..:../ && $5 { printf "\"%s\"\t\"%s\"\n", $5, $4 } + /..:..:..:..:..:../ && $5 { print $5 "\t" $4 } ' | sort | uniq ) if [ ! "$NETWORKS" ]; then f_dialog_title "$msg_error" f_yesno "No wireless networks were found. Rescan?" && continue else - f_dialog_title "Network Selection" - prompt="Select a wireless network to connect to." - f_dialog_menu_size height width rows "$DIALOG_TITLE" \ - "$DIALOG_BACKTITLE" "$prompt" "" $menu_list - NETWORK=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --extra-button \ - --extra-label \"Rescan\" \ - --menu \"\$prompt\" \ - $height $width $rows \ - $NETWORKS \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) + NETWORK=$( dialog_network_select ) fi retval=$? f_dialog_data_sanitize NETWORK @@ -264,7 +279,7 @@ while :; do done [ "$ENCRYPTION" ] || ENCRYPTION=$( echo "$NETWORKS" | - awk -F '\t' "/^\"$NETWORK\"\t/ { print \$2 }" ) + awk -F '\t' "/^$NETWORK\t/ { print \$2 }" ) if echo "$ENCRYPTION" | grep -q PSK; then PASS=$( $DIALOG \ From nobody Wed May 20 19:40:42 2026 X-Original-To: dev-commits-src-branches@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 4gLMMt6vB5z6fK6T for ; Wed, 20 May 2026 19:40:42 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMt57Fxz3bQl for ; Wed, 20 May 2026 19:40:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306042; 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=NNdhMLrkNqE+GlUGHYAZhJZmjLst8vBMYSUya3lqgbQ=; b=IYiUh0fejPOanVjsgtvq0ey4qB/MQSuY60hYKUYXoiiGByBm8vWw7N+SdVPBmL96NL9l05 ysdeQnZT3v6FN8bgpCuLKkuKc9kLVX6BKIJYmP7CeG1rE+lRT6FGzs7eJrnY6ZjT74Oev6 mZBXtI3GKFBDzjM3phBKNNlGYvXG+WZ3PFkTHR6GMJ0fm7jm9/6NNBi8ui59u4XvZrb/48 ukwWfQX9qegWN2y2jT6v69n+B1kCc4lDb5ZdsxELGquYk9t0MbyBjqVfm0GmWV6sqgkahm lLZIrHNqOcWIC6sLv8pNV42JFM6mT927+kZV/Wzd+KkrLK9w09IfpBd3tbk5Xw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306042; a=rsa-sha256; cv=none; b=JvxV2l7ppotNiJZdgeAfzpnfnmaqHS4qblifnvXtGyN5N1s/w0/LCjB778OlVPM1SOKKrk l0MFA+aLyCMfCnKqUmuHZrLtbPjt47De7UJnqvIjBfXJbD7qVTbkEMizlYU2GpZC9mv2x1 +wubM8V4IFgde5MuNF3WqVhDJNExZ+6Zle1jANAouNC4FN3zLyQwWzhlpWEWjpMiEZ1T2x zA+ngyRLPdjWJvWte0vYcp6FXhyCMDph7s+lBjrwVxPHONCt1F53vYtxDqGF+AIxVpQSlJ KaKksrx/BryH+f0N6RM0dbnWKrSdZk374l2Q4jJJ9/+7F2L7+7pxnegoufQmcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306042; 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=NNdhMLrkNqE+GlUGHYAZhJZmjLst8vBMYSUya3lqgbQ=; b=KtR8/SAdpBWTO5e6fM2U08T/g5NBcqq6KZnyIAgI2Me4lTOsAXZ69d4okp1woSlEz4nIYa MTSZiThHn8rDNJ9FF6/XfRpVIWQmCAgFYV70FKWgDp8WgUCHvwAPDKRHKq46Hc7sWsZail SbUgUFeuhbzCt5tElo6W/nlUVkn2sDY99skZPHJcs/uevPqnKZGO1STenvk8bVcscTGnpp /echz4ceLhmoJO9mRk0rBfk9d6n2GeECS5nrlUpi1+REaSCZRZBOQUXEFdAkiVAPZ19UU+ 3+zo0c7oGMG1vtm6StfCkMCxG+ZNKbf/3LbFgIhPEdff5M1S7zNFSeLgRnPA6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMt4hw1z1Dt8 for ; Wed, 20 May 2026 19:40:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39715 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6281466c3266 - releng/14.3 - Add UPDATING entries and bump version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 6281466c3266a64d28c1988e4baea2a1a59420a8 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:42 +0000 Message-Id: <6a0e0e3a.39715.408e940f@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6281466c3266a64d28c1988e4baea2a1a59420a8 commit 6281466c3266a64d28c1988e4baea2a1a59420a8 Author: Mark Johnston AuthorDate: 2026-05-19 23:47:34 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 Add UPDATING entries and bump version Approved by: so --- UPDATING | 26 ++++++++++++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 790e47561bbd..8abe8c180b1f 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,32 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20260520: + 14.3-RELEASE-p14 SA-26:18.setcred + SA-26:19.file + SA-26:20.fusefs + SA-26:21.ptrace + SA-26:22.libcasper + SA-26:23.bsdinstall + SA-26:24.cap_net + EN-26:13.freebsd-update + + Stack buffer overflow via setcred(2). [SA-26:18.setcred] + + Kernel use-after-free via file descriptor syscalls. [SA-26:19.file] + + Heap overflow in FUSE_LISTXATTR. [SA-26:20.fusefs] + + Missing validation in ptrace(PT_SC_REMOTE). [SA-26:21.ptrace] + + Stack overflow via select() file descriptor set overflow. [SA-26:22.libcasper] + + Remote code execution via Wi-Fi access point scans. [SA-26:23.bsdinstall] + + Incorrect libcap_net limitation list manipulation. [SA-26:24.cap_net] + + freebsd-update attempts to merge a generated file. [EN-26:13.freebsd-update] + 20260430: 14.3-RELEASE-p13 EN-26:11.dhclient diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 9f5c54d49cb8..1c3b6a33dd3b 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.3" -BRANCH="RELEASE-p13" +BRANCH="RELEASE-p14" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed May 20 19:40:41 2026 X-Original-To: dev-commits-src-branches@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 4gLMMt0SvKz6fJyR for ; Wed, 20 May 2026 19:40:42 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLMMs4cJXz3bNs for ; Wed, 20 May 2026 19:40:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MjEDLvduV/BeMAHfPHBYhth15Rk039GJ0T+St5vVV2Y=; b=jHVn9M/I+4O3xEtsCbb8rxcmtpUavnkm1JF80XGSNojP7lwm+gW3hISQf6UzXFEK9vFESz 7W+fzxOEhsYEHr+ec5hLZwNL5+9VhTZduZTICQJ9FcjMSPErp7byGwI8KWB28bs8hLFBVo yVvh9O+Y8FxGZ1DiSRuDjYOOeQPSIC6nmJnI1BNjyfysmZnzqQnWG2C2SI3qVMiQAtjy+C sXvkMUYt9DiP4xzJ2nDSdZIQv8VGjwjlv+V4tfq6KJf5U58fdv1SVYhbW6neYXE0zxJJD8 C2vSN+aJeWNdietbcHwwwF0smp1s9EErEuAKxkrzgIZpKOOnhyPJSzTU1qFmGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779306041; a=rsa-sha256; cv=none; b=MzLEqa/yTUEQcqRAZFLj7p6iO384H66O/86onI7gKjR6Bs2c6LMsLfifKZZbPfSgUIsQpI THw0o9eCuIzPiwjLcD1KmH9arYA5SDjB6IZ/o2n+9vCY0scBSVU+FkvbG1gYPOEpYpja4O e0EEikZ7rme5PV5dfqdVRKPbXsGKoebEWnDC6skpmtQQslliT28xD2miDYtuNab1GlY/v4 E998rUCUBOFs0VsOZxmsZYtVVlsZf/Po0oNsGAMjCBuyODaLgTz8OHOzTlgijLlCX2qI+U kSHKNQeLJo+gbYzyS3a6QAIp2CxvcPAhHcKhDQWavJQaAsivwXKxXVbbLoIU/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779306041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MjEDLvduV/BeMAHfPHBYhth15Rk039GJ0T+St5vVV2Y=; b=f4cjBzTTUhzN1DnPOp4HwHwymY0WA+mFkK2cnQSZ3dO/Cxwlfmmr856DXo429I6CDygce/ b4XWhzv/3LG7mUMeEI/5A8nrnplk7OCFhem4i2L5tkGKJGBL0Td8vzOWflBAmBpgNvb0yC mJkYHP8pPvcPU/MQ2d3WrQrTn0IuKP31vBUU4FlbjXBxMKb5lA+MTVVGJrJdD/Yqsw5VY5 6vJ4CKDcAxN2EB8LaWWUSsMUf84nd5gklkIf2lUKAovjrf2lcWn48MAQa0VHpDY32pVFBN sB+BULQbCob4w5t4sIiL+AChm2xSfmE/Wzb/vJ9cKQy0N4EwRaV+u/4jbhXomw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLMMs3zmBz1F6k for ; Wed, 20 May 2026 19:40:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3979b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 19:40:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mariusz Zaborski From: Mark Johnston Subject: git: b3baecf08405 - releng/14.3 - cap_net: do not allow new limits to drop keys from the old ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: b3baecf084053e9f6f262ad9f85c8fcdc5bfe132 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 19:40:41 +0000 Message-Id: <6a0e0e39.3979b.7ce5838d@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b3baecf084053e9f6f262ad9f85c8fcdc5bfe132 commit b3baecf084053e9f6f262ad9f85c8fcdc5bfe132 Author: Mariusz Zaborski AuthorDate: 2026-05-12 08:33:41 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 cap_net: do not allow new limits to drop keys from the old ones If the old limit had family/hosts/sockaddr set, the new limit must have them too. Before, a missing key in the new limit was treated as "allow any", which let a caller silently extend their limits. Approved by: so Security: FreeBSD-SA-26:24.cap_net Security: CVE-2026-45254 Reported by: Joshua Rogers of AISLE Research Team Reviewed by: markj MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D56991 (cherry picked from commit d705a519525f2acae3c1efba11436ec6ee8aea0a) (cherry picked from commit b79faca1c5964d89c125d02de35928b733041f3f) --- lib/libcasper/services/cap_net/cap_net.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 40d18319ae28..303a8e4b2120 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1099,12 +1099,37 @@ net_connect(const nvlist_t *limits, nvlist_t *nvlin, nvlist_t *nvlout) return (0); } +/* + * If the old sublimit restricted a subkey, the new one must too; + * a missing subkey means "allow any" at request time. + */ +static bool +verify_subkeys_present(const nvlist_t *oldfunclimits, + const nvlist_t *newfunclimit) +{ + void *cookie; + const char *name; + + if (oldfunclimits == NULL) + return (true); + + cookie = NULL; + while ((name = nvlist_next(oldfunclimits, NULL, &cookie)) != NULL) { + if (!nvlist_exists(newfunclimit, name)) + return (false); + } + return (true); +} + static bool verify_only_sa_newlimts(const nvlist_t *oldfunclimits, const nvlist_t *newfunclimit) { void *cookie; + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { void *sacookie; @@ -1177,6 +1202,9 @@ verify_addr2name_newlimits(const nvlist_t *oldlimits, LIMIT_NV_ADDR2NAME, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "sockaddr") == 0) { @@ -1235,6 +1263,9 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, LIMIT_NV_NAME2ADDR, NULL); } + if (!verify_subkeys_present(oldfunclimits, newfunclimit)) + return (false); + cookie = NULL; while (nvlist_next(newfunclimit, NULL, &cookie) != NULL) { if (strcmp(cnvlist_name(cookie), "hosts") == 0) { From nobody Wed May 20 20:28:31 2026 X-Original-To: dev-commits-src-branches@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 4gLNR35m26z6fMyR for ; Wed, 20 May 2026 20:28:31 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLNR34y2Lz3w9K for ; Wed, 20 May 2026 20:28:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308911; 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=Rb5/UC46B5sZyqbWYtV3346Qa5PD5t8Mnr3oadvTKCY=; b=Etd8kVbYOvv+SwH/K9kZfHzd3+8L+IRbiVM5L/qOUwCXjtPF1kzZhdQNVhvFmV1G+ShwqX 8kB7xaPMcqc0clWvi1fu4bYw/IIfInFsbvuEadayXfC4/PdnEUkaztiQRhcl2ev0lg/+IV Y7HYXs00J7Jnqj8327b3jyqCNIGXz4EX5G/B+k4s/Nb95puixhY/F/20d9vBXi26nuUMOp WDOBeAh7JkzmULDfkZAQ1o60gjtBi/PKyLVwakvoQZybnWkzQaP2tlwkZW7yoTyj9BPDxV yuG1UCUBuP3rN2KDO2g5F/k8IGnVCZ9lRjWsqeXhnda7H8Or6ovwnGI/OJ3heQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779308911; a=rsa-sha256; cv=none; b=Mv7qD0C/r1m8fzaCz2EwZ7FZq+714OaBEedAWzqMp8zx52QvAyt1tvmTj686Vj/UuAyjqw 7KidF81i4D91LUx9eLGPz5KHLQmzgqa3vLOkuY77xbfjT7LmH4vt7nRG3fGHT83Zta1j7n +LqEDzOYI3F8hK9reB+TmN1hBf+VEdC0lcXcjU2n6IykWuiZKZHD5ZMP5522fQYiyocGku gfiS0+vlpamvg/BwS3d+fUSPaqnW3X8r//OWFj/71Zx8tlv95diKAXVPOgmM1zHwRrxlo+ /KrTsDQOPqIknUgLUxg7aNUx1QTWSssHKejibEVg0P2KUeNq3yvgV4unTEuLcQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308911; 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=Rb5/UC46B5sZyqbWYtV3346Qa5PD5t8Mnr3oadvTKCY=; b=IrUSY/QxTnyoIaXMizLb7BdyMzM7SeQ+mxXwwurXHBKlJNc0cc7xVEXNkThHRfJuJ9FkAp 75BjcmpYy4tBEyUIn9JJZze1tHrgFHY7DELlZm/1QcY4oDZySSQFOgscmfNfD4VS3bjEfs nMpxX631FC3E/EAWynhOUVL3GSE4rP8kJUOw/hArJ6obb0m3ClkML1ChB8PBQmgbpY96c8 M5wxmPNBtw+iWb4ZY3sC5VIVNLMLL5hlGgVKVVhaKpEMLuYOGfwVQR5t6ZuW1/VTAu1YjT BHzKNVKzPgka+/FXVvSfgcXAitYwy3G1LjloVqRfGiUulhkdCFtCbaUShepZUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLNR34FP6z1G3X for ; Wed, 20 May 2026 20:28:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d29c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 20:28:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d5662c510350 - Create tag release/15.0.0-p9 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/tags/release/15.0.0-p9 X-Git-Reftype: annotated tag X-Git-Commit: d5662c510350a3fa37115a3f1dc231ae00da6bcb Auto-Submitted: auto-generated Date: Wed, 20 May 2026 20:28:31 +0000 Message-Id: <6a0e196f.3d29c.39f5e823@gitrepo.freebsd.org> The annotated tag release/15.0.0-p9 has been created by markj: URL: https://cgit.FreeBSD.org/src/tag/?h=release/15.0.0-p9 tag release/15.0.0-p9 Tagger: Mark Johnston TaggerDate: 2026-05-20 20:28:12 +0000 Tag FreeBSD 15.0-RELEASE-p9 commit 6d536196f1bda0cbe06c2945f2aefebcadf5c144 Author: Mark Johnston AuthorDate: 2026-05-19 18:48:07 +0000 Commit: Mark Johnston CommitDate: 2026-05-19 23:52:31 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed May 20 20:28:58 2026 X-Original-To: dev-commits-src-branches@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 4gLNRZ2Stsz6fMt9 for ; Wed, 20 May 2026 20:28:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLNRZ12TSz3wJ6 for ; Wed, 20 May 2026 20:28:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308938; 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=DwSUVgObv3UCWC5Tk8wjhFTZ8QzLAvZLUKMz7wAWkMQ=; b=cMKQhcL+Pp8VfGAV1WDa3OovFXLBdNTTpwxC2H53iH0nF+QrduCxdCzoMynZZQS4CW2Bzy D6TxQ/7MYpqVU5L9RObbEmOhquXrhI050htexV3xou7KM5r9UY/JxqXh43elqMxhYS/rLj aPU284Y3F85tFcWliraliz2xl/rSztaIF9Bi77SfM3ZdbNNp8cSkZzGirtzTAmqa8sAOrT 2ijSRumLya+5k77nD3IlHCrQnkKNe3mYOX2zJzJpofQEOFmgYsN/t2yOlrp8fC3/9cdWUy I/LI1r5saZAzNhecfYWNfMPTynfcZIvSZ+DiXCGnXQLKJuu6PTplHlCUtZoLww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779308938; a=rsa-sha256; cv=none; b=SlrsbVWFc/zSwspVr1A+Q6NVomwuA+tMmsP8AHuRTsPEBVBK09pumIbdgYF6mWb6j6hhq6 MgPcaPsZzl90TQW6YM0FQcsOMNwcfW8/p80oiHeIJMllhBHdI51BrR/TPFv06YvRnt07lT /wgVDZD4tr1w9pa7NE/+h6kjZgPtLVvAkoZhP967Xyd/0UTwtiqBIrv28p+TGOi3Scqr/o GpAXbv9iR0wIp6iISXpvi5lGOoY03WCBb4Idt3anaHN8ey5+jHF10u41fESZPtP99XGKL7 epjxdguTroAb39y1LMSngqJm6HjYXEiQrib8UopESGrDf8wcW77QMPnKkntGPA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308938; 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=DwSUVgObv3UCWC5Tk8wjhFTZ8QzLAvZLUKMz7wAWkMQ=; b=epUNF4T2vskS0tWgGB9cjYa43UrfiHpIe2W/T0CCGKoCbZ0QeZCGQADe5IM5EGvOijdcD6 4RUjADsBQRgv5unxsN894ycf0LB7KTA5TFG8ouqFUxmq2+p0m8rl5Sdc2smy71OYN8tHM7 kl3BbooyTUMH47zQjNtBPRh29JYrbfDmfFdWQPlEY99t27VQ1gxOaswR36CyoAAZ3mzhe4 z/c16s3Vw01HFFqsDvE/Dp8B8vyjU3bftMaqtHOiOJCmykI+uRJ/IPzCUuUvuinnR6Nvfp mkV3bpv7Bx/TvzRKuiFzcy4vTgNaC6huYwkRBsQ+Hk0s5NXth1ZBylE/gcKp9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLNRZ0LHZz1GXG for ; Wed, 20 May 2026 20:28:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d50a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 20:28:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 203506ddae34 - Create tag release/14.4.0-p5 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/tags/release/14.4.0-p5 X-Git-Reftype: annotated tag X-Git-Commit: 203506ddae34c762b724b41239f742df7a65603a Auto-Submitted: auto-generated Date: Wed, 20 May 2026 20:28:58 +0000 Message-Id: <6a0e198a.3d50a.7d3ef4a2@gitrepo.freebsd.org> The annotated tag release/14.4.0-p5 has been created by markj: URL: https://cgit.FreeBSD.org/src/tag/?h=release/14.4.0-p5 tag release/14.4.0-p5 Tagger: Mark Johnston TaggerDate: 2026-05-20 20:28:36 +0000 Tag FreeBSD 14.4-RELEASE-p5 commit 069cb8961153c9c70af58d7159eb33f026129c1f Author: Mark Johnston AuthorDate: 2026-05-19 23:23:50 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:17:57 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed May 20 20:29:22 2026 X-Original-To: dev-commits-src-branches@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 4gLNS30HRsz6fMbV for ; Wed, 20 May 2026 20:29:23 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLNS25dLJz3wRv for ; Wed, 20 May 2026 20:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308962; 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=g7CgcHTEUyEN8SigJtOnLTPwRTULZS2Xl2OcRYJ0D30=; b=SXhU7e1iPyLlnY9Ac9HvO1hmgOgL7ql7u/3QdgbkKtTB9x64pp9RLhmPE6ZKTKQRy7XmRc dlASH/QQRc7iR4iWwf4Z7N0X/g6ePgWv8uyihjPjGrqjB5uJtAhxa4wnTmTpD9dKjgAIs5 9M24FlYLiWM9LDtC1nE/2ESN/a/jbnJILYwDa9utLgm+/JzUHA2mvAmj6jGJ1ObeQ8kR2R HkFzrCO/0ZtupRU5xgPtqG36TWuyXrI0xByBivvn9htmYI1BjHvBEoIzI94/QHNtOVUcZ8 Z+7vB8R56LNG+7sJo/NJE/OthENA3My1Kda9L9embXMUf99CDOatePYDUS0t+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779308962; a=rsa-sha256; cv=none; b=d9H7n230NMvTwDseuXLwA4moFei2ywsai5vDSOdZm+ufabe0h5GrEYukd/dtPWupVfbk05 mjZZ4e9JvpyM1ISWPP8bqfIQ2/6lti/UkuAo1YJpc5s1z6fnYB4pdkXQUIRD4yu756l/Gk 6+sLE54vh1LxaMq3JXqvd7P3UZm7FMzCv6NudA2LPTREIpIqwNRhr4Z1FDN/+AfJhn1atH SQ2A5te4qkevq7aTPSthLFIZUUR8FZ0zSgSLegQcZ4ShqGnjfu/yeLKWEG6XcfWeytbe6d HyEnzDWAUQY8C7fFff7olH8oXvJgpdhUs6hmKHuiy9TJ1QUeVKEEGvaBXpWlag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779308962; 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=g7CgcHTEUyEN8SigJtOnLTPwRTULZS2Xl2OcRYJ0D30=; b=hrTuj0Mkjt/zCoUjxQnz5EzrDCfM57dAGg8/NKzpwEgMid5avgKs3guk8PyqlVuGxNL4ig wvPa4RJQKcwMK/6Jiel7pI3qJwEWmGYvsWbKj5xF3VeTLnMSEqOSUDUT7hcwwY7iTe4wRv 5znJ3Q92zW5e7AkuiN2dr13T0qsorcp7nWUWlOTtDbVoigICcATWLj/p1e6naXyIk2j1Qk 9bxEDOBuSh0vI2nEUO4zI0RPB6LJod4zF5HX+WH71Gj0X5Hkjnh6yHkj/8HbHvOnT6K7ak gZJm7641YsInVYsHbBcj5XTGZsTV83MYmvCDiEJV+siLFHCwn7OfHoHMPCFdig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLNS24mxqz1GFw for ; Wed, 20 May 2026 20:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d50e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 20:29:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: e1b460203d93 - Create tag release/14.3.0-p14 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: markj X-Git-Repository: src X-Git-Refname: refs/tags/release/14.3.0-p14 X-Git-Reftype: annotated tag X-Git-Commit: e1b460203d93734070298d910fd060a56060e0a3 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 20:29:22 +0000 Message-Id: <6a0e19a2.3d50e.498dbde@gitrepo.freebsd.org> The annotated tag release/14.3.0-p14 has been created by markj: URL: https://cgit.FreeBSD.org/src/tag/?h=release/14.3.0-p14 tag release/14.3.0-p14 Tagger: Mark Johnston TaggerDate: 2026-05-20 20:29:06 +0000 Tag FreeBSD 14.3-RELEASE-p14 commit 6281466c3266a64d28c1988e4baea2a1a59420a8 Author: Mark Johnston AuthorDate: 2026-05-19 23:47:34 +0000 Commit: Mark Johnston CommitDate: 2026-05-20 02:12:20 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed May 20 20:52:04 2026 X-Original-To: dev-commits-src-branches@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 4gLNyD3vKCz6fPMy for ; Wed, 20 May 2026 20:52:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLNyD1r7Pz41J7 for ; Wed, 20 May 2026 20:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779310324; 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=5i/7BHQEg2+SXLr9wyM6qZq4+poKWiSG0UuNqflhgJE=; b=A08hfLTDX2Fr7dnu8sQTWZLy+DSQRtPZJSiihsapnc8C2V2oXPltK4btjVJsOnpcvipBQN TqZS85Eqy1P4f61nzD1VRSPHUXDfqzXPhZFJ3uRVs8YivovBmXWlX7OxnkTmIMJHgksr6n OQs48fY/KW2GqxtY2yxCbltHWvwxajxu3Tns5Rxcmt22RWSrbMiViOVFiCd8ZUw9VjoogD WALS4nzFmFG2fMq1HkBizLEeTjJ95wwlaqiudsiTFLjq/IfLrZ7r6Vf3qeVxYgAXyZdwrt iw8KOxp4hLWn25NMe8pJEOgtFR8dgZjJromN14iEvuvJlbm2J8knzLx4UQxSiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779310324; a=rsa-sha256; cv=none; b=hNEAN6CAtXz7+muUltdUJVVmbXz9F3ScT0HNR7x9g/JqisR/m1jxg3u46HQNlJ8FI8pNrF z/HEmCDCViURouD+0gpwJbbnElsxlPxyTOPSZU7AN8MM4vQU4k4ySe9Lv3uePTkl+Gf5SU IHkQ0PdquWK6wTXMVoqvXdW+o8GSugdFf8VWfuSwUg6N5Guwy21SZGSHLNaRXK03Hkm4Bm RnOhGZYRpuTsmvhWFrXwIvlnVlNpXMFNHLTEhYqeQJHx2Jo041UnUrpm5JQWahXd+klxAz h25BAsIE8o9jWkVcf92Oww6hZHRgf2t0zvgk1gfx3de+eJtCtAwfRWMaRaIy8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779310324; 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=5i/7BHQEg2+SXLr9wyM6qZq4+poKWiSG0UuNqflhgJE=; b=CGN8o3IgfMBi7JG2Fqo7uqOLF8qxPDbgNqDUDfgpu40o2bg14VyIA+Z9xOj9kz4r1DUZQU InWDo6Mm2FysXTYV/wjwPQjICyjrq/MPEqgxpZKmG7gQOPFDhcmwkxEmPub+t47FIlKD2/ R5VmhJLye8bv/1e7Dwf0uGmDl5ZTe7SYFcvlYTiF66MU1UZNRvQKZ1kihIogpWY7mMoD7M 73LMtMh+E+vPL+69Yo50qCxSUHGt3JIcCcRqfw96tlBwFdAAJu7dCaYPqujU6rwfuMiFPR hh2sse5UI+UFn6EAyDS+QQLJ6QL7diHJsnf6trzaC3jrk1PDNxByCNToHVhBvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLNyD1NqRz1GWJ for ; Wed, 20 May 2026 20:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f1c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 20:52:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b718f7d88157 - stable/15 - openssh: Fix SIZEOF_TIME_T in freebsd-configure.sh List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b718f7d88157f4d5827e3639c1e0ba7e5383ed04 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 20:52:04 +0000 Message-Id: <6a0e1ef4.3f1c8.4174ad90@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b718f7d88157f4d5827e3639c1e0ba7e5383ed04 commit b718f7d88157f4d5827e3639c1e0ba7e5383ed04 Author: Ed Maste AuthorDate: 2026-05-17 17:05:26 +0000 Commit: Ed Maste CommitDate: 2026-05-20 20:51:54 +0000 openssh: Fix SIZEOF_TIME_T in freebsd-configure.sh Sponsored by: The FreeBSD Foundation Reviewed by: jlduran Differential Revision: https://reviews.freebsd.org/D57053 (cherry picked from commit 0b0e5daf4333a0faf93133f7d2c7b3743eead9d8) --- crypto/openssh/freebsd-configure.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crypto/openssh/freebsd-configure.sh b/crypto/openssh/freebsd-configure.sh index 28c9564435b2..0444527e633f 100755 --- a/crypto/openssh/freebsd-configure.sh +++ b/crypto/openssh/freebsd-configure.sh @@ -55,3 +55,10 @@ diff -u config.h.kerberos5 config.h | diff -u config.h.sk-builtin config.h | sed -n '/^-#define/s/^-//p' | grep -Ff /dev/stdin config.h.sk-builtin > sk_config.h + +# Fix 32/64-bit time_t defines +sed -i '' 's/^#define SIZEOF_TIME_T 8$/#ifdef __i386__\ +#define SIZEOF_TIME_T 4\ +#else\ +#define SIZEOF_TIME_T 8\ +#endif/' config.h From nobody Wed May 20 21:09:47 2026 X-Original-To: dev-commits-src-branches@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 4gLPLg6xmwz6fQgP for ; Wed, 20 May 2026 21:09:47 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLPLg64kFz468t for ; Wed, 20 May 2026 21:09:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779311387; 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=HOSpsjYn4SMb11d5vocMUylZygYGLU5ss6FeT5uKQjs=; b=UbF2GOgjgUiiGxPw2r7p9WLsa2XB4eEfrv/QtlisUzXPCIELTMGqKHUlHoacdWYDpCESG+ AUseVrWjHoQax47C/y918DoDC0vtl+nZ6DQFMDEgVxHaKNmLXzUXqrK3TtnxYXdGh67sg5 l9bEIWhjqZGfYC/Zny4pUYcWUQ0sPHXJTdUwFq+fwoMIrAFud29eG0wpHVPLME6xrFpKgb UdVataNsGumRNS1kJOONmeUOKbr8GdRMRPPtJa4qu7E5pvax1nRZp53sFoKJqpb34AonJl eT04JqKiutEjpNpC+Bz9kBu8gAvQcBrpfxoU9lbBbLLSMMiqY0UTqxfDoHkYHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779311387; a=rsa-sha256; cv=none; b=N/KhNnJXtoeQlDfAz4CcGe8TtxPyzfLAs6QZAVSpNUVeXfx8CixvDsj2LZLHTzVr0eznQz i92vt7DVJIT0coTJnhOvNOZpD/roh3jedmmSEtEdInFgU6tFex0n2CRsaTQth8Ol7pdBON whWbqGjGYa3QWKBw/fXkKf2Ws4a8i5K3bNtQDSh3pDPgYR1TjeJ46yncsPjsKB8Bl0M71k EOHTNGFwfqSvjsAXDLpDvDklJeIdHW/6S13DYnBwCiXH2K0uzzwpP2ZVw+Q0s3nEeUvltJ AdlRTnEBjC/Gppp1o/+bxDQh5/EmbrjVb27u/5A1XZxsVbbXQ7tHJCzRCHiSOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779311387; 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=HOSpsjYn4SMb11d5vocMUylZygYGLU5ss6FeT5uKQjs=; b=rnncZwqj428hTUl2ElUG58KtX53SokqNn9wpsNr0qGV5vtCPHtFHXKze9wNh9jSsKAfwIL 2YxtH+wzESWmUz/ncTGZBMezxv/T72qXGtG2uzIGYcre5sLw4kdWiPamnOX3cPifkH20x5 m6tzpnpn1+AexVsTKrRsW5vRj6EmJ8oeskdotKu4W1ewl42tQCWZrBnivR4td/5dbl/u27 hlKSS+rU1lfSVHR6haO9CnS8fHGi1WtenOH8N4Zkk4y3PWhkmpar0zH8SK8oqTgWE+0PUn nCJ302QiAnLFaWibZNeZcTrJoRGDG0zE8pxnQ7CVf3OJii2HXuNsCsM8Q08CuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLPLg5JH0z1HF4 for ; Wed, 20 May 2026 21:09:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4102a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 21:09:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 8f715c6b6e9e - stable/14 - openssh: Fix SIZEOF_TIME_T in freebsd-configure.sh List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8f715c6b6e9ee1323d3253fe1afbce236a1a5008 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 21:09:47 +0000 Message-Id: <6a0e231b.4102a.49bf1c9f@gitrepo.freebsd.org> The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8f715c6b6e9ee1323d3253fe1afbce236a1a5008 commit 8f715c6b6e9ee1323d3253fe1afbce236a1a5008 Author: Ed Maste AuthorDate: 2026-05-17 17:05:26 +0000 Commit: Ed Maste CommitDate: 2026-05-20 21:09:34 +0000 openssh: Fix SIZEOF_TIME_T in freebsd-configure.sh Sponsored by: The FreeBSD Foundation Reviewed by: jlduran Differential Revision: https://reviews.freebsd.org/D57053 (cherry picked from commit 0b0e5daf4333a0faf93133f7d2c7b3743eead9d8) (cherry picked from commit b718f7d88157f4d5827e3639c1e0ba7e5383ed04) --- crypto/openssh/freebsd-configure.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crypto/openssh/freebsd-configure.sh b/crypto/openssh/freebsd-configure.sh index 28c9564435b2..0444527e633f 100755 --- a/crypto/openssh/freebsd-configure.sh +++ b/crypto/openssh/freebsd-configure.sh @@ -55,3 +55,10 @@ diff -u config.h.kerberos5 config.h | diff -u config.h.sk-builtin config.h | sed -n '/^-#define/s/^-//p' | grep -Ff /dev/stdin config.h.sk-builtin > sk_config.h + +# Fix 32/64-bit time_t defines +sed -i '' 's/^#define SIZEOF_TIME_T 8$/#ifdef __i386__\ +#define SIZEOF_TIME_T 4\ +#else\ +#define SIZEOF_TIME_T 8\ +#endif/' config.h From nobody Wed May 20 21:38:33 2026 X-Original-To: dev-commits-src-branches@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 4gLPzs5ptTz6fSZX for ; Wed, 20 May 2026 21:38:33 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLPzs3Y2Yz48vD for ; Wed, 20 May 2026 21:38:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779313113; 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=48TCNd5h6OYGJKntmgSoDsybbl9bnz8iRucjg2+Mfxo=; b=km0LZqGzqFCV0hjnbR5unwH9ivzLC3GLq9Yb9loFnH67PQcFJweaaxTP4Xx6XEyE4bbJHA 8Ao43KGpq6GuO8kdK+vWYjZDINNLkX47JrrZLR7CPtPYYP0O8pylWKSLOoonnb3CZONwff TZKEcLpsbYdb9oG/nfpIqT6Asnn6BKszUQ6niC/JfUSORbDjSra6v8KR7vexY4z6DmOPTj HbsdONcyS+qMpGCruHGJoC/rhq2PxMnrrkAGvEKwaWLvW48pPuW+OXGemHrwjmMkv5+wPw mhFuE6l3MIWoTsF3IBRoZo83bjZ0urra0PqI2uDYpccS/ZHOMPkdC74W2pkqJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779313113; a=rsa-sha256; cv=none; b=q7QdRdFTg04GAIvbkkCMNHFYa6XSw6gdoghOJg9GSAqGwq8+0E2x8xzebOJ/59h3K5MK6B ehoJorTmvUT24Fxivi1RXHQOIpBYe/cRvAcYHELVlofcyWf7WyA3n/8n5SC1tUhlPPn2UV lzoTAoyLpNjpfdwfmGILYd6e7keBeO05gJzt+nw1OflLX3PwOm7tuEpeV0E/4CDsoc0T34 toTxu6SQMD+Fq8w/HFZ+CGYhV7xTJd+xBFjUBhnKsa2grKhRk9WFsi2gp+QP6m8N3G35Tp /sMxUodc5RH0mU0yDMZUgQAMGlprl0EPvjJYshzh7JqLjFwibDKwnZ3d4PgAPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779313113; 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=48TCNd5h6OYGJKntmgSoDsybbl9bnz8iRucjg2+Mfxo=; b=GhrvEzcohNtIkxFE3rG5BpO7Z/EbAvWzN+VQsqf0sHBAocL4VTJTIrFbPbcbOuaNARPoYI 9Lkk4MIZhdXf/VS1H2rsRaszQviQhJWgc6Cgt8uoA4LQ5y0k1hMdEFF/juDKqp0rWlxQCY uGBYtx8O1mylhVz99mns9TAZ6UOv2ijc7BHUtJqO3uDe/siUay6gjuCPvd+tv46RCX2Yuq ySjTVHZHS0e5Gntjf5B+nMHr8IFebWL+V0EkEpOI7SETVVOpqaEbnk24y7XJVsvAZi96RH 0stfZvsYN+rcH+pxcCuAvpSmCUw+DB/CkZMzzNxOBoLumAc9KGAq/s9IstGJMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLPzs2rWkz1Hbt for ; Wed, 20 May 2026 21:38:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 423dc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 20 May 2026 21:38:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 8759a34fe16a - releng/15.1 - 15.1: Bump version to BETA3-p1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 8759a34fe16a2271b575d04396394b92cb480655 Auto-Submitted: auto-generated Date: Wed, 20 May 2026 21:38:33 +0000 Message-Id: <6a0e29d9.423dc.7a68ef8d@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=8759a34fe16a2271b575d04396394b92cb480655 commit 8759a34fe16a2271b575d04396394b92cb480655 Author: Colin Percival AuthorDate: 2026-05-20 21:37:03 +0000 Commit: Colin Percival CommitDate: 2026-05-20 21:37:03 +0000 15.1: Bump version to BETA3-p1 Since we had a conveniently timed batch of security issues, I'm going to use this opportunity to test pkgbase update tooling. Approved by: re (cperciva) --- sys/conf/newvers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 39986494bbf6..7dfabad1386b 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -51,7 +51,7 @@ TYPE="FreeBSD" REVISION="15.1" -BRANCH="BETA3" +BRANCH="BETA3-p1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Thu May 21 07:55:40 2026 X-Original-To: dev-commits-src-branches@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 4gLgh46h8wz6ffRS; Thu, 21 May 2026 07:55:48 +0000 (UTC) (envelope-from olce@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLgh45yDLz3Nbc; Thu, 21 May 2026 07:55:48 +0000 (UTC) (envelope-from olce@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779350148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KKzQ7VPQoROVwsuAAK7G7Xq/4f7/TyPyBI50ZAME5QY=; b=D9UUqbOLGoLlP5W47lCcE3GZ4rb4FaLWhXpOBF24lArH3+nQa1daOE9Pdq+h8tLkfWN6M7 RLQ0w0umXbFSzfeHIXEgf45qv1193t896IAszotx+zA/FQZSEmT64+oUbynYiteeXZGeGB PNGL7w5bC9QQ0UZR5vydjsQ7f2Fk2iClFg7+pqGRIwk9qbNXlPALtPjlLmSgD0uj8cBSin IRIqGV+RewVKBKx4P+KfHyLlrabzM4d6QCV/37ggdNnU2/+IzoqWxJAhsriKcdjTtUhe2Q qxpWfojrtRLqaMUdCVAk0K6JtY3KUSjW4WpuTEdsia7jmiMFhmwfDRJT95+TuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779350148; a=rsa-sha256; cv=none; b=xngU2H6ejniIOfqcL69d+VXD30bBsLs8o3RqzDDATnSF+LWldTW9ADXy+1+eTbPjYhD6V5 qyWLz4weGGb85La2A6hj9pYHUer0S1yLvK2Q6XNz2kO+YvmEEuKg2j1fBrmy2RhrROR57C DDHramWfVf29FVViArD+7OYa6uTSvbu+rz9S0iEmAnypfD7oSWJVUy2O6CIQ5vKinf7zwa LUhFH+kf8DMmGgwLx66spfHvcdKx6oNMtu3V5p886KtHtxcN/4fmJyGOecdM7rs2rrXfaB n2++w0Ex5FcM/bp9e80F3BBnSWjNbKYaRRQ2l7v/SxtNNK7pFCS6pUVhVPDJ6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779350148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KKzQ7VPQoROVwsuAAK7G7Xq/4f7/TyPyBI50ZAME5QY=; b=JrfBzVZIYuR3Se9JBxnx70F2iM7dnxToOReEk7rOQNiab9HfosxW0QPhZxEI/0tPpFpIsE OQ+8qxTZs3w3bIUvf0a6AoJZIhl0UH9AhCaAJS2uiA+P9iCptKmRwUD/v02G4mRuRVklRp Ig/lIADDvspYEzP255RjvUrnc2QA2n74ggHaKXGuFpeCsvydiNwDCN+oGfZguBdhiZwUZE spnq0GS2G7cK5mQJXDO8jbE/9ckGnFNnp53VF+3zit7VaJzVVnEwsgcgHIGQFqZc5oHI/M WzFitr3CHHgyNQBXpUC8j4L9mzzw5+Sv90ktEaLRC4O9NcwhocT4QU7vnQTktw== Received: from ravel.localnet (lfbn-nic-1-328-19.w90-116.abo.wanadoo.fr [90.116.162.19]) (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 did not present a certificate) (Authenticated sender: olce/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gLgh36YHdzB5P; Thu, 21 May 2026 07:55:47 +0000 (UTC) (envelope-from olce@freebsd.org) From: Olivier Certner To: Dag-Erling =?UTF-8?B?U23DuHJncmF2?= , Mark Johnston Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org, src-committers@freebsd.org Subject: Re: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow Date: Thu, 21 May 2026 09:55:40 +0200 Message-ID: <1998306.vslOlgHxSZ@ravel> In-Reply-To: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart6142424.Zv9zXsTiuT"; micalg="pgp-sha384"; protocol="application/pgp-signature" --nextPart6142424.Zv9zXsTiuT Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8"; protected-headers="v1" From: Olivier Certner Date: Thu, 21 May 2026 09:55:40 +0200 Message-ID: <1998306.vslOlgHxSZ@ravel> In-Reply-To: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> MIME-Version: 1.0 Hi, This is missing the following tags (and same for similar commits to stable/= 15 and releng/*): > The branch stable/14 has been updated by markj: >=20 > URL: https://cgit.FreeBSD.org/src/commit/?id=3D8eb0bbbd2e4681dd6dc4b8d0e8= 94438d6d4deedb >=20 > commit 8eb0bbbd2e4681dd6dc4b8d0e894438d6d4deedb > Author: Dag-Erling Sm=C3=B8rgrav > AuthorDate: 2026-05-07 08:06:35 +0000 > Commit: Mark Johnston > CommitDate: 2026-05-20 19:37:14 +0000 >=20 > setcred: Fix buffer overflow > =20 > (...) > =20 > Approved by: so > Security: FreeBSD-SA-26:18.setcred > Reported by: Ryan of Calif.io > Fixes: ddb3eb4efe55 ("New setcred() system call and associat= ed MAC hooks") Reviewed by: olce Differential Revision: https://reviews.freebsd.org/D56871 (even if that differential revision is still not public) Regards. =2D-=20 Olivier Certner --nextPart6142424.Zv9zXsTiuT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQIzBAABCQAdFiEEmNCxHjkosai0LYIujKEwQJceJicFAmoOunwACgkQjKEwQJce Jidj/A/8DCNLCVgGUtr7sJJNkRl939i8DNBkMex7CzS253j0bGnDdh2BSNpXTzzo v5x18Qa1cqZrH9ETAhAHhEMPp3oSKpjgfZZFelBtCCWm9VGoz/PF6zzM74mxtsCb TirjX/DAnPs6+vOHnJxzwrSb7nLbRZvfSqQplTuqKGpF2OWyecJMWO4j1+IjAnuM xKqDsriIuL/PQxvdTefOGeFztnLXTU0vzGzg9RvMvLpUEGuX5NwzfoPHM9CkHmow W8ZXI4jC8InFrKoW0MhXyq74nx4ah76SqqsN3f5vYQO+uHYTTOlGg4xqEk9y/7ZP aWksuMgyTtpQdvA2mfIfJf9WpqKQNIuDSANNCKUOH3HsNDMP13vT++nLykj7KUzV yY0FbabWdSkpY2FyL+hY4HeTovRQGaJ4PjNTWg0tMGFQ2dK4B9Sj5YIhs/s4OF3l nNxiXYlJjzvpNvnE22Wrk0Ko3otvBwnS3neOf6wtkanobQWPsvEkHOineJKPEUcG A1Kr1OFUz67U5kfwFfWXDPyWY5xX37k9wcMNWEQmGkS1x8SbIGrMZHmg6tcMNcWU PQIt3rhO3l3lxOGitf4GVxQ6WntfP2SdlH7mdVwWd8fuYA19ohM6HXf+gJUTfA8A CrAvGN0F3htac0Xa77Ki0zMouT1fekQFB8kxC7I4xzqw6/g17fo= =Otg0 -----END PGP SIGNATURE----- --nextPart6142424.Zv9zXsTiuT-- From nobody Thu May 21 11:13:04 2026 X-Original-To: dev-commits-src-branches@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 4gLm3n5DPZz6dlxB for ; Thu, 21 May 2026 11:13:09 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLm3n3nssz3qBr for ; Thu, 21 May 2026 11:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779361989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W/YnsQmjf6GKyaTzzra6HYVIyFNYNFmDh+K+nKaxQI0=; b=kanhkEo1+HnN+VKGkl1oTHsAG9kt8dxbpQ9VvSQc3+QLpj+HKbo/g1IJiXcCih4wur+QUi x8JD8lopKTyjxtPr+6zO7d3qFonII9Z17R4b096PV3wbL3cYvGQho6MmPrVSeMVHjRfLgY QFeK9c5fkE/sgkjaRUL4zP9RwfKz2eA51Do8VsbOR0oKOROCdLdjrKqI99oobHDYBZfnpI bs9PMnSCBBvTWcyejb26l3fV/OfJ37SRrczbT2uNXzOHGKzt7T/W0cR8nb1mYT8nO/Hr40 iK/mBM21lqNMXriakEFyfGIemL4d0AsQm8Gu2OvLwBOrEf1Hm/kBIjUbbnUcKw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779361989; a=rsa-sha256; cv=none; b=rlWtc9NPjIud23ZNJScHclSiljl+ULPSqSuauTr22BmRJbZah0J5PjITO3QCaT6fv8Cmjd cZHT51WmgT3vGqdSM1e42cK5DRXzO8S+L5VNNDVp04PUlyXCX9kFI05BccPAtU8NjOcgsg zsQzY0eyl1Y693bsgsuVjYxid0aFtmoN29ued/3UIs3RjPiB/3uVmoGl4nfZyW0bxAH47I QwUXNp8z7n5KYWAie1UZrNvtQN8E1rsVmitUcjE0QtuiPqHU+JRbBWp+MvGuFid0ajbcKY dcxHwUkBzX9k1y/KHRYsCnSEiKYNWpB9FuFYjwskavzx+ujfZ7Wd1HrMYwOYTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779361989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W/YnsQmjf6GKyaTzzra6HYVIyFNYNFmDh+K+nKaxQI0=; b=MRCroF4RJ5u/iWLmRi+wLq+uveUBTqNELXEck67pA3D9QpLnxWMgavMgeAhTaOsEOmmpsS Szd3yKGfysQYOO6KInZMWJo0PLokRbFg/tAJfOudaR3vj8lUd67wQOxhatA0Ou9vMiUZuh tLlaStjpriNUcY1NYxqDwAc5pUVAQICNeNe+PgA6u+tDLKiMGiabmGyB4XBEzi1Bzv1zBH 9CSNsMMLsS6jPF06HYxuCzBhSnAchFi97LXp66KEzZ14YimBbLmzv73vQWA3C5Pq1JrElI To1bmFRiThAdWoT9LkdgIlzSzcbueyK+VS4v7DWvtCHIeAHcrn4q7dYWkj8Aaw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLm3n3HpLzTh6 for ; Thu, 21 May 2026 11:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24be1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 11:13:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Timo =?utf-8?Q?V=C3=B6lker?= From: Michael Tuexen Subject: git: 198379d2c29f - stable/15 - ipfw: fix checksum after NAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 198379d2c29fae7300b650a96199e51a66b87364 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 11:13:04 +0000 Message-Id: <6a0ee8c0.24be1.54503850@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=198379d2c29fae7300b650a96199e51a66b87364 commit 198379d2c29fae7300b650a96199e51a66b87364 Author: Timo Völker AuthorDate: 2026-05-21 10:54:44 +0000 Commit: Michael Tuexen CommitDate: 2026-05-21 11:11:36 +0000 ipfw: fix checksum after NAT When checksum offloading is used, IPFW needs to fix the checksum after libalias has done NAT. The ipfw_nat() function does so, but only for mbufs without a receiving interface. However, if, for example, the packet was sent inside a jail that used checksum offloading over an epair, ipfw still needs to fix the checksum even though the mbuf has set a receiving interface (epair). This patch just removes the check whether a receiving interface is set. PR: 295057 Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D57091 (cherry picked from commit 81b47a7c604f1d563283759572fa7a1f9d4dc56f) --- sys/netpfil/ipfw/ip_fw_nat.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/netpfil/ipfw/ip_fw_nat.c b/sys/netpfil/ipfw/ip_fw_nat.c index 8bd27f6885ab..34e60edfc4a5 100644 --- a/sys/netpfil/ipfw/ip_fw_nat.c +++ b/sys/netpfil/ipfw/ip_fw_nat.c @@ -311,17 +311,17 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) /* * XXX - Libalias checksum offload 'duct tape': * - * locally generated packets have only pseudo-header checksum - * calculated and libalias will break it[1], so mark them for - * later fix. Moreover there are cases when libalias modifies + * When checksum offloading is used, packets contain only the + * pseudo-header checksum and libalias will break it[1], so mark them + * for later fix. Moreover there are cases when libalias modifies * tcp packet data[2], mark them for later fix too. * * [1] libalias was never meant to run in kernel, so it does * not have any knowledge about checksum offloading, and * expects a packet with a full internet checksum. - * Unfortunately, packets generated locally will have just the - * pseudo header calculated, and when libalias tries to adjust - * the checksum it will actually compute a wrong value. + * Unfortunately, when checksum offloading is used, packets will + * contain just the pseudo-header checksum, and when libalias tries to + * adjust the checksum it will actually compute a wrong value. * * [2] when libalias modifies tcp's data content, full TCP * checksum has to be recomputed: the problem is that @@ -340,8 +340,7 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) * it can handle delayed checksum and tso) */ - if (mcl->m_pkthdr.rcvif == NULL && - mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) + if (mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) ldt = 1; c = mtod(mcl, char *); From nobody Thu May 21 11:25:50 2026 X-Original-To: dev-commits-src-branches@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 4gLmLQ4RqYz6dnJq for ; Thu, 21 May 2026 11:25:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLmLQ1QY4z3rZZ for ; Thu, 21 May 2026 11:25:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779362750; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LnuGODGVv/xyq+yuEAesfzLpksSvrQb3AVO8RqIXqmg=; b=KiA+IDMtuMuQkzUjcohB7qIdEPSL7J0h1hLYLWQrQNHTEXfKHV8TFfkVSNom+ArNlw3sMs W0RAg3fz0dxFypHpMFbvZqUV18iJKTHb6gagFRGLtQIWiVEKWuhqdC4atf6v+Kk7UXTrM8 ANNyNDGQcSsq3Cmo21sYjiPq+qplQTXX3DIhTqSe5n+pMVEodkCs0jaTKJCzWhmDhqFImX Ba+Z5uFn6LOkLLKTI8lvuTDYOxQQSHzd6Py6jjldHOJm/Flwcsm7qDADG9NMXagUSf7dZC Q3eQLpIHhcoUmHXklyd+KuXnd/bk9ExkMSxd/7hFwMxLP1egroxactcRY8suKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779362750; a=rsa-sha256; cv=none; b=WxG3A1hBu18KoV3Z8p4DXRWMpT9M8HZQGO0V2g2GnCTohPotuAhuA2jYMrOGUe+ny/KJ+a +ZIoDv+FJwlga21yZpTFppFuVJGXziq4kVmJICtEHCqDBJi1GE2/l45r8RkMMKzLnGm+Py OUaQhsuQWpnao1GNaixIAze0xOl+yjCxoO7RFKyS5whkPAx+uaxMhyuiFD/HySNLzgKI// C+8CnK39lEXcdJ5/1iQLD4RHXPxkRlJ7ecr1sC/sMgvMKlhDeSBCeUepPmQdNQAYjBccrZ IAvxfaSX/Qp70JYYVl+2Kiz0Xd2mWynmqqMJa43nNcvYczdUWjqySMeMIY83kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779362750; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LnuGODGVv/xyq+yuEAesfzLpksSvrQb3AVO8RqIXqmg=; b=Pz5rzfkKFPPxvuPW6hkDG9ldtJskN4hrDV7bSr1lSW0q98Tszk3Kb9KAIf0xx2CP8+n3xg Uy4bnRLJiCCm4imKLiIeEpNqYbhEbu9tcLHQSZR/edrIQZis59Yy76mWnrCaya89S1p/Dz wAQkbtvfRgjCPYN8ouC5Q483KMiVdIJlheBx9M6SkCrFkCuTtrecgPKRJ3X9qEvY5Zq/f1 MglYpEz8ZNDU50xG5coLN09CCb4s2lARuzYWy1NIvzUnqS2FZEconPYqmeCSRec9W33gob dLTij6gRIDxEiU2q2zSiMacZs9c5dw0qCvJ55XbazVlOgywmJj2K0o07I45nHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLmLQ0NJHzVYC for ; Thu, 21 May 2026 11:25:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24512 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 11:25:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Timo =?utf-8?Q?V=C3=B6lker?= From: Michael Tuexen Subject: git: 151d5f620d9a - stable/14 - ipfw: fix checksum after NAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 151d5f620d9abd0fcea51aed465b8adb213ea3c3 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 11:25:50 +0000 Message-Id: <6a0eebbe.24512.4c532671@gitrepo.freebsd.org> The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=151d5f620d9abd0fcea51aed465b8adb213ea3c3 commit 151d5f620d9abd0fcea51aed465b8adb213ea3c3 Author: Timo Völker AuthorDate: 2026-05-21 10:54:44 +0000 Commit: Michael Tuexen CommitDate: 2026-05-21 09:19:05 +0000 ipfw: fix checksum after NAT When checksum offloading is used, IPFW needs to fix the checksum after libalias has done NAT. The ipfw_nat() function does so, but only for mbufs without a receiving interface. However, if, for example, the packet was sent inside a jail that used checksum offloading over an epair, ipfw still needs to fix the checksum even though the mbuf has set a receiving interface (epair). This patch just removes the check whether a receiving interface is set. PR: 295057 Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D57091 (cherry picked from commit 81b47a7c604f1d563283759572fa7a1f9d4dc56f) --- sys/netpfil/ipfw/ip_fw_nat.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/netpfil/ipfw/ip_fw_nat.c b/sys/netpfil/ipfw/ip_fw_nat.c index 69b21eac041c..38ee9cea7f04 100644 --- a/sys/netpfil/ipfw/ip_fw_nat.c +++ b/sys/netpfil/ipfw/ip_fw_nat.c @@ -312,17 +312,17 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) /* * XXX - Libalias checksum offload 'duct tape': * - * locally generated packets have only pseudo-header checksum - * calculated and libalias will break it[1], so mark them for - * later fix. Moreover there are cases when libalias modifies + * When checksum offloading is used, packets contain only the + * pseudo-header checksum and libalias will break it[1], so mark them + * for later fix. Moreover there are cases when libalias modifies * tcp packet data[2], mark them for later fix too. * * [1] libalias was never meant to run in kernel, so it does * not have any knowledge about checksum offloading, and * expects a packet with a full internet checksum. - * Unfortunately, packets generated locally will have just the - * pseudo header calculated, and when libalias tries to adjust - * the checksum it will actually compute a wrong value. + * Unfortunately, when checksum offloading is used, packets will + * contain just the pseudo-header checksum, and when libalias tries to + * adjust the checksum it will actually compute a wrong value. * * [2] when libalias modifies tcp's data content, full TCP * checksum has to be recomputed: the problem is that @@ -341,8 +341,7 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) * it can handle delayed checksum and tso) */ - if (mcl->m_pkthdr.rcvif == NULL && - mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) + if (mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) ldt = 1; c = mtod(mcl, char *); From nobody Thu May 21 13:11:37 2026 X-Original-To: dev-commits-src-branches@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 4gLphW2z7pz6f0Qq; Thu, 21 May 2026 13:11:39 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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 "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLphW2XB9z4819; Thu, 21 May 2026 13:11:39 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779369099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kwDAhfRz8HZBSluExqszXW4KoMRI1rbwAeRMVL646UA=; b=fMmvUYr7Jtb5Ppc5MGSeRjUA8Tu1G2LzliShpohrW7iHqtN8DRpekOz2lcrIRoGHO/0akV /gplrw986nfxCHoLV2ghh6SmNTt5N5TOohjtY3Lqkq+L7rm5oTxiz44RKAxosG0dJZbG5n W+/SGcNG9S+nw+VsjFwIudMlVSlzKW3oi6ZDIbNU4lTPti7OHH1xYJ6NY1gM80t/XnRkoT a9IfcTxmHkO5Bh17mEKB/C2pF4Yri1KOcZrrYOsCQx04e9zzKiWCKK+4b6Fgk0rthgMH1T ZxEHGIKkaSL2ryntyMO9CRGyJ751rmhplOVKX9t1Zb+4+eAEiCJ5QdTRmmlb0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779369099; a=rsa-sha256; cv=none; b=t8xmQEODcHAx+mkpR/LXSQzIUfR5JiKwof0ycJLlJf7stdA2TyUHwuL7HftyEfGS6xH1G5 yUTci6NwnoNZ6rPmTBgGmjxOT8I3oRFa+NgbaW5Q3VHGvk3dD59Rmor5X+Mv8CNsHugQcy mU+s9pane0h9NsRLjikHpBCuS5BflT6SNxFOUGqM2xv+rYQ0qa1ytjvuvlCZLp5jpIi2VC Qjxy9QBbGfEdROUY2jnWGAwxQ+CBFt0hwqWv98YC/RnuMRLTAciGn4f2gbJCzJ4YoN26VH A+joo5+Hi2FiaHvaiAmNdELGGRrs+d5u6Duj/r6x3vvSialI7Lj8oPjosOsC6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779369099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kwDAhfRz8HZBSluExqszXW4KoMRI1rbwAeRMVL646UA=; b=Zo9WD55DTnFTmwPV1WaDxXZunxCT6JQ/PdKXZ1HocmRBk1Xl6Z/ZTe8cF2Zwv1nakbWwqb nKM236kZoVuv0CA+yH5IclviElvbBr07pzkpCKFjKhJoLJBMwMSgz0GekdZnavXezECrNh sr3EmN54SpqjmLESxftEoS7Pyu0UauPsM3r5S6JfgUCH26aqBq3rz5Dood7ITogROiOCg7 AdxgFU6cJedjPYoRrSVNvGw3r6pfNEagOT22UIDz5VdlMH/M34jBGKq0uwRk1w7q7V3VGv cuMaTxsiEX4vnh2tOP26ZGanNj7E1mc0vto4IBt+2Pc/hBM4Dr731NQjBGVWGA== Received: from ltc.des.dev (unknown [92.183.12.56]) (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 did not present a certificate) (Authenticated sender: des/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gLphW0zZVzHWY; Thu, 21 May 2026 13:11:39 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id D943264E4C; Thu, 21 May 2026 15:11:37 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Olivier Certner Cc: Mark Johnston , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow In-Reply-To: <1998306.vslOlgHxSZ@ravel> (Olivier Certner's message of "Thu, 21 May 2026 09:55:40 +0200") References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> <1998306.vslOlgHxSZ@ravel> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Thu, 21 May 2026 15:11:37 +0200 Message-ID: <86ecj4aovq.fsf@ltc.des.dev> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: quoted-printable Olivier Certner writes: > This is missing the following tags (and same for similar commits to > stable/15 and releng/*): This is not the Phabricator diff you reviewed. This is my Forgejo PR (https://ron-dev.freebsd.org/FreeBSD/src/pulls/27) which was reviewed by aokblast@. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org From nobody Thu May 21 16:35:52 2026 X-Original-To: dev-commits-src-branches@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 4gLvD84T7vz6fP7M for ; Thu, 21 May 2026 16:35:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLvD83hBKz3J9M for ; Thu, 21 May 2026 16:35:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779381352; 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=ln+t1trzE0xFNW5Ge9rZ0ATVWyr9U2ZlmhkWQ2ySwnQ=; b=imNSc7MInfL4T+y3OM6oUmExtJRKm8B8hn3L3VP2T3VpsNP8WYgPsY/eMZE3k49J70gBGR QUPmqA/o/NTFX4MLv5/oXV2Bf+drGI4Mc1FCFHDeb+svtLrjeynHk0z/AAh/SW6ZT4OLjT jja/2lILpwTFNJg9cZLa5PNxk4BxhEuusVtdUkuWbdD3nfsMqDIwdI/EU+k3u4VPJ967O8 9fco8iaSui64TaBrjefn0x9z87BaroBTOpqWI7FO53263GCD+CIInt4ZdxnBnB4H7o9Vif RBjT3uKLRX9ogRCtpayDRWnyNI8VXy++HcGDIV9BOL5OuRqwzwFistID0I2ZQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779381352; a=rsa-sha256; cv=none; b=aZJ8hlR6lPumbMtaa2lQrpAnOmSCQ42XIN+lteoMnY+nljgGIyrs0lp7gJNCfRkRj0UQtQ X8hCjxnn54+Sq01NhNAvW77YUppm3X7BzCUJO0drjuT0YmxnQn1Et4JHpGgNm7iPWUc48q 7dmtqiz3FWdDiz7FRQtdUX0YcD+qGEm7hkEg11KxnZMTeHQV8TTJmZG0v0/QEI+k9RJpWd j/yN0Wolwkt9v4c6+fiDEGypo8hQP8E4dZsHmnDM1//gVrTqOO32Sx1otsdeUI09JEKgsA U5lFH01V2tpUmqWK2BDrAPvbMc+NNd0BSM/MHQ2voK1kHoHJdkj3G6J1u+NjqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779381352; 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=ln+t1trzE0xFNW5Ge9rZ0ATVWyr9U2ZlmhkWQ2ySwnQ=; b=pX1UGHNkOkZzjs3XZWRUNEfklDER9b+6JDprkRPil3TzCUOdMtWVsU96DRuwxHaHhTWdP1 Ozj6wCbXxfjcGuD0c9yDcCOxYpdHUNXeU8T+tDFp0slLz57AlcnUg63nhe4uDcxIqeHefg +acqIpqr7xzPRDN2+iaZ9/xRI8LJZrxnVvwpKfr0pKQqc1SBkqWXhJvNMlKt1wIX2MZNLy MyR5ft+auBQI8PdlEDCST3CrUuQ7NveOxFmGuAEOX5PZzuxsSLT85fcsehlkeophdTYIrr 42QON1rjdse83gFNpLaco+j7ifrs03eFBt2/32dNwV/OZdv0JW6fMJgurlZw4w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLvD833Vtzh7p for ; Thu, 21 May 2026 16:35:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d444 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 16:35:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 8c90d1e6892c - stable/15 - p9fs.4: MLINK to virtio_p9fs.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: 0mp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8c90d1e6892c46d9d670cfed189e6488149acf90 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 16:35:52 +0000 Message-Id: <6a0f3468.1d444.69b04fba@gitrepo.freebsd.org> The branch stable/15 has been updated by 0mp: URL: https://cgit.FreeBSD.org/src/commit/?id=8c90d1e6892c46d9d670cfed189e6488149acf90 commit 8c90d1e6892c46d9d670cfed189e6488149acf90 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-05-15 12:05:46 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-05-21 16:35:44 +0000 p9fs.4: MLINK to virtio_p9fs.4 Technically, virtio_p9fs is an emulated device that masquerades as a p9fs mount, but it does not make sense to have two separate manual pages. Reviewed by: bnovkov, dfr MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D57013 (cherry picked from commit 30f500e97b57d36ebb8483cb8b8921507350cd0f) --- share/man/man4/Makefile | 1 + share/man/man4/p9fs.4 | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 267703cc6bb9..600b785c28b1 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -779,6 +779,7 @@ MLINKS+=${_nfe.4} ${_if_nfe.4} MLINKS+=nge.4 if_nge.4 MLINKS+=openfirm.4 openfirmware.4 MLINKS+=ow.4 onewire.4 +MLINKS+=p9fs.4 virtio_p9fs.4 MLINKS+=pccbb.4 cbb.4 MLINKS+=pcm.4 snd.4 \ pcm.4 sound.4 diff --git a/share/man/man4/p9fs.4 b/share/man/man4/p9fs.4 index c50720b6ebc8..8c65c77c3454 100644 --- a/share/man/man4/p9fs.4 +++ b/share/man/man4/p9fs.4 @@ -22,11 +22,12 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd May 15, 2026 +.Dd May 18, 2026 .Dt P9FS 4 .Os .Sh NAME -.Nm p9fs +.Nm p9fs , +.Nm virtio_p9fs .Nd "9P file system" .Sh SYNOPSIS To use this filesystem, From nobody Thu May 21 19:16:17 2026 X-Original-To: dev-commits-src-branches@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 4gLynS74gxz6djQY; Thu, 21 May 2026 19:16:28 +0000 (UTC) (envelope-from olce@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLynS6Hzjz3g5d; Thu, 21 May 2026 19:16:28 +0000 (UTC) (envelope-from olce@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779390988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=ScRLV2uFpNXZwk6tfxw9AeNcgh5YK0KeBCuUiLNjfeA=; b=dcGyu6D/ynQChkgCuVuyFpyHJfYidI0aFi/vJq11Bgjzp0PXRheLrPcqk9Sd1BrAy+mkuY q5o8rIGsya0k35wL9PY1xqcicELTQVmrcj9BxJOqaz3VITHpUMKNITVpK+ZsoLY11hOpwy SLjdVNrroHwblv4BAXLJnUFpYY8PfcGGiGDx16ecu2hZr4wmR7/s/jDcIPoQCVEpJQ9S5w /Lamk5ZZAcw5aJuTvWXCOh9xtlopbkjcv45rbaYAvlRlmICE5UMmtixcpmokazPqO9lE0O YiXe5FbWg7YhhxR3dLNYfjDNt8lcs5OXpTR6rXTc+8AnENh6gsTMh625EHh+OQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779390988; a=rsa-sha256; cv=none; b=aR8NRauxgsUxGTTJkbgWe+Kviqrwj22z9kV92LqLJzl5cEvff6XKEcNS/FbQ9extlpx78O 6OhDBjPndfL8RXWo+kxU2Gb2sZmc1mbTpzJc8R/munHfebxzWwz0p10dkcVnrRHsfq+uxI V2lwuU+jlqaFRDDqtN7HfP256s6yv+b1RjOblf1FHb0m1Wl4jK2ho80EufcQmoez+0u0MR I1Y576hI3v56cZ142Go6h948auNHloVlEwY46q56bAw1FB2jTleHDyqv805fpoz7YO0XTf 7qhZht5ETbVn0QWHifDYQLJW0i9YklRBhErsJOVB+EKvqValZqjNX4MDKLQsgg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779390988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=ScRLV2uFpNXZwk6tfxw9AeNcgh5YK0KeBCuUiLNjfeA=; b=nsMl9Nb2Y4aAYh3MjRyt8m6FbImQKESZROVgboe9eoonFO1lb67VzU76euDidAhCnZOsyB 6Ax8c/XlHw4cHoddqT7WkODerLCP1y9hdgZOJidGaLY7WOKjmrb/ZNj+zjZ8UerfSEJGEr xemwZmDcI8F1Tof+kKSsZb63ucoS3qs3s72XiLuDlg+p4CZsODoBBlkkaU218pphgY9hbG 3ToGnuDZDFWq0P4x8q2aBb5qHI/fUJI4EkzWPswNx/H190DxeAI6rgk22UZ6C7SvlvrfCs m0uz9URj1tAyZqcCwnZ+d5ADeAGmzFiUK7oi2JaQ1dnE/+lnSE1MvzWojMqi7g== Received: from ravel.localnet (lfbn-nic-1-328-19.w90-116.abo.wanadoo.fr [90.116.162.19]) (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 did not present a certificate) (Authenticated sender: olce/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gLynS0TkvzPxt; Thu, 21 May 2026 19:16:27 +0000 (UTC) (envelope-from olce@freebsd.org) From: Olivier Certner To: Dag-Erling =?UTF-8?B?U23DuHJncmF2?= Cc: src-committers@freebsd.org, Mark Johnston , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow Date: Thu, 21 May 2026 21:16:17 +0200 Message-ID: <2094475.n1Ql7ez4OO@ravel> In-Reply-To: <86ecj4aovq.fsf@ltc.des.dev> References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> <1998306.vslOlgHxSZ@ravel> <86ecj4aovq.fsf@ltc.des.dev> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart3304782.dr8DHy2Ehi"; micalg="pgp-sha384"; protocol="application/pgp-signature" --nextPart3304782.dr8DHy2Ehi Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8"; protected-headers="v1" From: Olivier Certner To: Dag-Erling =?UTF-8?B?U23DuHJncmF2?= Date: Thu, 21 May 2026 21:16:17 +0200 Message-ID: <2094475.n1Ql7ez4OO@ravel> In-Reply-To: <86ecj4aovq.fsf@ltc.des.dev> MIME-Version: 1.0 > This is not the Phabricator diff you reviewed. This is my Forgejo PR > (https://ron-dev.freebsd.org/FreeBSD/src/pulls/27) which was reviewed by > aokblast@. It has the exact same content as D56871, which is anterior and to which you were also a reviewer. -- Olivier Certner --nextPart3304782.dr8DHy2Ehi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQIzBAABCQAdFiEEmNCxHjkosai0LYIujKEwQJceJicFAmoPWgIACgkQjKEwQJce Jif+YA//TegM5T12RXr/xDNewwdlmgUUhbWot5io5fSdGOvGV3UDpRK6pxiEZFh8 Rjzm6E8MzvbczwLnyRGwPfWKEWQxMBobCN6h9XjQjblMtAqGW1SJ99jCJS0lYNNO xWUeIxK0RU0w4ANboawpFL1HxzGLEGaWHHyRFPHbMHTnxqA+wPqJrFPS5x5Oll7g ecU70C5GuIJ6wQZZ8gIwhZW03q9wcEJKM1w66njvImot+qYLQJNcI7ekkspa5e6m rjVR6MOCWGkIQ/cgsbYaPPdE/lnCe6ih6i6KJ3n2TAYKgCggF/0fQBMGcEd/W2zV TodyOedGsRTno2Q11Zi0AmZUnI58fq0KjT1MJ9zBO7+yvvvtkfO2KbU5CAV0kGqd eC9WoVfZTFKM5yfscoDzPjb8zLegEqbPxDGB10D9cQ+HVSYl23Qaduv435pegL1J 0Er261/BqoI8qGVvvpAsJIqj+0TaY8L+uPIqVKNxlUsIwUaFZA3/mOaYuvGnAHiS qG0lXqGJMyV039jXb1gfRUPCuKYHU7rKRI22uRVfOS1AHlSO3103+XjeiOUkQS0O UMw+JgYl8Y8BdTPTQQuv7IP0Uxn9Rr6BUYYQRej2S83f2JyCw0bn1P2RSb1DJ5MH FgidlAX8jEtdftUUDZmXfvrligvU4ZWHFO36FTCawwSQ6nGdbu0= =BeEr -----END PGP SIGNATURE----- --nextPart3304782.dr8DHy2Ehi-- From nobody Thu May 21 19:30:53 2026 X-Original-To: dev-commits-src-branches@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 4gLz653YWCz6dlFR for ; Thu, 21 May 2026 19:30:53 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLz651JmRz3mWg for ; Thu, 21 May 2026 19:30:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779391853; 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=akzs3PP1DyO4k2DreI3GJuog94S00O21oA4VKPoad5E=; b=YGLQ1Zkq4zfZQr2g2fB9OnqwQPwyRDqDYJztnS7TNg9B3AjJ3poaahtFa1OAhkKkYVcmZi VnzX5NSQJJh6TQTiq79tnDQlWCHPDGQtR2u7Sp9DzJD7kBJQLlqq+uNW/nHv0ps3e3sOo/ idR8cP7oY9VE/JMJpy9A7OByT1UE02B9OcBzltxqanmriiov/ftuKjWUw43x3ve34dchK+ mOVA7FBd3TUQMa00ypbL15Y6qvbBiSwlHgOUlzNlRycoHLalZ2kwRZfXVysLENt8VgIdzm Yy4AZbSSulwScQiqzTJFaUQSjltFBhHWbOiNDC2Xb+GDub+JOZiG13Weqy6Uog== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779391853; a=rsa-sha256; cv=none; b=vKNbc11YKZDCT63trfqBbP25jtH4dhDYvGE1D0YJ5io7NaaJTPIjwmetBuLx6xwV8OpeiZ eUiJ/LEoq7d54++gOwq8LbTnna/RQrUfkR7byMt0MtXXmBcxClp1jwbQQrCP8xc8nsTlvt pOBIp6WSkBfHyg7PAyylCBv0Vvk1DHSR9ZD1F7H94fL9a+w70WZ0B6rdj7645+zCDi12Hp 85xD5rba5A100Hebg0VxBahPtVjbKVIYlif1VGNI/Q+g9TyJwANwoO1uuPuES2rVqY5Sep 2k2wx0XqhKElfnXHwY995VpgQkCyZMD7QF7NUEJin+kSEva/WxeTOv79YRhyAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779391853; 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=akzs3PP1DyO4k2DreI3GJuog94S00O21oA4VKPoad5E=; b=JBO6N8NmMjblM2r1g1KnJY3sUtwzX9Gh3ZR63ahRNRJTc9FAhtsRnd9ErBQiXpqA2zvuRV s+LygxWD0/UIr3EM3gtfWM3cwWv29B84JbwCeSEf/u1GI0EWM6jgyXcMraQXUI0gtyn7tQ ziSB97gve40tDJEmSBL7SpyOhnAJrJA0RXUhrAXGT2NesJqtU7SC4k/rpauhMBacfYmITn 2Bqj3EnzpKUSNAqCRfKKIOTUILsipwBHV2J8hZL6P2hLHgQl2yNU+4LDLxjYGAP+ybRmBS K+C25ye//BFepMpEtoJRe6Adh8LUIOd5PvYR9yNq3cSLQDXoSk38ABaokFCORQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLz650ssPzmTR for ; Thu, 21 May 2026 19:30:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a29c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 19:30:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 51b48d325403 - stable/15 - mac_do.4: Jail parameter takes 'new', not 'enable'; uid_t/gid_t are 32-bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 51b48d3254032383f31b9e30e0248746f59e485e Auto-Submitted: auto-generated Date: Thu, 21 May 2026 19:30:53 +0000 Message-Id: <6a0f5d6d.3a29c.296c9a67@gitrepo.freebsd.org> The branch stable/15 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=51b48d3254032383f31b9e30e0248746f59e485e commit 51b48d3254032383f31b9e30e0248746f59e485e Author: Olivier Certner AuthorDate: 2026-05-21 18:52:37 +0000 Commit: Olivier Certner CommitDate: 2026-05-21 19:30:16 +0000 mac_do.4: Jail parameter takes 'new', not 'enable'; uid_t/gid_t are 32-bit MFC after: 1 minute Sponsored by: The FreeBSD Foundation (cherry picked from commit 21df76d01fce35b0398cf38c31928c6f47111d55) --- share/man/man4/mac_do.4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/man/man4/mac_do.4 b/share/man/man4/mac_do.4 index d02932070e25..8c08e072be88 100644 --- a/share/man/man4/mac_do.4 +++ b/share/man/man4/mac_do.4 @@ -8,7 +8,7 @@ .\" at Kumacom SARL under sponsorship from the FreeBSD .\" Foundation. .\" -.Dd June 11, 2025 +.Dd May 21, 2026 .Dt MAC_DO 4 .Os .Sh NAME @@ -266,7 +266,7 @@ then converted to unsigned ones as specified in the C standard for the .Vt uid_t and .Vt gid_t -types, which are both 64-bit unsigned integers. +types, which are both 32-bit unsigned integers. .Sh RUNTIME CONFIGURATION The following .Xr sysctl 8 @@ -307,7 +307,7 @@ The following jail parameters are defined: .It Va mac.do Possible values are: .Bl -tag -width "'disable'" -compact -.It Ql enable +.It Ql new .Nm will enforce specific credential rules in the jail. The @@ -337,7 +337,7 @@ If set, and the jail parameter is not so explicitly, the value of the latter will default to .Ql disable if empty, else to -.Ql enable . +.Ql new . .El .Pp Each jail must have From nobody Thu May 21 19:30:54 2026 X-Original-To: dev-commits-src-branches@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 4gLz666TS8z6dlHB for ; Thu, 21 May 2026 19:30:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLz66342Jz3md1 for ; Thu, 21 May 2026 19:30:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779391854; 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=AmUxBtyEtvCrg7L6UWEVca9cbFluC1KHZ5ADUBO5nHw=; b=otHSbvhJfbzS9h2PKM8yJBcXj6TwIxQfmZIk8o9XH/kCfVGcgqkc0QXyjpDPc8GBEfgMbb 26TpJA1e5+ZKp9s8KY8fz6q1zmScuwm5i9Fno3YnUkBx+xMEpS6uZ4SrN470hJ7qEMe1kD gz6xbJQdc8j+kJGxl0EAQzY7nVBwWfqdpYxtpkhmxZjs5F5gftz3SqWdoz/Sozkd5PNokj 8DrfWaa8c+Tik+QQdgtu9ASlGD4LLDj4t51GUleHGNXD2wn5S6Bb5lSFf6meDjDi9dQotR qBe+zAV8SaBsZ36E+tsVMV9kVJGIq7XxOzmPhgYMm+ffM7Wpv0AAAQ34o1YQHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779391854; a=rsa-sha256; cv=none; b=vZfATKfSwQVGRPEAV8dPfr3H9Y5n7J4VV4YBzJO9Z6XkB+qqgjxF8iN9fp9Yef2gJkiJxZ Zt9M3YNUtZg3y09rw5YaGEBBivYDKnUXYa+LTLaUnxpa/G4s5b+ACMrtEUSLo8eGbw44UC +V+RESWi68+S+PvJCeFjSVVlSyEyjm9VriS0ag+wPxf+onzF0ipIKlxz6uNfuLPpFgOySj W4wFnrnYUwQ+cNX/3RyVUWiDF+LgbBaTBjuv9uIE8so10FIwbtVuq2HnVF9Tua/mcOA2G7 7Kp8iQQEIxjs25oN/pqTFgv5iAgkVWd2QGFIeJSjs8ziqW+Gved5R6mhknI8WQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779391854; 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=AmUxBtyEtvCrg7L6UWEVca9cbFluC1KHZ5ADUBO5nHw=; b=g3Cq5pQREv0Evn5Neiubi49On8TwqCAuSrn+J3p962FG0OrjTxPTA3ro8JCE4EsAhfFa64 riooxhbGVTX6fw+NNk9s8iwHbqOAzQZpIZluzPpwN1oOM7EgskRxng55pa1IBA5eGmaE8U xrTWsNuTT6OqR5i9JW6KV6ZB3K4bXiwFIck8PxmoumbXjF4odZS4fBRTHMMPxzh/O5cf95 wf3v7/nAK1gClMjGsB+6XSnOVRx6GUq5m5PM8cLg4rADh2KAjQceRPxcTvu9Go2a51Wjw4 Su63DwT4eYiB6aV5Mu3xPyj6zYvbFNhpeHgllrRCRfPC2ai3W5O7bFx0nUPjhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLz661X3Kzn9y for ; Thu, 21 May 2026 19:30:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39b83 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 19:30:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: a05c4fb24bc9 - stable/15 - MAC/do: Add basic tests on setting rules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a05c4fb24bc9a8454b2b695b6f53142d5f8d07a1 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 19:30:54 +0000 Message-Id: <6a0f5d6e.39b83.4f06a525@gitrepo.freebsd.org> The branch stable/15 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a05c4fb24bc9a8454b2b695b6f53142d5f8d07a1 commit a05c4fb24bc9a8454b2b695b6f53142d5f8d07a1 Author: Olivier Certner AuthorDate: 2026-05-21 13:34:14 +0000 Commit: Olivier Certner CommitDate: 2026-05-21 19:30:20 +0000 MAC/do: Add basic tests on setting rules MFC after: 1 minute Sponsored by: The FreeBSD Foundation (cherry picked from commit cba191e291c17b32247e12d6f94dcde56994bfe6) --- tests/sys/mac/Makefile | 1 + tests/sys/mac/do/Makefile | 14 ++++ tests/sys/mac/do/common.sh | 72 +++++++++++++++++++ tests/sys/mac/do/invalid_configs.sh | 86 +++++++++++++++++++++++ tests/sys/mac/do/valid_configs.sh | 135 ++++++++++++++++++++++++++++++++++++ 5 files changed, 308 insertions(+) diff --git a/tests/sys/mac/Makefile b/tests/sys/mac/Makefile index 3447d00122f5..9858b09b5f1d 100644 --- a/tests/sys/mac/Makefile +++ b/tests/sys/mac/Makefile @@ -1,6 +1,7 @@ TESTSDIR= ${TESTSBASE}/sys/mac TESTS_SUBDIRS+= bsdextended +TESTS_SUBDIRS+= do TESTS_SUBDIRS+= ipacl TESTS_SUBDIRS+= portacl diff --git a/tests/sys/mac/do/Makefile b/tests/sys/mac/do/Makefile new file mode 100644 index 000000000000..980067ea56e6 --- /dev/null +++ b/tests/sys/mac/do/Makefile @@ -0,0 +1,14 @@ +PACKAGE= tests + +TESTSDIR= ${TESTSBASE}/sys/mac/do + +ATF_TESTS_SH+= valid_configs invalid_configs + +${PACKAGE}FILES+= common.sh + +TEST_METADATA+= execenv="jail" +TEST_METADATA+= required_kmods="mac_do" +TEST_METADATA+= required_user="root" +TEST_METADATA+= required_programs="sysctl" + +.include diff --git a/tests/sys/mac/do/common.sh b/tests/sys/mac/do/common.sh new file mode 100644 index 000000000000..88529adcc1f3 --- /dev/null +++ b/tests/sys/mac/do/common.sh @@ -0,0 +1,72 @@ +# +# Copyright (c) 2026, The FreeBSD Foundation +# +# This software was developed by Olivier Certner at +# Kumacom SARL under sponsorship from the FreeBSD Foundation. + +rules_parameter() +{ + echo "$1".rules +} + + +CONF_ROOT_KNOB=security.mac.do +RULES_KNOB=$(rules_parameter ${CONF_ROOT_KNOB}) +PPE_KNOB=${CONF_ROOT_KNOB}.print_parse_error + + +# $1 = knob name, $2 = value +sysctl_set_and_check() +{ + local knob value + + knob=$1 + value=$2 + atf_check -o ignore sysctl "$knob"="$value" + atf_check -o inline:"$value\n" sysctl -n "$knob" +} + +# $1 = knob name, $2 = value +sysctl_set_and_check_fails() +{ + local knob value orig_value + + knob=$1 + value=$2 + orig_value=$(sysctl -n "$knob") + atf_check -s not-exit:0 -o ignore -e ignore sysctl "$knob"="$value" + atf_check -o inline:"${orig_value}\n" sysctl -n "$knob" +} + +# $1 = sysctl function, $2 = value +sysctl_set_and_check_rules_common() +{ + local func value + + func=$1 + value=$2 + "$func" ${RULES_KNOB} "$value" + # Same spec but using the older in-rule separator (':') + "$func" ${RULES_KNOB} "$(echo "$value" | sed 's%>%:%')" +} + +# $1 = value +sysctl_set_and_check_rules() +{ + local value + + value=$1 + sysctl_set_and_check_rules_common sysctl_set_and_check "$value" +} + +# $1 = value +sysctl_set_and_check_fails_rules() +{ + local value + + value=$1 + sysctl_set_and_check_rules_common sysctl_set_and_check_fails "$value" +} + +# Do not pollute kernel logs with parse errors +sysctl $PPE_KNOB=0 >/dev/null 2>&1 diff --git a/tests/sys/mac/do/invalid_configs.sh b/tests/sys/mac/do/invalid_configs.sh new file mode 100644 index 000000000000..f24309cb2f3b --- /dev/null +++ b/tests/sys/mac/do/invalid_configs.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env atf-sh +# +# Copyright (c) 2026, The FreeBSD Foundation +# +# This software was developed by Olivier Certner at +# Kumacom SARL under sponsorship from the FreeBSD Foundation. + +atf_test_case rule_no_target_part +rule_no_target_part_head() +{ + atf_set descr "Missing target part in a rule" +} +rule_no_target_part_body() +{ + sysctl_set_and_check_fails_rules "uid=0>" + sysctl_set_and_check_fails_rules "gid=0>" + sysctl_set_and_check_fails_rules "uid=0" + sysctl_set_and_check_fails_rules "gid=0" +} + +atf_test_case rule_no_match_part +rule_no_match_part_head() +{ + atf_set descr "Missing match part in a rule" +} +rule_no_match_part_body() +{ + sysctl_set_and_check_fails_rules ">uid=0" + sysctl_set_and_check_fails_rules ">gid=0" +} + +atf_test_case rule_space_between_flag_and_gid_fail +rule_space_between_flag_and_gid_fail_head() +{ + atf_set descr "No space allowed between flag and GID" +} +rule_space_between_flag_and_gid_fail_body() +{ + sysctl_set_and_check_fails_rules "uid=1001>uid=0,gid=0,+ gid=0" +} + +atf_test_case rule_user_names_fail +rule_user_names_fail_head() +{ + atf_set descr "Reject user names (only numerical IDs supported)" +} +rule_user_names_fail_body() +{ + sysctl_set_and_check_fails_rules "uid=user>uid=0" + sysctl_set_and_check_fails_rules "uid=1001>uid=root" +} + +atf_test_case rule_group_names_fail +rule_group_names_fail_head() +{ + atf_set descr "Reject group names (only numerical IDs supported)" +} +rule_group_names_fail_body() +{ + sysctl_set_and_check_fails_rules "gid=group>gid=0" + sysctl_set_and_check_fails_rules "gid=1001>gid=root" + sysctl_set_and_check_fails_rules "gid=1001>gid=0,+gid=operator" +} + +atf_test_case rules_wrong_separator +rules_wrong_separator_head() +{ + atf_set descr "Wrong rules separator" +} +rules_wrong_separator_body() +{ + sysctl_set_and_check_fails_rules "uid=1001>gid=0:gid=1001>gid=5" +} + + +atf_init_test_cases() +{ + . $(atf_get_srcdir)/common.sh + + atf_add_test_case rule_no_target_part + atf_add_test_case rule_no_match_part + atf_add_test_case rule_space_between_flag_and_gid_fail + atf_add_test_case rule_user_names_fail + atf_add_test_case rule_group_names_fail + atf_add_test_case rules_wrong_separator +} diff --git a/tests/sys/mac/do/valid_configs.sh b/tests/sys/mac/do/valid_configs.sh new file mode 100644 index 000000000000..bd5b53b5d5d8 --- /dev/null +++ b/tests/sys/mac/do/valid_configs.sh @@ -0,0 +1,135 @@ +#!/usr/bin/env atf-sh +# +# Copyright (c) 2026, The FreeBSD Foundation +# +# This software was developed by Olivier Certner at +# Kumacom SARL under sponsorship from the FreeBSD Foundation. + +atf_test_case rule_uid_to_any +rule_uid_to_any_head() +{ + atf_set descr "Single \"to any\" rule" +} +rule_uid_to_any_body() +{ + sysctl_set_and_check_rules "uid=1001>any" + sysctl_set_and_check_rules "gid=1001>any" +} + +atf_test_case rule_uid_to_uid +rule_uid_to_uid_head() +{ + atf_set descr "Single \"to UID\" rule" +} +rule_uid_to_uid_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=0" + sysctl_set_and_check_rules "gid=1001>uid=0" +} + +atf_test_case rule_uid_to_uid_any +rule_uid_to_uid_any_head() +{ + atf_set descr "Single \"to UID any\" rule" +} +rule_uid_to_uid_any_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=any" + sysctl_set_and_check_rules "gid=1001>uid=any" +} + +atf_test_case rule_uid_to_uid_star +rule_uid_to_uid_star_head() +{ + atf_set descr "Single \"to any (with '*')\" rule" +} +rule_uid_to_uid_star_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=*" + sysctl_set_and_check_rules "gid=1001>uid=*" +} + +atf_test_case rule_uid_to_uid_gid +rule_uid_to_uid_gid_head() +{ + atf_set descr "Single \"to UID and GID\" rule" +} +rule_uid_to_uid_gid_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=0,gid=0" + sysctl_set_and_check_rules "gid=1001>uid=0,gid=0" +} + +atf_test_case rule_uid_to_uid_gid_optional_sgid +rule_uid_to_uid_gid_optional_sgid_head() +{ + atf_set descr "Single \"to UID, GID and \ +optional supplementary group rule\" rule" +} +rule_uid_to_uid_gid_optional_sgid_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=0,gid=0,+gid=0" + sysctl_set_and_check_rules "gid=1001>uid=0,gid=0,+gid=0" +} + +atf_test_case rule_uid_to_uid_gid_mandatory_sgid +rule_uid_to_uid_gid_mandatory_sgid_head() +{ + atf_set descr "Single \"to UID, GID and \ +mandatory supplementary group\" rule" +} +rule_uid_to_uid_gid_mandatory_sgid_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=0,gid=0,!gid=0" + sysctl_set_and_check_rules "gid=1001>uid=0,gid=0,!gid=0" +} + +atf_test_case rule_uid_to_uid_gid_excluded_sgid +rule_uid_to_uid_gid_excluded_sgid_head() +{ + atf_set descr "Single \"to UID, GID and excluded supplementary group\" rule" +} +rule_uid_to_uid_gid_excluded_sgid_body() +{ + sysctl_set_and_check_rules "uid=1001>uid=0,gid=0,-gid=0" + sysctl_set_and_check_rules "gid=1001>uid=0,gid=0,-gid=0" +} + +atf_test_case rules_uid_to_uid +rules_uid_to_uid_head() +{ + atf_set descr "Multiple \"to UID\" rules" +} +rules_uid_to_uid_body() { + sysctl_set_and_check_rules \ + "uid=1001>uid=0;uid=1001>uid=0,gid=0,!gid=0,+gid=5;gid=1001>gid=5" +} + +atf_test_case rules_uid_to_uid_with_spaces +rules_uid_to_uid_with_spaces_head() +{ + atf_set descr "Multiple \"to UID\" rules with extra spaces" +} +rules_uid_to_uid_with_spaces_body() +{ + sysctl_set_and_check_rules \ + "uid=1001 > uid=0; uid=1001>uid=0, gid = 0, !gid =0,+gid =5; \ +gid= 1001 >gid =5" +} + + +atf_init_test_cases() +{ + . $(atf_get_srcdir)/common.sh + + atf_add_test_case rule_uid_to_any + atf_add_test_case rule_uid_to_uid + atf_add_test_case rule_uid_to_uid_any + atf_add_test_case rule_uid_to_uid_star + atf_add_test_case rule_uid_to_uid_gid + atf_add_test_case rule_uid_to_uid_gid_optional_sgid + atf_add_test_case rule_uid_to_uid_gid_mandatory_sgid + atf_add_test_case rule_uid_to_uid_gid_excluded_sgid + atf_add_test_case rules_uid_to_uid + atf_add_test_case rules_uid_to_uid_with_spaces +} From nobody Thu May 21 19:34:47 2026 X-Original-To: dev-commits-src-branches@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 4gLzBc4XYcz6dlyd; Thu, 21 May 2026 19:34:48 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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 "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLzBc23qRz3ntX; Thu, 21 May 2026 19:34:48 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pXCyWBM/Yx11XfNey980axzydmMvk0ymrz8H+vXe7Rk=; b=Sd1QkXl26Dlh64jY9+mbquBCkRqBx5PogaOFSvvMQvugVoYJ5MPprscDz281W4zuBG2cGj y5yMZyGqkK1DOSGnLkd64bs1SCvNz7Y+1A6Nm3w4tkqFujjzwImMrGsvXA5XjpKIGDkiI5 UZH4pJn944vRwKMNF4ahcu5NzdVSnPJoOT+Kul1fmhOlUMqxeTdP0bpgNdabr0HjdDYLGu jGN0UZXDycnABwCBGGiHC7J5KCyhduwBoZhbgtu4ftBCY6PIx+Mysyv8yhlPtDmJS+QRt8 G268lyy3jV9lG7FoPYkD88VIRb7uW428EyIUvX++r6d1i95gC0DyNrLdm3e2gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779392088; a=rsa-sha256; cv=none; b=nChk5h7UJoVvVQyENVvBd623Lt4rkg6BGitEJTamQcSIf1LKguG3fls3oIOYdG4Bd003fx rQXvux4PwDhQUARXDBaQhjQLL4vPXC/iWEFYM35fxvw0m1OWgiwJxE633/yLJdGgEg0akc uNimHeaR8M3vuCty1/UHYXZf5fBI1f6VNPEZs+7+YBZx+U9J23xdsMnHJ6c+A/4+A91FY/ 3aDH11FYtJunntSHxn821yUTayRJoty96F0z5dMCC58hew5A2dA4/QPQaO8X216UqRVG/a T6nJWkTdXD2y+C2kqB2PDX8av3uAQahnDP4DKGVufDCLKXV4DWM/YymZ3OOBgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pXCyWBM/Yx11XfNey980axzydmMvk0ymrz8H+vXe7Rk=; b=f+HqdayXx6BZ3+9WNU0K3I6a0zhfnSwQ59D6NPLS9Q3Uv44PAlN3/J1KzEj6Wmeg2GYOAc i0hHYr4H1Gwyq774Pxv/NeKAy0Ea5YZDvjb4DZj7WcZhzK3TQj3OE3dYt2ZspRK/ZEhWu1 ka2fqJSn6Zka71DkD6UOzm7kQB9kOB187quZn+Y+F/Rjq7d7Lvnc6Vjq+fKF1YH2TrmVg7 5OzP+5CvbFO8SHDAoasvuzN8Ew9z+ZLz0f2byC9WumSSETRKC0ku7ogx2wqhjl+2E7QBKi WodyCP5WVNzxGtPMjCIYpD56vo2crzs2uDl3vXB+C0DTqbV1M0hsDEWvjdPdPg== Received: from ltc.des.dev (unknown [92.183.12.56]) (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 did not present a certificate) (Authenticated sender: des/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gLzBc0dmXzRX2; Thu, 21 May 2026 19:34:48 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id 17A9E65227; Thu, 21 May 2026 21:34:47 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Olivier Certner Cc: src-committers@freebsd.org, Mark Johnston , dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow In-Reply-To: <2094475.n1Ql7ez4OO@ravel> (Olivier Certner's message of "Thu, 21 May 2026 21:16:17 +0200") References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> <1998306.vslOlgHxSZ@ravel> <86ecj4aovq.fsf@ltc.des.dev> <2094475.n1Ql7ez4OO@ravel> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Thu, 21 May 2026 21:34:47 +0200 Message-ID: <86se7k8sko.fsf@ltc.des.dev> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: quoted-printable Olivier Certner writes: > Dag-Erling Sm=C3=B8rgrav writes: > > This is not the Phabricator diff you reviewed. This is my Forgejo > > PR (https://ron-dev.freebsd.org/FreeBSD/src/pulls/27) which was > > reviewed by aokblast@. > It has the exact same content as D56871, which is anterior and to > which you were also a reviewer. You do not have all the facts. Please drop it. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org From nobody Thu May 21 19:36:44 2026 X-Original-To: dev-commits-src-branches@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 4gLzDr4k4pz6dm4x for ; Thu, 21 May 2026 19:36:44 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLzDr47GKz3pjp for ; Thu, 21 May 2026 19:36:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392204; 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=qDe7Dgs8jgDsFPfs7ryocjCGYq3NuRpMNGk0JhOQTWo=; b=cCIPnQQJBSkxPV7PkOySO68vjCHegjJaahWkNRJrOwj+h0xGa1ZheGKrGlo6ZiY9zaZLz8 jH1GdpyqmDfZPjKy9kjrMPR+aDgcn3wuTO0a0+O5P7KaAVYNQGoNJh9A3QKS74lqmB1Z+0 Pk85O7axMuSMIPgblsKCyElwC0JtNIyNP9P1+Jyvb8C3068FbQJ2uJzAHCJpcJSEcSbRhb 6NcmmqRaYhB0iON1S6dAXYSI0S1CnpXPyo7FQnLqoJxlfpmCWoKgk3Isg7LngyIGOIZ3ss XRGXO2azLRA8wOGB09FasPktgzvA9HOkskOYPT1PSjfbzrLuuOzg/vYu+B9twQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779392204; a=rsa-sha256; cv=none; b=NkUwxmBBHn2RniKSqUCw7LcbTgtkcPYoVb8EI/NnCbHHhVHHxcj/DQrIEoQQWQO8cC7PsG gWkfRiZdwuoxXQtWouoCDYlMtiB57OHYfKpkG7AsRnicUmakVeRiWyDiE1jcm2q0KXm4Nx X5hZJba0rCdXHXrhmkYxL97TVJsaDvRDhNI6MlyJGwQzDDOn5Aur9rlhVv/SdN9WGp1Sxt ti1YwANuuzT+lVgppq9Q7A072zUcA8nBnyKEM3gM1FvtBQ7TmA6k6k947Xb4ZVqUHSHW0L SPhW0Xqmq6Uf9kwvq8Q5oFuGkV6ibNoBM8rn5aN86G0kcK0aU9Ww5Lwrsn0vzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392204; 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=qDe7Dgs8jgDsFPfs7ryocjCGYq3NuRpMNGk0JhOQTWo=; b=t4C8qGc+7EX9lSGaS7CV74Q7q9J4jeSolLyWzJZlCdf9U40f+WIsw9nYlFTWWQHSWwdbBc lKbH1n9nyROkE8ibbuSFj8Su1nYf1z3TJ4mchRz69t3sqN+aRAKxqOqeoL2/R3vjkHtvbN qn8japbIuJ8am6iq9VZf2sFz9i2auuGydeMzLDD7P4dOjpkHdqFveBQx72R0KThH4gXdys YziUM4OiMS3MHwLyzkQ1541NmK+GVaJTPI+Lw9vpT+WpUfC9HyUwhk3u9BGgXArr9zMm1K Mjz6Y42HFuIUesxX81RvBm854iYoX00OJn96FQjKBLC3bHsoR1kE+jsiASbDtQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gLzDr3TYpzmWk for ; Thu, 21 May 2026 19:36:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38de4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 19:36:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 115256f288dc - stable/15 - elf_common.h: Add SHT_LLVM_ADDRSIG List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 115256f288dcfcb09e11fe08485b01cc9609ead9 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 19:36:44 +0000 Message-Id: <6a0f5ecc.38de4.414332d@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=115256f288dcfcb09e11fe08485b01cc9609ead9 commit 115256f288dcfcb09e11fe08485b01cc9609ead9 Author: Ed Maste AuthorDate: 2026-05-18 15:15:59 +0000 Commit: Ed Maste CommitDate: 2026-05-21 19:36:36 +0000 elf_common.h: Add SHT_LLVM_ADDRSIG Reported by: bz Sponsored by: The FreeBSD Foundation (cherry picked from commit 22c054c4cce719662d503685138433eb27d40001) --- sys/sys/elf_common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/elf_common.h b/sys/sys/elf_common.h index 4dfb6890eec7..8886950b1f58 100644 --- a/sys/sys/elf_common.h +++ b/sys/sys/elf_common.h @@ -448,6 +448,7 @@ typedef struct { #define SHT_GROUP 17 /* Section group. */ #define SHT_SYMTAB_SHNDX 18 /* Section indexes (see SHN_XINDEX). */ #define SHT_LOOS 0x60000000 /* First of OS specific semantics */ +#define SHT_LLVM_ADDRSIG 0x6fff4c03 /* Address significance table */ #define SHT_LOSUNW 0x6ffffff4 #define SHT_SUNW_dof 0x6ffffff4 #define SHT_SUNW_cap 0x6ffffff5 From nobody Thu May 21 19:49:00 2026 X-Original-To: dev-commits-src-branches@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 4gLzW65qGGz6dn9d; Thu, 21 May 2026 19:49:06 +0000 (UTC) (envelope-from olce@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gLzW653R1z3r5Q; Thu, 21 May 2026 19:49:06 +0000 (UTC) (envelope-from olce@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392946; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=psXLwedjgMtyVs6Wgf2RpwdqBa9L0CBU297uMj7dHCQ=; b=ghKL0e3IGcokcZNooJcU5PgmnW8RBvlTRiQSvwNy6a3UsrP6SALie7EUb/jsRrKbpdmDIy Twm6+kYP3ShdyEEkrIpLbB0g6C0YLbirslY5oFKg0Yl+vlvA+wJR4x4jbtjDTjWNrwhDsT 4DShlwejLUIL0pneQ7hNpBioC+qaKf/Ts9AZtDpOxnKAj1NO5eKhpG8xtOmUsm9NpBhXa5 wJP/A++3CfBqMGCcnKvAgH3+hpn9r5Shk+ugKrrw+DE4+a3cl/9UbSRaANJ+uSQ7ie7XW2 DTokXeM1plBc/aFmFT554tv1OvLbsoWJChu+05iZLuajujpOKUOY4GOQ/AwDDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779392946; a=rsa-sha256; cv=none; b=kalvan0D4QGdeFS+eNJSj4jEdOT9c9TI00aHNXeQvSaYAJBCqt0sBSRaNwwwD8EkcJtgpX KvKvv3MAv3Ey5psRNm8Ajz8QDzGZLtpjr+nmbe1H4DjZATsNnsIaYejufh9mhbml+9jv+X tr+ThDA9Cb4CSzxHj80kHcKFS/uQ8sdclx72+B/DQvPqvthr38L1mjPg2mu93tTZ1RPprj DFR440ZmzlaoK3zcxUkfEGh/nsHYyL/0+wBe+q2rNLHq7wbMLSg1VcrQYoiRlMy9w4F+s6 jFlhBpq1mrUzdKyIb4ezkNV4pvrJgmixypO5TJGaj+hAqC5STPSdzmSt+RnJog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779392946; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=psXLwedjgMtyVs6Wgf2RpwdqBa9L0CBU297uMj7dHCQ=; b=tnS2Godv7XqGwRicpFwU7Va8pYM8XqG3mJessWkhnvhgMfx0BO2Ovl+EG/QTniEKymdGte MwSlwwLDa+SITkEc6ko+RgUoiMli+aI+DLhgp+mrN8YMQuCEd4t+Hc3ot/g6O4ap8oW3aZ YbnakR3Jrsbajh6WltoxtLSXMLYlxZPG6pCIuvVvROq1aeUHN564JjR/jlMhqon6MpcPQJ LH5gcpbwkrTkSulJplNSX4woiyHxEAQEJDdLdcuncmUaalBszX1MgJnqa7haAvgGR6eKKH yB6FJCRALG2SkYnU4nnlaSTjTikw4WI5hs4V7CGqPJDTfDXxYFy93XKToTkY2w== Received: from ravel.localnet (lfbn-nic-1-328-19.w90-116.abo.wanadoo.fr [90.116.162.19]) (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 did not present a certificate) (Authenticated sender: olce/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gLzW56sWZzS5x; Thu, 21 May 2026 19:49:05 +0000 (UTC) (envelope-from olce@freebsd.org) From: Olivier Certner To: Dag-Erling =?UTF-8?B?U23DuHJncmF2?= Cc: src-committers@freebsd.org, Mark Johnston , dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 8eb0bbbd2e46 - stable/14 - setcred: Fix buffer overflow Date: Thu, 21 May 2026 21:49:00 +0200 Message-ID: <2387756.viN5riZIyJ@ravel> In-Reply-To: <86se7k8sko.fsf@ltc.des.dev> References: <6a0e0d92.388bf.305dfb8c@gitrepo.freebsd.org> <2094475.n1Ql7ez4OO@ravel> <86se7k8sko.fsf@ltc.des.dev> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2118762.mIT35NG9lc"; micalg="pgp-sha384"; protocol="application/pgp-signature" --nextPart2118762.mIT35NG9lc Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8"; protected-headers="v1" From: Olivier Certner To: Dag-Erling =?UTF-8?B?U23DuHJncmF2?= Date: Thu, 21 May 2026 21:49:00 +0200 Message-ID: <2387756.viN5riZIyJ@ravel> In-Reply-To: <86se7k8sko.fsf@ltc.des.dev> MIME-Version: 1.0 > You do not have all the facts. Perhaps, but these other facts are irrelevant to the discussion here. Some change was reviewed and, regardless of how it finally came into the tree or who was the original author, that should have been mentioned for exactness and out of courtesy. It's certainly not a big deal though. My initial response was just to add back some of the proper data. And I'll now indeed drop it, since I think everything useful has been said. -- Olivier Certner --nextPart2118762.mIT35NG9lc Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQIzBAABCQAdFiEEmNCxHjkosai0LYIujKEwQJceJicFAmoPYawACgkQjKEwQJce Jie9DA//TuEPqWJCbUw3bUdtecELw4hnAhk4fpssuy0uBd1nJydmXHbKA5DSUnft msPvbgJkyZME66fCvq+YDq6tY82hepnO1rvECTM05aQEO4qGsvWWw5TCWXgj7Qwc QYkAY8ymUKXTN8WCq+F9E3qT1t9fXetKuSj2Zyb34keqdsk5yUSOJjRbmKocAeKI egIWK5s5ZSPA4UVhQp9bkdkWc1RX50L7MwkdbsWl5dc00DZ1Z6Xa03RvtiiAE0tx /BMOW8+mRqY7qwA5C4b4jxpI9aWfENbTIv3UlJjoCenptQqKPxUFiIN/+VSX8wm4 89gvxqr1K4Pz+0AZxePjJEk8bFk5Qu+t8hdSK3fhEPxSNrtmtQUB0TF0P/hWN0YZ m8+WDtnZ4G6WU9sxpQ7CSwLNfj5I1RlSMNeGps3a3JlXwXsN+nw9CNj1iG24bwG4 YBUTi5ZdC4tENunvxabfySAAQhVp3VwKzrUkvIV5snsMAviZ4rm3l4x6rsTQeBA4 w8xjIyF1mJdpEiPqruURjNedtxhdLS3bB1LWVGvd9F7dghV184/I+jWiDvLpY3i3 zdFc/zP7Okpk1GAmJQxPGUXCjGyCdnyxNil2Afsumx3jeZgGh42tFBgtxkgT9bxF UVd3noId6H3sZqUZHSWUO1R63TLnERALBa7JxUMyNOmWgPNDa3k= =EJP/ -----END PGP SIGNATURE----- --nextPart2118762.mIT35NG9lc-- From nobody Thu May 21 20:34:27 2026 X-Original-To: dev-commits-src-branches@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 4gM0WR3L1jz6dsvW for ; Thu, 21 May 2026 20:34:27 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM0WR2q8sz43lp for ; Thu, 21 May 2026 20:34:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779395667; 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=F/371EZngLhyJVbJ4C0QqBenz1sJDriCkgZ6lGcbiQQ=; b=GL7LGVzHyeGINH+GcT3Dpe4P1gm5u2z5InHz0XnemSUbpGsQ1v600DZhMXn7z4v9Vuomz0 53Kfo4EQRorXdISPr3o3s/kfviNNgh3svmLCsqf5l1ML2qHb6PYdiaF1yY6iQscidNILjN 7fFy9YsTuEIUc7LoR0N+msQRw4AkQzFLRWD8WCOooBGhAt6lkIaxfF+z5thGTEvEbGUN7q W0ROMXpMFTbeNKDsk0DmEe2R1qwHH9AaJKcgJRA3wo41dqbco5TJu3ELo/r6oTAa5y3kH1 UVEKdldfibAiybUEAI26Ij/Le1bis7mhS4E0thyKqfUuWaUZZ8bhn/pdkAgOKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779395667; a=rsa-sha256; cv=none; b=QQcVvFW+7cfWxR+uktkgtRKRFJzI4c+QUN/Vij/z2jzIXgm5sO4qUPMnpZuTqAUrUX/y06 08G6r7ecgh85XVn70CDAT/EMLa3WNXFHlqt5B2R3mXfsXQQMyXjCRf0dGpbC2MOWLqd3oN tjMQoKzRPOJjE8S9EWcTvTohDV/JDQJ/CgeGn6Y8uQUJ1Buy0rklhz6XmXq4RZeNTEkfx9 E6pw7aLVPXjhlhGD7h7kTFNavZpuh1x+cgp52qT/mqdIZ8RAWOV65VdwrvFV5dBJyhhgpc 0y1wscGkOvRFMyZxHNeO/omCNDciOiBSGiz+JrEeDUD7+LPlORAv9UH/DqQCmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779395667; 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=F/371EZngLhyJVbJ4C0QqBenz1sJDriCkgZ6lGcbiQQ=; b=RvrFFIakdfRUVfU0jOkn32t06hzwFG+rXreHk6TqPcGQJydiWJsac+hnr3Yj/PbuxwmFFy n9S6Sa5au3jYi4rEkM86LXihCS9W8mCpall2pvIscfjo25qHhHMnsNz/WzTnRNQnUc3TE6 eGzhqMvlkVFzMyuOAzEX91hofKNSJkGGt0nzciQrc/pvN/m/mAk9La1CjovMuraoTZucJc FJQveRcwVAiBcYuo0KrkXIfjBtEjizEuXsVBcRMyuSFaGIzwnjqyGtir0qNHSpAKiZCkf2 iLcNxHdCtV3ASKDLgnaqWmvGn3fkDQaYKU5s6vnv2e4hV1x/Gw9ZZgU04WztQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM0WR2Px0zp5P for ; Thu, 21 May 2026 20:34:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18501 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 20:34:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: dcd2fedb2044 - stable/15 - BSD.tests.dist: Add the new sys/mac/do directory List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: dcd2fedb2044baeac33cb3964e6f469243503cbd Auto-Submitted: auto-generated Date: Thu, 21 May 2026 20:34:27 +0000 Message-Id: <6a0f6c53.18501.3b0780ef@gitrepo.freebsd.org> The branch stable/15 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=dcd2fedb2044baeac33cb3964e6f469243503cbd commit dcd2fedb2044baeac33cb3964e6f469243503cbd Author: Olivier Certner AuthorDate: 2026-05-21 20:18:19 +0000 Commit: Olivier Certner CommitDate: 2026-05-21 20:34:14 +0000 BSD.tests.dist: Add the new sys/mac/do directory Without that, 'make distributeworld' fails ('make buildworld' and 'make installworld' do not need it). Fixes: cba191e291c1 ("MAC/do: Add basic tests on setting rules") MFC after: 1 minute Sponsored by: The FreeBSD Foundation (cherry picked from commit ad3d7666e00bb0261dd2b80f5f2d56ceeb84aba7) --- etc/mtree/BSD.tests.dist | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index ada92cee4f8a..1266aa5b330d 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -884,6 +884,8 @@ mac bsdextended .. + do + .. ipacl .. portacl From nobody Thu May 21 20:59:53 2026 X-Original-To: dev-commits-src-branches@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 4gM14p20yQz6dx9S for ; Thu, 21 May 2026 20:59:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM14p09ncz47XS for ; Thu, 21 May 2026 20:59:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779397194; 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=g8HbWhelXaIw4UdRk2u6yUiATnEhKccT6Agsrxs4K3g=; b=EfNH2qF+3PmASpqWD6qOrHsYYRSHcIEQ20qtYqkzkZFYTjLy3WTc4EDkb5/2kCDw8gnMEq wRW1HxiEsCKvWGj27aZEG6uvRZu51qVSq4urWLF1kL2SbvYxL8hncOWmUmHv162t+A/u8W FTN+nQimBYJQxjygSEPzG2zuBlRUJEGeff7mmtskmW0OlGPGHTBzvcsm7qL9d2pbt2bifH Oyacxv5tDj6bh81Bkd9Hs4K0UsSHit1tpVR9iF+VQZYG1DtyBQcXRi90PLGII2rxz0tTx8 GWQUeDGvb1lqaH3titAriOjFhREX6ZHCQkIgYZ/mJAVcQ1wO/wXXRfYFOYRW7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779397194; a=rsa-sha256; cv=none; b=NW9eQTTrwfspIbB5LgMKGnS+1O4TIvUXGKHwdv9/A+nWbQKcs59+juKAyHG0XRCLveuK5p BjslsI6Gtze6WfzrWl+N0Tf9XTRJPzH2E/u+6dueHKyGlpfpe6N9TPnBPjVD/7mn2oFd5h 4eLSFHQnC0WX28vAdndDQ3aVrzconDKyhvrSDlUYkcRBIQiqAH6wMmSIv3k+jdJTgcTJXX BJd6RitmzDx6cfy15G7aVghuPKImPhjSQKgIaKcrueXp/fMA9HAsOvKF7f5yuNCFYxnD61 PVxA600EWvdCqB5xSXyNwGmIuIWYKN1pdBijUvFl8YraFt5t5729v/Qqzl+z3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779397194; 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=g8HbWhelXaIw4UdRk2u6yUiATnEhKccT6Agsrxs4K3g=; b=ZTjFQqAcnFUETo5WjZ+UkG4egC34lLHyqQyIDVrmQ+hUxephnLmwkhZxFiNqdrx0JNmsJN /lTCpqw3bKbR6Hhukuqg1/90CvQCAedvJJE7ICF7pJsZYqH4K6SVVUt13QgBSmaOI53MEE +uoUh85oKuabUtIMhpQ4awbW6n2VBkWE0Gk70CCFqum/nZKLtB4YS4n77Y8JQnE3ngaM99 nLd6kpqgb7k4syMX/Zh1si85xwKVJ5nLs0lg3mCtiofEDLkkHMYTfzRuCrW2ukafHRTzPv RXtbGfgS9dl4zCWg4uAa1bBi7uvSaGILmPLeigr0azyl2G7mbtqkiAwBlO13uw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM14n68ZyzqNn for ; Thu, 21 May 2026 20:59:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18f74 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 20:59:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Robert Clausecker Subject: git: e2fb604d4ddd - stable/15 - libc/timespec_get*.3: expose STANDARDS section List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: fuz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e2fb604d4ddd34207f08d1e1b17c554b6f967927 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 20:59:53 +0000 Message-Id: <6a0f7249.18f74.44c84f99@gitrepo.freebsd.org> The branch stable/15 has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=e2fb604d4ddd34207f08d1e1b17c554b6f967927 commit e2fb604d4ddd34207f08d1e1b17c554b6f967927 Author: Robert Clausecker AuthorDate: 2026-05-14 10:32:11 +0000 Commit: Robert Clausecker CommitDate: 2026-05-21 20:59:01 +0000 libc/timespec_get*.3: expose STANDARDS section We now have .St -isoC-2023, so the STANDARDS section can go live. Fixes: 9b5d724cad10087e34165199e55f15f2df744ed5 MFC after: 1 week (cherry picked from commit aa92784fcb8a375231058d67f7ccaeaa3e42ed33) --- lib/libc/gen/timespec_get.3 | 10 +++++----- lib/libc/gen/timespec_getres.3 | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/libc/gen/timespec_get.3 b/lib/libc/gen/timespec_get.3 index 7edf4fe17c30..f6cb578db55e 100644 --- a/lib/libc/gen/timespec_get.3 +++ b/lib/libc/gen/timespec_get.3 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 21, 2023 +.Dd May 14, 2026 .Dt TIMESPEC_GET 3 .Os .Sh NAME @@ -85,10 +85,10 @@ of .Dv TIME_UTC conforms to .St -isoC-2011 . -.\" The -.\" .Dv TIME_MONOTONIC -.\" base conforms to -.\" -isoC-2023 . +The +.Dv TIME_MONOTONIC +base conforms to +.St -isoC-2023 . .Sh HISTORY This interface first appeared in .Fx 12 . diff --git a/lib/libc/gen/timespec_getres.3 b/lib/libc/gen/timespec_getres.3 index e00af6758f1a..1b65cad4a056 100644 --- a/lib/libc/gen/timespec_getres.3 +++ b/lib/libc/gen/timespec_getres.3 @@ -3,7 +3,7 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd August 21, 2023 +.Dd May 14, 2026 .Dt TIMESPEC_GETRES 3 .Os .Sh NAME @@ -36,11 +36,11 @@ if successful and zero otherwise. .Sh SEE ALSO .Xr clock_getres 2 , .Xr timespec_get 3 -.\" .Sh STANDARDS -.\" The -.\" .Nm -.\" function conforms to -.\" .St -isoC-2023 . +.Sh STANDARDS +The +.Nm +function conforms to +.St -isoC-2023 . .Sh HISTORY This interface first appeared in .Fx 14 . From nobody Thu May 21 20:59:52 2026 X-Original-To: dev-commits-src-branches@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 4gM14t1wRNz6dwqj for ; Thu, 21 May 2026 20:59:58 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM14s62Gqz47mk for ; Thu, 21 May 2026 20:59:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779397197; 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=lTeSuhzghtCUD7wC9FOqAm+dJIRQ59ZgTTNkUhB0/fY=; b=XuSa6Ti83h5DQxObBAcSETuxEGPimdctFKHaNIRWYHNhap8+peeIRBkmr3+hbiqgJsQ2W3 wRag6oao34c4rwbDDDSn0GBe+DjfoOUnQeK2+MT/YW4Nywl02Q5aZzik+uGnCbM0MVTFkv r9Qg7mo1kD9J5UIq4ubUUohMtVqA6nbPCGERxhZ4mYuIva9Q/mlfcQBwOqJqMsOuDboltd BnitBy9QWOU2wlgP29tAsmTCJifbHJxB6TnTlrR2T2jEko/4DNuE0x/+/EocwA1j7yp9gr o9mwMP/w/7DrsTGrcZ4t9FdtG2AXNez1o6oVuz7X1zrezmYahDP48ebgmQn3IA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779397197; a=rsa-sha256; cv=none; b=F452BSa0Vb81t9btBn4hKFCdREm3ynwUAIpy8BbXFO1pMtuCpfiIxERh9jQd1J1EOh4Gkq r/KIJQVzhjacy08lF2zp52Th1f0poSvlmtPS3ecYmMQYMPJn3iwf1jcZoK0F0sU1GNngW6 g9KSAuP3YNQsnJ9PtiHVHjloZgDD+j0HqgKC0++ITq3nTKBkW4epP0eahdm6BD3RjOhALG nxw7eY3rpZNrGFgosSB/taCwOD7ndOXP9Z/eNrdoDcbHD/704fhtIPYDVaQEYhoGs6cXZO yTpt2Ep4DEcaswp7AHpqurBBl7hUmJtfkYzS1/vl5RtK+SNXagCX6X0NQYxzRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779397197; 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=lTeSuhzghtCUD7wC9FOqAm+dJIRQ59ZgTTNkUhB0/fY=; b=wQcMJ3OqYY/hTH5zxvx4FcHW3Iq/0Z5dkMmL14ibF8ESo3rT7w5dm6HIPBk3PpmnInqpx6 ZkMZovCLTAZrfVX/IwDD9sS9ckcj66NnwlfD8kEJwOiy5JPhDa2JM5eTRP1NE9FN9Jm0yn iQrOQBWpGL7RedLtUzHTECf5nV9zp96v642z7NlEK0SZgRKPC4XNvvz6VN7lBTmZ7NuxyF CAuve8HKDGTg+rTTEw0JLUGGKBt/NIIRSPt+jkbLGl2aV7x4hmpY8wUwQLxo4058qg6ndX 6qtH0bnD1dRjYu/uYlAFyPIgLeItnnHKrM3YoEQzt2zxIp9drwV448Ok4zAdCw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM14s5c4Zzq74 for ; Thu, 21 May 2026 20:59:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19815 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 20:59:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Robert Clausecker Subject: git: e4bca1be11c5 - stable/15 - libc/ctime.3: timegm() is in C23. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: fuz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e4bca1be11c5edad947d50ce86388bba73489f89 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 20:59:52 +0000 Message-Id: <6a0f7248.19815.205f1c91@gitrepo.freebsd.org> The branch stable/15 has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=e4bca1be11c5edad947d50ce86388bba73489f89 commit e4bca1be11c5edad947d50ce86388bba73489f89 Author: Robert Clausecker AuthorDate: 2026-05-14 10:24:30 +0000 Commit: Robert Clausecker CommitDate: 2026-05-21 20:59:01 +0000 libc/ctime.3: timegm() is in C23. See also: D53951, https://wiki.freebsd.org/C23 MFC after: 1 week (cherry picked from commit 68251761c77b2f5ff927cf19bba7d4efa88799de) --- lib/libc/stdtime/ctime.3 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/libc/stdtime/ctime.3 b/lib/libc/stdtime/ctime.3 index 6384e8bd959b..e51cb5d52f94 100644 --- a/lib/libc/stdtime/ctime.3 +++ b/lib/libc/stdtime/ctime.3 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 23, 2025 +.Dd May 14, 2026 .Dt CTIME 3 .Os .Sh NAME @@ -354,8 +354,9 @@ table). .Pp The .Fn timegm -function is not specified by any standard; its function cannot be -completely emulated using the standard functions described above. +function is expected to conform to +.St -isoC-2023 +with the same constraint. .Sh HISTORY This manual page is derived from the time package contributed to Berkeley by From nobody Thu May 21 21:21:50 2026 X-Original-To: dev-commits-src-branches@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 4gM1Z66MnVz6f01W for ; Thu, 21 May 2026 21:21:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1Z65yVvz3DHl for ; Thu, 21 May 2026 21:21:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GPQSq1a+eZlSoaGr3K/0LbiwDd/PZ1cHa16fYJxBMVU=; b=adpLuWUi6gebygEkX97qSgAk6Omam6XOcpaiA+xZG2a+oA6y2mELDR2ZY6feOWQNbDNsbw EHc08d50P6CsX1D/sW6NK2+LRQYMEKcmr6jdTJ3JSt9tf9PX7Qm5RaSApH3xLIdTiocMeu GzzUnnXXRjVHL5SlV4JIlm4E4QFEn5Dqe7k4vS9bfMLfuy/nSON7+5R5hsLRG0RD4On4N2 NmPTYNfJgiGZi+UHu7VGt4dBCx1Q/X9FLhFj7d2497Idui01DurSyRqEx75u8vnHYKRasW qylaAqDfEzou5gDN4g+cA6Lo65oYMgqbYDPtLV89PLFN1NtbSup78wG5uGg1Yg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398510; a=rsa-sha256; cv=none; b=dNKJa/3a1/tZgE7t19KAekWbjTy3mZta/JveWLiTVpFi4YnI809x6qyL+OWflQPpbZyYzc 7mBrV7/FHAkO2wll4trX4HuCEh2o+VwE8cjIwGScO03k2c+YnVyOIcvvppfDSD9QVupjfO y+wlSUMYg9iLcG4GAbqi7GBO8f0gPR33QcRBeQgvHQCYzXxcMef8XE1ktBHq0lAaHoDiTP uh4Y6onDzwshP7hUMh+nepjcJ69egMzajSKm3dGWCax7uQnrLY/A11V+0ELXBwYjK4T71U yQwFWAH23PHhUrhOMQNZVUCnYQle25IO6NGQDHxu2wawTdSwGX/7i5Rnm0atOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GPQSq1a+eZlSoaGr3K/0LbiwDd/PZ1cHa16fYJxBMVU=; b=ZbueAi6dKws491Qn6BvWPD0hOX9mhzFoAK1E3bTAFIDwJ6g+JapfUdIiMEWDUvxDcRSO1c jxmFzc2jecKNlXCjlRZQs2yeTeAGPPSO4WVWhQc5I0Bn/7fz+1MUP1mGyZ1vhaoIOYIUA2 Udaeo4Aq6OCcUBZDgmzVmRrkJ+/2fuPowIdVDgUpnaU9q0CBUZxO0FxjC4iWUVcyWANHpF 5zZNp2rOo2Oi+xu5Z3T5VivgPhHo6QgmtByvcOYz8hItlBN2bovAbKBpEhmbK2YwRkNkZw RbvHNIAQvCYezMygo9lDhOOi2/SDZSzlSxgqkXd6nOrfY/8DcUKa+vBArXHXlQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1Z65VnBzqtr for ; Thu, 21 May 2026 21:21:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1dc51 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Bjoern A. Zeeb From: Colin Percival Subject: git: 7ea10e9b3875 - releng/15.1 - man: iwlwifi/rtw88/rtw89: update man pages for Linux v7.0 based updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 7ea10e9b3875280f8ed5a579ce9a42e2ce9d833e Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:50 +0000 Message-Id: <6a0f776e.1dc51.103340d4@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=7ea10e9b3875280f8ed5a579ce9a42e2ce9d833e commit 7ea10e9b3875280f8ed5a579ce9a42e2ce9d833e Author: Bjoern A. Zeeb AuthorDate: 2026-05-15 16:29:48 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:20:47 +0000 man: iwlwifi/rtw88/rtw89: update man pages for Linux v7.0 based updates For all: - harmonize Copyright/license section according to style.9 and used SPDX only. - mention that the current generation of the driver is based on Linux version 7.0. - make linuxkpi.4 and linuxkpi_wlan.4 .Xr as the man pages do exist these days. iwlwifi: update the card/chipset names supported (while we still can) iwlwififw: leave a comment only that we can no longer update the man page and it will be removed in the future. rtw88: update supported chipsets and add note to BUGS sections rtw89: update supported chipsets and add note to BUGS sections Approved by: re (cperciva) Sponsored by: The FreeBSD Foundation Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D57019 (cherry picked from commit 0a2f7683bf0cbd57d7cdba0713a3e30b24cbf9b4) (cherry picked from commit 6adb27eec8a6ba07aedb3c0fd9a52116f37d3e07) --- share/man/man4/iwlwifi.4 | 154 +++++++++++++++++++++------------------------ share/man/man4/iwlwififw.4 | 28 ++------- share/man/man4/rtw88.4 | 27 +++++--- share/man/man4/rtw89.4 | 26 +++++--- 4 files changed, 116 insertions(+), 119 deletions(-) diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4 index 411af54be9fb..71825507f7c7 100644 --- a/share/man/man4/iwlwifi.4 +++ b/share/man/man4/iwlwifi.4 @@ -1,33 +1,12 @@ .\" -.\" SPDX-License-Identifier: BSD-2-Clause -.\" -.\" Copyright (c) 2021-2025 The FreeBSD Foundation +.\" Copyright (c) 2021-2026 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd August 19, 2025 +.Dd May 15, 2026 .Dt IWLWIFI 4 .Os .Sh NAME @@ -62,7 +41,7 @@ The driver provides support for Intel Wireless network devices. .Pp .Nm -is derived from Intel's Linux iwlwifi driver. +is derived from Intel's Linux iwlwifi driver based on Linux version 7.0. The .Xr iwm 4 and @@ -72,7 +51,7 @@ driver. .Pp In addition .Nm -already supports Intel's Linux iwlwifi/mld chipsets. +supports the chipsets based on Intel's Linux iwlwifi/mld driver. .Pp .Nm still complements the @@ -83,10 +62,9 @@ Intel's Linux iwlwifi/dvm, which does not support. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -147,117 +125,129 @@ Intel(R) Wireless N 7260 .It Intel(R) Dual Band Wireless AC 3160 .It +Intel(R) Wireless N 3160 +.It Intel(R) Dual Band Wireless N 3160 .It -Intel(R) Wireless N 3160 +Intel(R) Dual Band Wireless-AC 3165 .It -Intel(R) Dual Band Wireless AC 3165 +Intel(R) Dual Band Wireless-AC 3168 .It -Intel(R) Dual Band Wireless AC 3168 +Intel(R) Dual Band Wireless-AC 7265 .It -Intel(R) Dual Band Wireless AC 7265 +Intel(R) Dual Band Wireless-N 7265 .It -Intel(R) Wireless N 7265 +Intel(R) Wireless-N 7265 .It -Intel(R) Dual Band Wireless N 7265 +Intel(R) Dual Band Wireless-AC 8260 .It -Intel(R) Dual Band Wireless AC 8260 +Intel(R) Dual Band Wireless-N 8260 .It -Intel(R) Dual Band Wireless N 8260 +Intel(R) Dual Band Wireless-AC 4165 .It -Intel(R) Dual Band Wireless AC 4165 +Intel(R) Dual Band Wireless-AC 8265 .It -Intel(R) Dual Band Wireless AC 8265 +Intel(R) Dual Band Wireless-AC 8275 .It -Intel(R) Dual Band Wireless AC 8275 +Killer(R) Wireless-AC 1435i Wireless Network Adapter (8265D2W) .It -Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz +Killer(R) Wireless-AC 1435-KIX Wireless Network Adapter (8265NGW) .It -Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW) +Intel(R) Wireless-AC 9461 160MHz .It -Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) +Intel(R) Wireless-AC 9461 .It -Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz +Intel(R) Wireless-AC 9462 160MHz .It -Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz +Intel(R) Wireless-AC 9462 .It -Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) +Intel(R) Wireless-AC 9260 160MHz .It -Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) +Intel(R) Wireless-AC 9260 +.It +Intel(R) Wireless-AC 9560 160MHz +.It +Intel(R) Wireless-AC 9560 +.It +Intel(R) Wi-Fi 6 AX201 160MHz .It -Intel(R) Wireless-AC 9260-1 +Intel(R) Wi-Fi 6 AX101 +.It +Intel(R) Wi-Fi 6 AX203 .It Intel(R) Wi-Fi 6 AX200 160MHz .It -Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W) +Intel(R) Wi-Fi 6E AX211 160MHz .It -Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) +Intel(R) Wi-Fi 6E AX411 160MHz .It -Intel(R) Wi-Fi 6 AX201 160MHz +Intel(R) Wi-Fi 6E AX210 160MHz .It -Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) +Killer(R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz .It -Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) +Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz +.It +Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz .It -Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW) +Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W) .It -Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W) +Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) .It -Intel(R) Wi-Fi 6E AX211 160MHz +Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211D2W) .It -Intel(R) Wi-Fi 6 AX210 160MHz +Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) .It Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W) .It Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW) .It -Intel(R) Wi-Fi 6E AX411 160MHz +Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W) .It -Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW) +Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW) .It -Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW) +Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W) .It -Intel(R) Wireless-AC 9461 160MHz +Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) .It -Intel(R) Wireless-AC 9461 +Intel(R) Wi-Fi 7 BE201 320MHz .It -Intel(R) Wireless-AC 9462 160MHz +Intel(R) Wi-Fi 7 BE401 320MHz .It -Intel(R) Wireless-AC 9462 +Intel(R) Wi-Fi 7 BE200 320MHz .It -Intel(R) Wireless-AC 9560 160MHz +Intel(R) Wi-Fi 7 BE202 160MHz .It -Intel(R) Wireless-AC 9560 +Killer(R) Wi-Fi 7 BE1750s 320MHz Wireless Network Adapter (BE201D2W) .It -Intel(R) Wireless-AC 9270 160MHz +Killer(R) Wi-Fi 7 BE1750i 320MHz Wireless Network Adapter (BE201NGW) .It -Intel(R) Wireless-AC 9270 +Killer(R) Wi-Fi 7 BE1790s 320MHz Wireless Network Adapter (BE401D2W) .It -Intel(R) Wireless-AC 9162 160MHz +Killer(R) Wi-Fi 7 BE1790i 320MHz Wireless Network Adapter (BE401NGW) .It -Intel(R) Wireless-AC 9162 +Killer(TM) Wi-Fi 7 BE1750w 320MHz Wireless Network Adapter (BE200D2W) .It -Intel(R) Wireless-AC 9260 160MHz +Killer(TM) Wi-Fi 7 BE1750x 320MHz Wireless Network Adapter (BE200NGW) .It -Intel(R) Wireless-AC 9260 +Intel(R) Wi-Fi 7 BE211 320MHz .It -Intel(R) Wi-Fi 6 AX101 +Intel(R) Wi-Fi 6E AX221 160MHz .It -Intel(R) Wi-Fi 6 AX203 +Intel(R) Wi-Fi 7 BE213 160MHz .It -Intel(R) Wi-Fi 6E AX231 160MHz +Intel(R) Wi-Fi 8 BN201 .It -Intel(R) Wi-Fi 7 BE201 320MHz +Intel(R) Wi-Fi 7 BE223 .It -Intel(R) Wi-Fi 7 BE200 320MHz +Intel(R) Wi-Fi 8 BN203 .It -Intel(R) Wi-Fi 7 BE202 160MHz +Killer(R) Wi-Fi 7 BE1775s 320MHz Wireless Network Adapter (BE211D2W) .It -Intel(R) TBD Sc device +Killer(R) Wi-Fi 7 BE1775i 320MHz Wireless Network Adapter (BE211NGW) .It -Intel(R) TBD Sc2 device +Killer(R) Wi-Fi 8 BN1850w2 320MHz Wireless Network Adapter (BN201.D2W) .It -Intel(R) TBD Sc2f device +Killer(R) Wi-Fi 8 BN1850i 320MHz Wireless Network Adapter (BN201.NGW) .\" -------------------------------------------------------------------- .El .Sh LOADER TUNABLES @@ -318,6 +308,8 @@ directory. .Xr iwm 4 , .Xr iwn 4 , .Xr iwx 4 , +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , diff --git a/share/man/man4/iwlwififw.4 b/share/man/man4/iwlwififw.4 index 45ee0e757c07..32c9e974b60d 100644 --- a/share/man/man4/iwlwififw.4 +++ b/share/man/man4/iwlwififw.4 @@ -1,31 +1,15 @@ .\" -.\" SPDX-License-Identifier: BSD-2-Clause -.\" -.\" Copyright (c) 2021-2025 The FreeBSD Foundation +.\" Copyright (c) 2021-2026 The FreeBSD Foundation .\" .\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from .\" the FreeBSD Foundation. .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. +.\" NOTE: this man page is obsolete and will be removed in future versions +.\" of FreeBSD as there is (easy) no way to extract the information anymore +.\" from the driver. We do leave it currently for completeness until the +.\" next generation of cards start shipping. .\" .Dd May 12, 2025 .Dt IWLWIFIFW 4 diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4 index e01f508ef80e..6f60861cf623 100644 --- a/share/man/man4/rtw88.4 +++ b/share/man/man4/rtw88.4 @@ -1,9 +1,13 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2022-2026 Bjoern A. Zeeb +.\" Copyright (c) 2026 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb +.\" under sponsorship from the FreeBSD Foundation. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd February 10, 2026 +.Dd May 15, 2026 .Dt RTW88 4 .Os .Sh NAME @@ -28,7 +32,7 @@ It is not possible to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Realtek's Linux rtw88 driver. +driver is derived from Realtek's Linux rtw88 driver based on Linux version 7.0. .Pp This driver requires firmware to be loaded before it will work. The package @@ -45,10 +49,9 @@ One can use to install the correct firmware package. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -64,6 +67,8 @@ driver supports PCIe devices with the following chipsets: .It Realtek 802.11n wireless 8723de (RTL8723DE) .It +Realtek 802.11ac wireless 8814ae (RTL8814AE) +.It Realtek 802.11ac wireless 8821ce (RTL8821CE) .It Realtek 802.11ac wireless 8822be (RTL8822BE) @@ -84,6 +89,8 @@ for network buffer memory to the lower 32bit of physical memory and make the driver work. .El .Sh SEE ALSO +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -95,14 +102,16 @@ The driver first appeared in .Fx 13.2 . .Sh BUGS -Certainly. -.Pp Does not seem to work (reliably) on machines with more than 4GB of main memory. See in the .Sx LOADER TUNABLES section above. .Pp +At least the 8821CE and 8822BE chipsets have trouble associating, +which seems to be due to the software scan fallback, the chandef emulation, +and net80211 interactions, along with a 6s timeout observed in the driver. +.Pp While .Nm supports 802.11a/b/g/n/ac modes, diff --git a/share/man/man4/rtw89.4 b/share/man/man4/rtw89.4 index 8c7132673db5..95d75781f995 100644 --- a/share/man/man4/rtw89.4 +++ b/share/man/man4/rtw89.4 @@ -1,9 +1,13 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2023-2025 Bjoern A. Zeeb +.\" Copyright (c) 2026 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb +.\" under sponsorship from the FreeBSD Foundation. +.\" +.\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd June 13, 2025 +.Dd May 15, 2026 .Dt RTW89 4 .Os .Sh NAME @@ -28,7 +32,7 @@ It is not possible to load the driver from .Sh DESCRIPTION The .Nm -driver is derived from Realtek's Linux rtw89 driver. +driver is derived from Realtek's Linux rtw89 driver based on Linux version 7.0. .Pp This driver requires firmware to be loaded before it will work. The package @@ -45,10 +49,9 @@ One should use to install the correct firmware package. .Pp The driver uses the -.\" No LinuxKPI man pages so no .Xr here. -.Sy linuxkpi_wlan +.Xr linuxkpi_wlan 4 and -.Sy linuxkpi +.Xr linuxkpi 4 compat framework to bridge between the Linux and native .Fx @@ -68,6 +71,8 @@ Realtek 8852AE Wi-Fi 6 (RTL8852AE) .It Realtek 8852BE Wi-Fi 6 (RTL8852BE) .It +Realtek 8852BTE Wi-Fi 6 (RTL8852BE-VT) +.It Realtek 8852CE Wi-Fi 6E (RTL8852CE) .It Realtek 8922AE Wi-Fi 7 (RTL8922AE) @@ -86,6 +91,8 @@ for network buffer memory to the lower 32bit of physical memory and make the driver work. .El .Sh SEE ALSO +.Xr linuxkpi 4, +.Xr linuxkpi_wlan 4, .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , @@ -105,6 +112,11 @@ See in the .Sx LOADER TUNABLES section above. .Pp +We observe various stability issues leading up to driver crashes and +kernel panics with the current set of chipsets at least in combination +with +.Xr linuxkpi_wlan 4 . +.Pp While .Nm supports 802.11a/b/g/n/ac/ax modes, From nobody Thu May 21 21:21:51 2026 X-Original-To: dev-commits-src-branches@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 4gM1Z81Mbbz6f07p for ; Thu, 21 May 2026 21:21:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1Z76ttrz3DHp for ; Thu, 21 May 2026 21:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v1hu/6BYoghl90YcD33qvij5fgm8rBRDhkiW8fXaab4=; b=J/A+otX6KXuydvA51fnXUaUd+sJ2BwJrmv2Io/Y+VJQaae2dXabztYVAkRcz6qcBr1HW0n WVSjuM4+qMl+bPDfm0mkgZ+ZO4xw2Yl6VzhVjNBwM2t/Y/bU/EHg+GhXn3qf72vWmhkIu7 6GkudJH1ZJ/yjx6X/APxuIctZp5yRcSY0lMVe3gQVnmHBjbqUfjbvWchacxFNrN+9yOFc+ zD4wt7BOVa4juL5SLeJC7yzIPWV1PTFcLWMJrk8GtqaXR72U8ZqDLeDlqFGz5G2V6f9GuZ qBIriBbBNVMg+50WWSR6dkoh9JaC/1eX6a+pP4+1J8QGKh50rGTc9OFTiSAmzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398511; a=rsa-sha256; cv=none; b=Zj2I1rkOFNoAanDaRqJg9HO8I719Gsbj7vBoMlY7hmX0EG4B7UDnMitjkCUdaZUrspZQ+X D93XjWdwUJwStXR9wVfeW78eol35FRCIYwwmZX+7nZtd3UhYZxmFX0CwF4qZiQBUvrIrro URVwnO5JfeFbepJ6MxC70bsOVSR7OUGXycG8J3NyGkDXrdKWteYKBPVvu5NNiYzCqjPODi UY/kndHFbZgvZAAzoBiE7kD2QH+amTwnqqZ9rtPPmqIyqI+enX5B40rF9HX6idM6/Y7eaF wI5S45RA8q8CRpNeddqYWbth/9g8DXPJGKOXSxu78V6/3UTZtvaIUaK1Xtaodw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398511; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=v1hu/6BYoghl90YcD33qvij5fgm8rBRDhkiW8fXaab4=; b=RXwIPt/01lRo9LjX0fbghJNMIPOZ2eKukrDkra9Cv178VYrIrahEFM/QhP/XBMzvXuCDVy EDpTgOwBPBWdL5xTPulvMUNpAwr5hAEojjLFl0XU0jqfAYOL+FpA2MKDllzWP9bBU40STv cKQE0sJh74naONWU2y2xZDOTs45Gy6SrRjE2Naz10Xg2ssZJWpddGqyfCVbLUEHbG3CLXJ uGejkGZB/73DMMk80KNZnFGwj97MR5J4ADVznkuSBwU3NGMGmxPkspq/sFuS1H2/fFs3nF 59A+bgaMgKwxKICGq4xwo4SUrVGX0tvMw3ZdlJ7ogRpTMTdIGDxw+OohzoDlig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1Z76Kzkzqts for ; Thu, 21 May 2026 21:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cb9b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Bjoern A. Zeeb From: Colin Percival Subject: git: 19114e85b14a - releng/15.1 - fwget: update realtek and intel pci entries List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 19114e85b14a5abfdbd9824e4fee250abe13df0f Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:51 +0000 Message-Id: <6a0f776f.1cb9b.64c71abe@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=19114e85b14a5abfdbd9824e4fee250abe13df0f commit 19114e85b14a5abfdbd9824e4fee250abe13df0f Author: Bjoern A. Zeeb AuthorDate: 2026-05-17 23:10:15 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:20:52 +0000 fwget: update realtek and intel pci entries For Realtek we only add new entries. For Intel the old way of extracting IDs from the driver no longer works. The new list is shortened as we drop more specific entries which were already covered by wildcard entries. The new lists are also sorted within the groups. There are 4 entries the new driver no longer carries but are still present in older versions, so we keep them manually. Approved by: re (cperciva) Sponsored by: The FreeBSD Foundation (cherry picked from commit ca67cfa5237f7ac537ca8611054b5af2098e2d86) (cherry picked from commit 3f702b299aa1d7625ee0e520c827e73e355775c9) --- usr.sbin/fwget/pci/pci_network_intel | 246 ++++++++++----------------------- usr.sbin/fwget/pci/pci_network_realtek | 5 +- 2 files changed, 75 insertions(+), 176 deletions(-) diff --git a/usr.sbin/fwget/pci/pci_network_intel b/usr.sbin/fwget/pci/pci_network_intel index 02d842a2d075..c088d3a57f83 100644 --- a/usr.sbin/fwget/pci/pci_network_intel +++ b/usr.sbin/fwget/pci/pci_network_intel @@ -1,7 +1,7 @@ #- # SPDX-License-Identifier: BSD-2-Clause # -# Copyright (c) 2024 The FreeBSD Foundation +# Copyright (c) 2024-2026 The FreeBSD Foundation # # This software was developed by Björn Zeeb # under sponsorship from the FreeBSD Foundation. @@ -26,18 +26,11 @@ pci_network_intel_iwlwifi() ### >>> # 7000 - 0x08b1/*/0x4a6c) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4a6e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4a70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4c60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x4c70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x402a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x406a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x446a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0x486e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x402a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x406a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -46,20 +39,27 @@ pci_network_intel_iwlwifi() 0x08b1/*/0x4420) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4460) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4462) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x446a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4470) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4472) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4560) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4570) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x486e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x4870) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a6c) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a6e) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4a70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4c60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0x4c70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5170) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0x5770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0xc02a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b1/*/0xc06a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0xc02a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc060) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc062) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b1/*/0xc06a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc070) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc072) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xc160) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -77,18 +77,18 @@ pci_network_intel_iwlwifi() 0x08b1/*/0xc770) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xcc60) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b1/*/0xcc70) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b2/*/0x426a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b2/*/0x426a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4360) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0x4370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x08b2/*/0xc26a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc220) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc260) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc262) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x08b2/*/0xc26a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b2/*/0xc370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -116,23 +116,14 @@ pci_network_intel_iwlwifi() 0x08b4/*/0x8270) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b4/*/0x8272) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x08b4/*/0x8370) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2050) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x24fb/*/0x2150) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x5c10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x5f10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x9e10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x500a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x502a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095a/*/0x900a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5002) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x500a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5020) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x502a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5090) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5100) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5102) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -145,7 +136,10 @@ pci_network_intel_iwlwifi() 0x095a/*/0x5490) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x5590) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x5c10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x5f10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x900a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -153,9 +147,10 @@ pci_network_intel_iwlwifi() 0x095a/*/0x9400) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9410) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095a/*/0x9510) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; - 0x095b/*/0x520a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095a/*/0x9e10) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5202) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x095b/*/0x520a) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5212) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x5290) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -164,6 +159,11 @@ pci_network_intel_iwlwifi() 0x095b/*/0x9200) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x9210) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x095b/*/0x9310) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2050) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; + 0x24fb/*/0x2150) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4010) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4012) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; 0x3165/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-7000"; return 1 ;; @@ -177,10 +177,8 @@ pci_network_intel_iwlwifi() # 8000 0x24f3/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0x01f0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0004) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0x10b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0044) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -188,6 +186,7 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x0130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0x01f0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0250) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0810) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x0850) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -197,6 +196,7 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0x10b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0x1132) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -216,11 +216,13 @@ pci_network_intel_iwlwifi() 0x24f3/*/0x9150) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xb0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xc030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xc110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24f3/*/0xd0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xd010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xd030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f3/*/0xd050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24f3/*/0xd0b0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x1030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f4/*/0x8030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -229,10 +231,7 @@ pci_network_intel_iwlwifi() 0x24f4/*/0xd030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f5/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24f6/*/0x0030) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x3e01) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x3e02) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; - 0x24fd/*/0x10d0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x0050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -247,8 +246,13 @@ pci_network_intel_iwlwifi() 0x24fd/*/0x1010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1012) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1014) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x10d0) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x1130) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x1431) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x1432) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x3e01) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; + 0x24fd/*/0x3e02) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8010) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8050) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; 0x24fd/*/0x8110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; @@ -258,201 +262,93 @@ pci_network_intel_iwlwifi() 0x24fd/*/0x9110) addpkg "wifi-firmware-iwlwifi-kmod-8000"; return 1 ;; # 9000 - 0x9df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x30dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x31dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x2526/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0x271b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0x271c/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; - 0x2526/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x30dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x31dc/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; + 0x9df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; 0xa370/*/*) addpkg "wifi-firmware-iwlwifi-kmod-9000"; return 1 ;; # 22000 - 0x02f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x02f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x02f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x3df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x4df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x06f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x06f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x34f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x2723/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x34f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x43f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x3df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0x43f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/0x1653) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/0x1654) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0x2723/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x007c) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x0078) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x1651) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x1652) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x2074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x4070) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; - 0xa0f0/*/0x6074) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; + 0x4df0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; 0xa0f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-22000"; return 1 ;; # ax210 - 0x7a70/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7a70/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2725/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2729/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x51f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x51f1/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x54f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7a70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x00b0) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7af0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7af0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7e40/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7e40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7f70/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x7f70/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; 0x7f70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x51f1/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1691) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/0x1692) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x54f0/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x1673) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x1674) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x2020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x4020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x6020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0x6024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0xe020) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/0xe024) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2725/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2726/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2726/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; - 0x2729/*/*) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; # bz - 0x4d40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0x272b/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0x272d/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0x2727/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0x4d40/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0x7740/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0000) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0094) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x009c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00c0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00e8) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x00ec) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x009c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x011c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x40c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x40e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0094) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; - 0xa840/*/0x0098) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0100) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0114) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0118) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x011c) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0310) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x0510) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x0a10) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1771) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1772) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x1775) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x1776) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1791) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x1792) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4090) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x40c4) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0xa840/*/0x40e0) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4110) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; 0xa840/*/0x4314) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; # sc 0x6e70/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; + 0xd240/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xd340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xe340/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; 0xe440/*/*) addpkg "wifi-firmware-iwlwifi-kmod-sc"; return 1 ;; ### <<< + # Historic values which are removed from a newer driver but are still + # present in at least stable/14. + + # iwl_ax211_killer_1675* + 0x2726/*/0x1671) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + 0x2726/*/0x1672) addpkg "wifi-firmware-iwlwifi-kmod-ax210"; return 1 ;; + + # bz + 0x2727/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + 0x272d/*/*) addpkg "wifi-firmware-iwlwifi-kmod-bz"; return 1 ;; + esac } diff --git a/usr.sbin/fwget/pci/pci_network_realtek b/usr.sbin/fwget/pci/pci_network_realtek index d70470b65244..24e24c498e67 100644 --- a/usr.sbin/fwget/pci/pci_network_realtek +++ b/usr.sbin/fwget/pci/pci_network_realtek @@ -2,7 +2,7 @@ # SPDX-License-Identifier: BSD-2-Clause # # Copyright 2023 Bjoern A. Zeeb -# Copyright (c) 2024 The FreeBSD Foundation +# Copyright (c) 2024-2026 The FreeBSD Foundation # # Portions of this software were developed by Björn Zeeb # under sponsorship from the FreeBSD Foundation. @@ -41,6 +41,7 @@ pci_network_realtek_rtw88() ### >>> 0xd723) addpkg "wifi-firmware-rtw88-kmod-rtw8723d"; return 1 ;; + 0x8813) addpkg "wifi-firmware-rtw88-kmod-rtw8814a"; return 1 ;; 0xb821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xc821) addpkg "wifi-firmware-rtw88-kmod-rtw8821c"; return 1 ;; 0xb822) addpkg "wifi-firmware-rtw88-kmod-rtw8822b"; return 1 ;; @@ -67,8 +68,10 @@ pci_network_realtek_rtw89() 0xa85a) addpkg "wifi-firmware-rtw89-kmod-rtw8852a"; return 1 ;; 0xb852) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;; 0xb85b) addpkg "wifi-firmware-rtw89-kmod-rtw8852b"; return 1 ;; + 0xb520) addpkg "wifi-firmware-rtw89-kmod-rtw8852bt"; return 1 ;; 0xc852) addpkg "wifi-firmware-rtw89-kmod-rtw8852c"; return 1 ;; 0x8922) addpkg "wifi-firmware-rtw89-kmod-rtw8922a"; return 1 ;; + 0x892b) addpkg "wifi-firmware-rtw89-kmod-rtw8922a"; return 1 ;; ### <<< esac From nobody Thu May 21 21:21:52 2026 X-Original-To: dev-commits-src-branches@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 4gM1Z93VXHz6f01h for ; Thu, 21 May 2026 21:21:53 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1Z90M6Hz3DHq for ; Thu, 21 May 2026 21:21:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2+WVNpdSR7JCj1Fydq0CFwtpf5FNnIS3LvaCTODHWl0=; b=EbBVyTydJQRLKMs5C0mMvfyAKoM6e+Tc4jU69+TrIVfHrktBvVMBCjnAvY9fgM/PCR9vuZ MR37DI0F5qT0GvgaPETIJgtTNaSWsnDrvrT8DHNGPKIDgxv1zluYPNfpPzwTm4Cpwzs2UI iCdlr77M/9W0VfiYmCrtv4W0YNfIozXQQNezlN4oLmIuJb1m9uD1NN5zYu5XlP6apKEjx2 h0uOY9IGq8oglL2hOTLQUPy7pVb0/uklPZ5Syc6l/x31lLJhKbb+krx0jKnEnjxIgm3kbK ylndNx5srf3hc5GGlyZUEPr0mfudVKJQFwYJcRt/ZiDN4tlCL/tMZKrpDWSjiQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398513; a=rsa-sha256; cv=none; b=SiOk1qiK1BICRZVYPhwronNrHHVLH1qacKMtyCIPAtSX4cmhGBPgNEtbsq/s3/fvyfMdK8 ABfrHmtm/TAy21qlpSJ1SAt0+7fHste/YccJbRa+pTT1JwR02HRlRQwfSG2MBpJ8airWDi qkAZ0K6yi/oCYT6yTHAIwIEBx6ectke8ryY/s775fq0VbZN8GnGb7j2VMxSYFGyHZsDeoO QIfYgN7SAp0kvTMbqnHRVcxo4lcNQo4PtWAYzorO9yyLr5OjL6cuDpUNzKiAYzyIcDNhtP oB3UALQTLGSiGC9aXSMi9AubCIYCtPlXl3dxGLnbp1g0Fv0/qQV+ZaA/hDGjag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2+WVNpdSR7JCj1Fydq0CFwtpf5FNnIS3LvaCTODHWl0=; b=KKPF5hq740UO2OE0Pwe9t9hz0EevcpsYnwdGih/y4YQPv04s9IiMHM1rCF4tdOEr40UGLK FykhtTyZ4jFh0Z0oAnWlvrn18d2UbrdwynV0wjEd0xY8J17y8kfCyNo8Z6VhcOOM51jL0Q 3jxhlG8WUnxuhU7IlG9EyVtVqs0kFT+5kSEeSv+KRr7+B2hcTPWalwGHO1i+kpwwX4mffo vl+EnUfKOQB6gQjyS1FMjtR2WMKb6C41hvSv/zUFWsFlNjkFXor7LSmgtBEq4N3lU9EbX9 Ym2BSL8DRcc5YHSynyEmEwbFleyA9YYIE9AS5jL6OgFkyKMPEEPld4pm0AZlmA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1Z874rvzqSk for ; Thu, 21 May 2026 21:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e0ba by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Michael Tuexen From: Colin Percival Subject: git: fee67650e0f5 - releng/15.1 - sctp: fix NOINET build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: fee67650e0f5d2e1fe2f14ab0d8a1b96c7a7cc61 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:52 +0000 Message-Id: <6a0f7770.1e0ba.27ce9ad5@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=fee67650e0f5d2e1fe2f14ab0d8a1b96c7a7cc61 commit fee67650e0f5d2e1fe2f14ab0d8a1b96c7a7cc61 Author: Michael Tuexen AuthorDate: 2026-02-27 07:51:29 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:20:55 +0000 sctp: fix NOINET build Approved by: re (cperciva) Reported by: ngie Fixes: 454212b9718b ("sctp: fix so_proto when peeling off a socket") (cherry picked from commit 6bd97e9e01ff159eef49b2521fdbe67d5db10d95) (cherry picked from commit 9c440e552c4cc252fe150b5f0edef9b8cd75a72f) --- sys/netinet/sctp_syscalls.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_syscalls.c b/sys/netinet/sctp_syscalls.c index 79c1dfb21495..da7d0556a809 100644 --- a/sys/netinet/sctp_syscalls.c +++ b/sys/netinet/sctp_syscalls.c @@ -30,6 +30,8 @@ #include #include "opt_capsicum.h" +#include "opt_inet.h" +#include "opt_inet6.h" #include "opt_sctp.h" #include "opt_ktrace.h" @@ -78,6 +80,9 @@ #include #include #include +#ifdef INET6 +#include +#endif #include #include @@ -174,7 +179,21 @@ sys_sctp_peeloff(struct thread *td, struct sctp_peeloff_args *uap) td->td_retval[0] = fd; CURVNET_SET(head->so_vnet); - so = sopeeloff(head, &sctp_stream_protosw); + switch (head->so_proto->pr_domain->dom_family) { +#ifdef INET + case AF_INET: + so = sopeeloff(head, &sctp_stream_protosw); + break; +#endif +#ifdef INET6 + case AF_INET6: + so = sopeeloff(head, &sctp6_stream_protosw); + break; +#endif + default: + error = EOPNOTSUPP; + goto noconnection; + } if (so == NULL) { error = ENOMEM; goto noconnection; From nobody Thu May 21 21:21:49 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZC4D9hz6f0BK for ; Thu, 21 May 2026 21:21:55 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZB58Pjz3D2n for ; Thu, 21 May 2026 21:21:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398514; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SdbFQHOJJqhAHPaplPSdFhamFQngddHvkv6TWVlnWeE=; b=GKHGvFGSbGlDqCd00bP3qx+CRDqnWk06Aq/DESsY5/ij7P9ng5obqAzvUIcswGldjMDs5J Iw4qsf2tY9UT8GsnA05zt55p2iYzgARtdOtrKLJPc3jReEDu7mxntbJhq0cNmRBlV5WFvh 8gPGJgJ8M+e8hGxve/X/qtHwbwXc3z5kXeZ4bbqt+xkKSgEtaAclotFQ/W4Mm9EU+QLoqe UT5Ux7p7uHx8nzBSqS4SBTlox1N1BQndZXr/xeCdn6NKefg/DTYaMHRR+zpuWue2l4v6dc +q/fzI6Q/b40y8XdQG+HA6Fflu66MTkCVd7nqsJFE2mA3elZ/gCXx5N+OzeR/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398514; a=rsa-sha256; cv=none; b=LxJABNDzLG6SdjnMGN5aQFzeMnyFH5Yh+tRrhLT4snKeNqrjWgGQL/9J8ViBpyJNAZnFLz LDD75lhfUZjuu2g4/6O5s0EPp0K3Qcfaw8hCf0pMbIruNgwmmJqhLBld3egkbQe2C1f5p2 8Yx5nJsuMxH1z/V8qhuwk7iXg/CcBf0H+EVO3g/WywlLIkr3aqtPif+MT5s9C16Y61VYBV rzJ5JVq2jZy4/Rg62gJfiGapDOpPeknLYUoAk0/vowh2ZYnyxztpXOyEKbSPLO0pkKzs97 ELkmqFLKjOJ5Nj+ZO3ZkmS3nmX5OwEmsPli5NBPAYncHo2XgHcTOSThsQJ/W6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398514; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SdbFQHOJJqhAHPaplPSdFhamFQngddHvkv6TWVlnWeE=; b=ibKNIS0EQ1WRFT6b+Nu+Eqi0EV2M9+mq+E2GT2dm51LFLjno+S/cTThIC7opSkUv+hZ8SG Gx+hpJaCEETwntJj0g06QljoMXjK8LYjv9ipx3QmMpX4i/Drfd7D8rFXhF6oExI2NP0iQ/ Ebb+OmHvoFbZQFBSBJ0dwbgEWHHHceCkgssMl7byp/aSwh4Mgcd+zsPK0Ieo125UbeY7bl UWk0svwN+g+8IP900paqVqIW6oLhXlEFWPirw6KMQnKhbZZOXRiNTedDXVHrUU4W+MbWtn nuvt+l8LU2hCFSEEFAsFc4iIHTwSaOLrwClcRDgEf5hGlsQ9hq1pQXh4GMk3Vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZB4hH8zqpW for ; Thu, 21 May 2026 21:21:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e237 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: d6bbb597049c - releng/15.1 - ptrace: clear TDP_USERWR after transparent attach only on attach List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: d6bbb597049cafced800585b72a155473b93331c Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:49 +0000 Message-Id: <6a0f776d.1e237.5ad66d65@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=d6bbb597049cafced800585b72a155473b93331c commit d6bbb597049cafced800585b72a155473b93331c Author: Konstantin Belousov AuthorDate: 2026-05-11 01:12:30 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:20:30 +0000 ptrace: clear TDP_USERWR after transparent attach only on attach Approved by: re (cperciva) (cherry picked from commit cb31a266167c8bde3488fbdd6bf24c38b6f59977) (cherry picked from commit bce6e0e903288aa128bdd8ec45005d1416c4c764) --- sys/kern/sys_process.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index c67996ad7df1..7225a63328b4 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -1377,17 +1377,16 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) * register file or specifying the pc, make the thread * xstopped by waking it up. */ - if ((td2->td_dbgflags & TDB_USERWR) != 0) { - if (pt_attach_transparent) { - thread_lock(td2); - if (TD_ON_SLEEPQ(td2) && - (td2->td_flags & TDF_SINTR) != 0) { - sleepq_abort(td2, EINTR); - } else { - thread_unlock(td2); - } + if ((td2->td_dbgflags & TDB_USERWR) != 0 && + pt_attach_transparent) { + thread_lock(td2); + if (TD_ON_SLEEPQ(td2) && + (td2->td_flags & TDF_SINTR) != 0) { + td2->td_dbgflags &= ~TDB_USERWR; + sleepq_abort(td2, EINTR); + } else { + thread_unlock(td2); } - td2->td_dbgflags &= ~TDB_USERWR; } /* From nobody Thu May 21 21:21:54 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZB4CSXz6dyhf for ; Thu, 21 May 2026 21:21:54 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZB1NBbz3D9q for ; Thu, 21 May 2026 21:21:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398514; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BKM1qij4T0viRt9cOyGNjSPH0p6RHfd4DumCQhtKtwY=; b=Sg9Jyd40jSGHSZZD8OLcGQLI4dH6qeyKzBu7klEkX2Juthj9e2x8hliCpJnghjiTPlOLjj SdbMexVDgpyU3iiIOUs12bY77si6ItX7au6N9AKmDdSN/1VoqBwCgC/bbbBzcoIYybARk9 lM6blAqJCXPlsOMqnLoUWnZw+J4GYOI9jKvuyOKPHju68di26Ab1Pixont7pZtj01K8JZJ X7TMnIY4ObfmQvAI3wLbyJ8LzILvQPqTYDqO8uYkIgokKSAyFdcqg9K1DtW5dNDF+1OSyI WHJSQtPmMrAI5zycYOxD1PXoIJVexZLLFU0+n320noev9i2S1xh+yyIB1FkOmg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398514; a=rsa-sha256; cv=none; b=HKjFd/qcpPvecgOrVnuESV5Zcu/WnoRJKMx6T00hz8wadyx8MJyXWuyb2ilL48ECPZfIFS VuYcPt46DJs1JY4IWJ5n5dEDuucnOUX47Q8OOCcOacFWyTJmG8aNTstvovdKMLWEqGZtzI 2JzGPU/J1/cyTBkf6tq642N/ECypXmybgZo0lkVzbjz+zi3y4/QgAxkda+vcrT74Th9uwN dNIYo2nI8vJfkbhd/GsWTSi9xsjLkpfnj9W/lSpCJrg9WUF+Ip85NmEtIHgYLTzg5f/cIf PgVTkgjRTITbIGKHWaYVJsPl62k66y4qu6ZSdfsrpMP6S4yrSELRTQnpk++d9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398514; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BKM1qij4T0viRt9cOyGNjSPH0p6RHfd4DumCQhtKtwY=; b=szmv3botQgFPWTYBeNaZbWa0B5gAQd0HNtqOyW2Wk/eWpAp5X9unQBY6zHE/mCA3IIWC3L pSw4TUfxSnitWy4941dKnC/JlzuJA+DWmSof39pVDsHpR1VcPhs8YsRTg3xRGRE40s+ZL6 jkJzsamSahrYLpHOAWt6KuOhKQHJUMaiYKMkGMjDTOvO9NKmO3hccXeFGXdV5AfCRhM6NH xmEf2/1xIPQAi43pzGCIThEYlvchai3PPgw6UJXlG78QG42RJATMDdRtVs0LdupXccCU2f bApgdKc6WUqE6lU/n6M5+2/cPEqZCcJ2QKU4pZ+oZuvO3HUjzB63FlfLVcfk/g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZB0r9Hzqx5 for ; Thu, 21 May 2026 21:21:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c590 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Michael Tuexen From: Colin Percival Subject: git: 8562c6727343 - releng/15.1 - tcp: improve validation of received TCP over UDP packets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 8562c67273436b04ec966e9d8a5a872ea507af2d Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:54 +0000 Message-Id: <6a0f7772.1c590.104fb2@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=8562c67273436b04ec966e9d8a5a872ea507af2d commit 8562c67273436b04ec966e9d8a5a872ea507af2d Author: Michael Tuexen AuthorDate: 2026-02-20 21:21:37 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:20:58 +0000 tcp: improve validation of received TCP over UDP packets Approved by: re (cperciva) Reviewed by: glebius, pouria Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D55410 (cherry picked from commit e1886559ea477add82a0a86cddf728f6778f1603) (cherry picked from commit ede0f15e03e0a172493cd20d1dd2d88b1711156f) --- sys/netinet/tcp_subr.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 7152e8ad600c..9a227218c525 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -579,7 +579,7 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, #endif struct udphdr *uh; struct tcphdr *th; - int thlen; + int len, thlen; uint16_t port; TCPSTAT_INC(tcps_tunneled_pkts); @@ -623,15 +623,27 @@ tcp_recv_udp_tunneled_packet(struct mbuf *m, int off, struct inpcb *inp, switch (iph->ip_v) { #ifdef INET case IPVERSION: - iph->ip_len = htons(ntohs(iph->ip_len) - sizeof(struct udphdr)); - tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(iph->ip_len) - sizeof(struct udphdr); + if (len != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + iph->ip_len = htons(len); + tcp_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif #ifdef INET6 case IPV6_VERSION >> 4: ip6 = mtod(m, struct ip6_hdr *); - ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - sizeof(struct udphdr)); - tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + len = ntohs(ip6->ip6_plen) - sizeof(struct udphdr); + if (len + sizeof(struct ip6_hdr) != m->m_pkthdr.len) { + TCPSTAT_INC(tcps_tunneled_errs); + goto out; + } else { + ip6->ip6_plen = htons(len); + tcp6_input_with_port(&m, &off, IPPROTO_TCP, port); + } break; #endif default: From nobody Thu May 21 21:21:56 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZF2bFfz6dyhh for ; Thu, 21 May 2026 21:21:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZD2sLGz3DLh for ; Thu, 21 May 2026 21:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N39R+lENOLqecGfaK66K82isIABjI2SVASXFs4bhyvU=; b=LqHg95s7MSDhyHaHTUdx5pb2tXU38uVnppfLwsa4yhtvX50LSjZQHx7qRdsDHjTOlUre44 4qrNAdvw2MZ8w6tLiKbPI/64Ytdm3QCU+DGMcm9GPRwVMK1EyH77O6nqp3udg/GY9KCeNi QeAOiNs8TqPwx+skMat1KqBGHzTUkU7wVEfN8LaR/BjOyOcy8LBvUIz4+JzBzNixbrga5I ebWUeCMgFWKSlbCscQLuEUVqroY1A9bmXHXWBJZNdbGBT5QYn7n2v4ae9agPz5DVB5cZTN rFS3xwm2vuWFOLSmvIk2pT+F4is2+llhsYkazyyJRqx/FjmajWdrmScfvh+u2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398516; a=rsa-sha256; cv=none; b=lnBgzbeLkBCPZzMzr7xTQ36le6aJFsMWn8+L1/ZZMaCp+DWEbWhceOvG2l80gYqbcpnVPi zJRX5UjbTZkjx+L3WfX88UvYTY/8v6wdlfI80QnJkL4lsfyxeL2askazWo35RTxj3IaHqe 3WBzjKIb++Fu7+l/0nSFH2fLI32QvzNgiRfSekVFcHWJWo/b9H4e1Sw/mU+1bubVPkJUP/ e2vNL3eUw5odkJUEIlLjclU9zT0Z+OiibCzmNq9wcfAepiknTkl++gU/8z5lXjWVbe+LlN sotPnCdctwAYQyPUWb1qa3lcE3lqaKe2Im9VlOEMU/+TWs35Regq+xLk3bjQlA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398516; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N39R+lENOLqecGfaK66K82isIABjI2SVASXFs4bhyvU=; b=ithTaB+hJ8Ea72O3U+Wv5QtByY1LaV5ftKdCbKYOdORJlWgsBZmeJ8pYLmFGLRMP/VfCdN jaHg8QR8cDvIa8ccmLW/Qg5KgByuNYil/CtRFA/G1qkjUJ5q81PB58eb8W6gK4GFEim86t c93E0C/KC3cGT9TArH+7uZzofeB9E/w4yF7INqgh7gfHH5/08Y3Hshaum2Ajmdmn9cghNI T0Af6inOoBPJqNeyOen0oRMYRYiv2HXlwpuneBkMvWuxxd4+EtuofYX/rbaf0dbx0ZRcsb FFSfheprwB3TDPLznECEWgDMVoYu+BrcWcLEIO+wlrEN+B3gieqAR++QtzniEw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZD2K7zzqM8 for ; Thu, 21 May 2026 21:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ca1e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Olivier Certner From: Colin Percival Subject: git: 7e92fb354fc0 - releng/15.1 - mac_do.4: Jail parameter takes 'new', not 'enable'; uid_t/gid_t are 32-bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 7e92fb354fc0e65347ad4df783a7db163a196134 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:56 +0000 Message-Id: <6a0f7774.1ca1e.18c4a4dd@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=7e92fb354fc0e65347ad4df783a7db163a196134 commit 7e92fb354fc0e65347ad4df783a7db163a196134 Author: Olivier Certner AuthorDate: 2026-05-21 18:52:37 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:02 +0000 mac_do.4: Jail parameter takes 'new', not 'enable'; uid_t/gid_t are 32-bit Approved by: re (cperciva) MFC after: 1 minute Sponsored by: The FreeBSD Foundation (cherry picked from commit 21df76d01fce35b0398cf38c31928c6f47111d55) --- share/man/man4/mac_do.4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/share/man/man4/mac_do.4 b/share/man/man4/mac_do.4 index d02932070e25..8c08e072be88 100644 --- a/share/man/man4/mac_do.4 +++ b/share/man/man4/mac_do.4 @@ -8,7 +8,7 @@ .\" at Kumacom SARL under sponsorship from the FreeBSD .\" Foundation. .\" -.Dd June 11, 2025 +.Dd May 21, 2026 .Dt MAC_DO 4 .Os .Sh NAME @@ -266,7 +266,7 @@ then converted to unsigned ones as specified in the C standard for the .Vt uid_t and .Vt gid_t -types, which are both 64-bit unsigned integers. +types, which are both 32-bit unsigned integers. .Sh RUNTIME CONFIGURATION The following .Xr sysctl 8 @@ -307,7 +307,7 @@ The following jail parameters are defined: .It Va mac.do Possible values are: .Bl -tag -width "'disable'" -compact -.It Ql enable +.It Ql new .Nm will enforce specific credential rules in the jail. The @@ -337,7 +337,7 @@ If set, and the jail parameter is not so explicitly, the value of the latter will default to .Ql disable if empty, else to -.Ql enable . +.Ql new . .El .Pp Each jail must have From nobody Thu May 21 21:21:55 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZD68PVz6f05q for ; Thu, 21 May 2026 21:21:56 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZC27prz3D2r for ; Thu, 21 May 2026 21:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IPtju7AdqsqVmmPDjsl0JKIlFXRSv506uOD9m2Qr8x4=; b=gUd4C5q1LVXUSLNumFdPO4fZcfQFq8s9+Gkr2tU4juLAyqsNDXL13j6f5nsMJciEeD6V1W ANJV9cIR2Yo69DIqb5iGNKFUoo/QWNsWNXkz/CqTOZBXLyGQkaVhr/TPui7S6nZfgFNiZj GusBy7MTJnJok7THXejxj2or8LbqSHtSeZupncTQESyzBzqADlJeYXUf6VI7saFC/pElfg qTkOEyIGUnoChVJS/zkR6pP6snGOkwSY/Hf01oqwwzKwaEp2x9mTCT1o/dk0J1OpIIuJF+ QnzD/WBu3C/IabS0hTJyCFGkhMkawmN58/WZr8p10Gsn2dZcLsQxB8y/M0ANHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398515; a=rsa-sha256; cv=none; b=dSHzKzPOVxl5Q9+I0P+OpM2NlBP2ETHCDcXI7NoXcEw0Z3HhhWO7uZEhA49MPIZzG+geUg dkGu+Ko1ZCv89SggpxglaW8MFwuDw4EQb5XntYL7R7ak1RQlKtgxYbmw7hYbX9bFzPaW6P TdMwUHhO/BjxDsUqy5Fx2LMVVVhEk2ZvhuffhxK0d900guDZIs2GUhCrWjbGG/zsEneNoi hxtkxF4qgWcgc7RiiUQ4cBcvT+bAewLQcsACX8gx1zfw9yx/uCYBKbajbnlNwWfxNjLoXL 6WTqpCoEQhFxE0aXcr/E5w2aZTB6QKsEM1qpduDXTmN/dwP/u+gKMWm98qpPvg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IPtju7AdqsqVmmPDjsl0JKIlFXRSv506uOD9m2Qr8x4=; b=Y7o+rx3rsaDGexJ9Dt4AVD0nfL7ZqQqQ8y4eZyAE6hX2s/SvDyfoYxYrU00rRZ3sCU1Kg8 A8fxJTgUFPXC1Hoe7dNq11IZB6TAImgsXcwOxwvt9khQ1Lsayj3Dt/0jZ6w3bo7pPqqfX3 EmB8qtbbS57VrMLwqgEA28CdYEYE7DneyrHb5sEpREIWMbqpN5+wIxgrlTgdY3ba1OY5ta SV46RhI+PYHdNnCTNyADi16FVnky6E3UcSLcCx21fatSU0wLi5tUZpJwUJck59YVcxELLa Svf7zS0zgPM/Z6tjnEzAZu5sK05GIrwaXV0cKiDOv23b7zn1azxdkzz6lFGrMA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZC1gF5zqrb for ; Thu, 21 May 2026 21:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bdfe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Alan Somers From: Colin Percival Subject: git: 4eb969321cef - releng/15.1 - linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 4eb969321cefdc878de8be81abd30d09732db7c9 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:55 +0000 Message-Id: <6a0f7773.1bdfe.70f2e9cc@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=4eb969321cefdc878de8be81abd30d09732db7c9 commit 4eb969321cefdc878de8be81abd30d09732db7c9 Author: Alan Somers AuthorDate: 2026-05-16 18:03:49 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:00 +0000 linuxulator: fix SO_PEERCRED emulation after 1d24638d3e8 For Linux binaries, sopt->sopt_td may be null. And there's also no need to check it, since struct l_ucred has the same layout on 32-bit systems as on 64-bit ones. Approved by: re (cperciva) PR: 295333 Reported by: Miguel Gomes Fixes: 1d24638d3e8 ("Fix LOCAL_PEERCRED in 32-bit compat mode") Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D57032 (cherry picked from commit 4cee16d471d47f4673e4d2c66f7a96d4e6d86ee9) (cherry picked from commit 57fb48f8e2fca5f069e9bc3cf080608f602919a9) --- sys/kern/uipc_usrreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 8e8261c9644e..90c13f7e17c4 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -2759,7 +2759,9 @@ uipc_ctloutput(struct socket *so, struct sockopt *sopt) if (error != 0) break; #ifdef COMPAT_FREEBSD32 - if (SV_PROC_FLAG(sopt->sopt_td->td_proc, SV_ILP32)) { + if (sopt->sopt_td && + SV_PROC_FLAG(sopt->sopt_td->td_proc, SV_ILP32)) + { struct xucred32 xu32 = {}; int i; From nobody Thu May 21 21:21:58 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZH5Vn8z6dyhk for ; Thu, 21 May 2026 21:21:59 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZG5J8gz3DXP for ; Thu, 21 May 2026 21:21:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398518; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SvYTIJ2NRcbzVQgifEvFVqGcmtATUuJ8FZNSW1acaUI=; b=ZAlMbXOVrszn0UFC2gxlo12b+V5UIOwZcWYo62ZjkJoHctkFIOIQjhN8zfHSg0NBrB7Us3 EqBAjRSjZYkBLXwsFQcvAfi9USZuumYCVb2O4Zhp7RHZ68wb3euv3FSBEGXqdcJ8Kc4hbX JIWzDcv5j6R4ZFZUA324aIYIw7yRcnp3wXW+x5VNSfMdT4bJP3uFqJbPI6hkLzoyVv1YqV j839SZAYUTm6eTjACmbA7uEQ0/yeBUkwhnzd5UOgWulcu6mBpA/B/N2/85UHc6etbfaRsr otNTjw3M9j0lyPixFCD9n3V72Vcm5FMicIi7QiK8qAYn7s8AoJjpIcMoBFCUQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398518; a=rsa-sha256; cv=none; b=J0+GK+oBDLsRyI2QGPqnVziqRw8FuMfmDWuFoefebQfASaJJebdTh6MwKWdFHesOGc6rzh M82k/uamhyBpvZbHFTIFIwMia75KLMSvgppXNVCcltu8EbahymELywHtVZtfEMAfiJH51k v2gMLzvaS2DWSdLgX4jqhS37J5gWd7OyiGLWR80SPsrLze/eqH472BQaGbxEUsOEoDEp9K CAuxhWBXfcdjvqxWr2YilVNB0br5G4ALeHjM6pIKm+CUpTQDeEnNffukBiPolCtnBHtLEB qFISSD5/+HK+cA0uN5GquzVTsgK+nD5NhcBtqnVkF2YYK3goEq+lfDOIdGZiiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398518; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SvYTIJ2NRcbzVQgifEvFVqGcmtATUuJ8FZNSW1acaUI=; b=rbeF8n5CiMzuajugK7ylZow+FRVUI5+H3bXTq6P51lg1vMF/mxID/E9IamRnWtH8JOKTmP jsCp0CvC9xDrq3bNCODpfXQnvDcKKfksI5FaxMuDNDTnmfOpCNWLr6UHOKhBiUQ6AOA2RJ BJd79mk1pHF4UDXI8bYKaObnSNcZPX91OhE+KIbgfj+nFJYw6+ttPcu4/KvUAyuWoU7v9/ O04xP1x5vXOUb6xNKhSazcZBfXzXLp6moM4tcdBxDherJrNNctYE4LXW6wpxSrUrnda/UW g+wHgBD6CvM8DHItck5gEVUCUJK+TcnE2iBJ6afvCBHyiwqXVdKZvmIFZxOpEw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZG3RVhzqtw for ; Thu, 21 May 2026 21:21:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d9af by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Robert Clausecker From: Colin Percival Subject: git: ae2840e094ed - releng/15.1 - libc/ctime.3: timegm() is in C23. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: ae2840e094edcf8c4ca86b893e704cd7380f8a85 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:58 +0000 Message-Id: <6a0f7776.1d9af.139f2024@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=ae2840e094edcf8c4ca86b893e704cd7380f8a85 commit ae2840e094edcf8c4ca86b893e704cd7380f8a85 Author: Robert Clausecker AuthorDate: 2026-05-14 10:24:30 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:09 +0000 libc/ctime.3: timegm() is in C23. Approved by: re (cperciva) See also: D53951, https://wiki.freebsd.org/C23 MFC after: 1 week (cherry picked from commit 68251761c77b2f5ff927cf19bba7d4efa88799de) (cherry picked from commit e4bca1be11c5edad947d50ce86388bba73489f89) --- lib/libc/stdtime/ctime.3 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/libc/stdtime/ctime.3 b/lib/libc/stdtime/ctime.3 index 6384e8bd959b..e51cb5d52f94 100644 --- a/lib/libc/stdtime/ctime.3 +++ b/lib/libc/stdtime/ctime.3 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 23, 2025 +.Dd May 14, 2026 .Dt CTIME 3 .Os .Sh NAME @@ -354,8 +354,9 @@ table). .Pp The .Fn timegm -function is not specified by any standard; its function cannot be -completely emulated using the standard functions described above. +function is expected to conform to +.St -isoC-2023 +with the same constraint. .Sh HISTORY This manual page is derived from the time package contributed to Berkeley by From nobody Thu May 21 21:21:57 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZF6qzkz6f0GY for ; Thu, 21 May 2026 21:21:57 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZF3mFnz3DLn for ; Thu, 21 May 2026 21:21:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bYGVVBZdYzQkT3p6P2J8NkWGStuIOv3ljrTWdfXi790=; b=FpsAGEHhQ0zqXaEgregqbS4rQ0QtUKqkiye3o7w/XEAhl9xR+IcKFZMvu5SXTIxgq0d7Tg irSOhNItv8v78g67Lci58AoBmquq+DibRbs+5ANq9NJPk0NrnGQJMitC4becQcIGJTcCHX NbNzcRPuCjsg22kTuaWYV+J9AFnlO7E5dIeG3wLXmF0pFm8YNFirWZBKGdjwcIm97RFM7W PLqX8KbFvtFploDASzYWHgqa4VyxLPZCHj881NAJgmmIRHwbbckR7Butby1/ogYvbMXWyn ff/LKrkAa0wtGH8lRxy5DpNweS3pPJwa49ifhi0ChO3RKMtQbcpdJCxYz6cyVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398517; a=rsa-sha256; cv=none; b=NkgWE+vN+Zles4ZRUU4B6RACFnkblHiFPiAXGrNJJWNm39IArnkGej24gT+XxLJbNUe5dQ QAzD641xUFuoFY/dZKpIP8LB1j855gXjdVjXtZC5jbX5d2t+Gj+LXTBbHqDo2rnb7OrbKI QKzCsK1eoZprAfq8OvsAitkzeBcZqnJ+BrJdo8ZKTXTT4pDsJTjPQ7m3BSP5cr7XQfVXns 4pzvAqd+9OEcL148LQo0KnmFLloMfyVMQ2kX6p1l3H8ibyEa5ljk54o1TzDKtRMkJvwGiP Z4tar1wpEdOR6gzNs4MR+TvLl9FbIU17y9Bx1/MFxP1CMq/U4IKQL9LoedMtpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bYGVVBZdYzQkT3p6P2J8NkWGStuIOv3ljrTWdfXi790=; b=Ce1oQmAo7DKTHPnfTVBvyxHrGEl1T38HRY5Mcfv63LO62AnyV+S/4K4s7u/3FDhrbcP5DU UYv6sVvvgEOXt3RuGyJbJ5g2449Ex6VEfpRQrSPzvTIdeMgK1pw99b6Ev+k7YkNZZtdk4A YgrQ3PhB6UYuR6goeD2ohDz/HpbHv/h0mdXLvvfHDDIS/h/s35NzjYz/ZAuhVugRKgsc46 PLbW5WXQUXlE4PfKkzH8qfDTRXQZJF7bCpsJZdX+grw1hd8FZ4AWtGUFzYui5WK3cvCYSb DJRT6F/R6jsn5Q+w8mlyRhajLdnQ8Ht6+TQgNJ75ehxM40B7PZsVKhG6K8i2Tw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZF2wDszqx8 for ; Thu, 21 May 2026 21:21:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d3b8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Timo =?utf-8?Q?V=C3=B6lker?= From: Colin Percival Subject: git: 78de09e1412e - releng/15.1 - ipfw: fix checksum after NAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 78de09e1412e2e720a2391457f65717248bad4f4 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:57 +0000 Message-Id: <6a0f7775.1d3b8.10b4c85b@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=78de09e1412e2e720a2391457f65717248bad4f4 commit 78de09e1412e2e720a2391457f65717248bad4f4 Author: Timo Völker AuthorDate: 2026-05-21 10:54:44 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:05 +0000 ipfw: fix checksum after NAT When checksum offloading is used, IPFW needs to fix the checksum after libalias has done NAT. The ipfw_nat() function does so, but only for mbufs without a receiving interface. However, if, for example, the packet was sent inside a jail that used checksum offloading over an epair, ipfw still needs to fix the checksum even though the mbuf has set a receiving interface (epair). This patch just removes the check whether a receiving interface is set. Approved by: re (cperciva) PR: 295057 Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D57091 (cherry picked from commit 81b47a7c604f1d563283759572fa7a1f9d4dc56f) (cherry picked from commit 198379d2c29fae7300b650a96199e51a66b87364) --- sys/netpfil/ipfw/ip_fw_nat.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/netpfil/ipfw/ip_fw_nat.c b/sys/netpfil/ipfw/ip_fw_nat.c index 8bd27f6885ab..34e60edfc4a5 100644 --- a/sys/netpfil/ipfw/ip_fw_nat.c +++ b/sys/netpfil/ipfw/ip_fw_nat.c @@ -311,17 +311,17 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) /* * XXX - Libalias checksum offload 'duct tape': * - * locally generated packets have only pseudo-header checksum - * calculated and libalias will break it[1], so mark them for - * later fix. Moreover there are cases when libalias modifies + * When checksum offloading is used, packets contain only the + * pseudo-header checksum and libalias will break it[1], so mark them + * for later fix. Moreover there are cases when libalias modifies * tcp packet data[2], mark them for later fix too. * * [1] libalias was never meant to run in kernel, so it does * not have any knowledge about checksum offloading, and * expects a packet with a full internet checksum. - * Unfortunately, packets generated locally will have just the - * pseudo header calculated, and when libalias tries to adjust - * the checksum it will actually compute a wrong value. + * Unfortunately, when checksum offloading is used, packets will + * contain just the pseudo-header checksum, and when libalias tries to + * adjust the checksum it will actually compute a wrong value. * * [2] when libalias modifies tcp's data content, full TCP * checksum has to be recomputed: the problem is that @@ -340,8 +340,7 @@ ipfw_nat(struct ip_fw_args *args, struct cfg_nat *t, struct mbuf *m) * it can handle delayed checksum and tso) */ - if (mcl->m_pkthdr.rcvif == NULL && - mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) + if (mcl->m_pkthdr.csum_flags & CSUM_DELAY_DATA) ldt = 1; c = mtod(mcl, char *); From nobody Thu May 21 21:21:59 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZJ346nz6f05w for ; Thu, 21 May 2026 21:22:00 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZH5GTXz3DMD for ; Thu, 21 May 2026 21:21:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M2PJV8HOCdk+CF2GqlO62NBqdhQxN1ObkGdN/RPxfxg=; b=hQdTocJKdE5LSbJV3/jd0K+rPmQxw0vUAwTEX0IGlgvD0+AFyJk36XhAuDg4R4cfuOtwFw oZiD3b+7zxD8qE7zHNaz3pNa+uluhKTEvCuz+7cQ4Izqc7dC99QmRXtdVB7BwiVg+bsJMQ 09yrD6vF8Xi1Go79+5ETP584tpOpiv05pTraBzt6Z4uZEwvNSKmc834t5vgCqw1I7b17ZW zE0qfm70ywdv900sK8AM+w3wbD8xdHXXbYCFv2bT3XHLUV+V9C10Da/L5AL9cGqTz+oVGd YT4ZK9Tl+dNDIBxmn1SXZlcvDktDBY5HQ2N69jhNFKPsFc/Z0lfMiIZZV/6dPA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398519; a=rsa-sha256; cv=none; b=OZLWiGYXjDwJiUO57ou9PjPMSiq4vAiS2+eB6MxmtBDJxIH8XrRbEV90FVqp0w8akyDJ9i Lm0I81wW5du1ypHoYd5ByAFrC4m7xqI0DKsaFUQ5ggJPuUkfP9IabkDvzFvJP4omy1Er3c gLjZEpNffYTQGOdfFI50pibdT9ItLJ028HtAcXnBAdgKLn/Oo+PJU61TyB9zZaX7fQkWwn JoSk9DUt0DXKju1sSgfh9QvzWXlf4aAmzbNPYiy6l4U+N4OljZUvH1cCWIKe9pMCd9Nvps oaGSoP77Rbqe3oussmHWiVTvlRdY7nZ6EVE1Nn5pV/JeJuJK99aTunsU8KqIbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M2PJV8HOCdk+CF2GqlO62NBqdhQxN1ObkGdN/RPxfxg=; b=Rsubec2VIecYDS0F1t4hDLY5BUW8aaQ4CGqGmOmmOSk8ukZ4f/DfvnPLHsfq87i3pcmKFL 6O0sZmx1tdUJcJqpqcXEHbFNsr9+BHbrIRw9VkXLtt5nVXnN1gGUqwQejHX+jAY2FYk99F UXDXUMW3/XvUFCtdeqt7DMcv6tiXu4ucvF+eZd+OaKq0C+ZhOajPtzi8L0wSggLpVPSm2Z e1v2fansaoSRdjHc+WvVrGU4escnJGfGBBZ3FyYnrV8v7NiJSOa+PSY/+6qkhJWfrlOMrv KDG1+K1kDNgM2wL8nCm+kfY4RPvYfNceImLOUPoNANARffs81/Tk3FR1x1hmGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZH46jtzqR3 for ; Thu, 21 May 2026 21:21:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d04f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:21:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Robert Clausecker From: Colin Percival Subject: git: df9f5d3ec2af - releng/15.1 - libc/timespec_get*.3: expose STANDARDS section List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: df9f5d3ec2afce419f69a65db54a95ceecdca694 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:21:59 +0000 Message-Id: <6a0f7777.1d04f.42be56c@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=df9f5d3ec2afce419f69a65db54a95ceecdca694 commit df9f5d3ec2afce419f69a65db54a95ceecdca694 Author: Robert Clausecker AuthorDate: 2026-05-14 10:32:11 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:11 +0000 libc/timespec_get*.3: expose STANDARDS section We now have .St -isoC-2023, so the STANDARDS section can go live. Approved by: re (cperciva) Fixes: 9b5d724cad10087e34165199e55f15f2df744ed5 MFC after: 1 week (cherry picked from commit aa92784fcb8a375231058d67f7ccaeaa3e42ed33) (cherry picked from commit e2fb604d4ddd34207f08d1e1b17c554b6f967927) --- lib/libc/gen/timespec_get.3 | 10 +++++----- lib/libc/gen/timespec_getres.3 | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/libc/gen/timespec_get.3 b/lib/libc/gen/timespec_get.3 index 7edf4fe17c30..f6cb578db55e 100644 --- a/lib/libc/gen/timespec_get.3 +++ b/lib/libc/gen/timespec_get.3 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 21, 2023 +.Dd May 14, 2026 .Dt TIMESPEC_GET 3 .Os .Sh NAME @@ -85,10 +85,10 @@ of .Dv TIME_UTC conforms to .St -isoC-2011 . -.\" The -.\" .Dv TIME_MONOTONIC -.\" base conforms to -.\" -isoC-2023 . +The +.Dv TIME_MONOTONIC +base conforms to +.St -isoC-2023 . .Sh HISTORY This interface first appeared in .Fx 12 . diff --git a/lib/libc/gen/timespec_getres.3 b/lib/libc/gen/timespec_getres.3 index e00af6758f1a..1b65cad4a056 100644 --- a/lib/libc/gen/timespec_getres.3 +++ b/lib/libc/gen/timespec_getres.3 @@ -3,7 +3,7 @@ .\" .\" SPDX-License-Identifier: BSD-2-Clause .\" -.Dd August 21, 2023 +.Dd May 14, 2026 .Dt TIMESPEC_GETRES 3 .Os .Sh NAME @@ -36,11 +36,11 @@ if successful and zero otherwise. .Sh SEE ALSO .Xr clock_getres 2 , .Xr timespec_get 3 -.\" .Sh STANDARDS -.\" The -.\" .Nm -.\" function conforms to -.\" .St -isoC-2023 . +.Sh STANDARDS +The +.Nm +function conforms to +.St -isoC-2023 . .Sh HISTORY This interface first appeared in .Fx 14 . From nobody Thu May 21 21:22:00 2026 X-Original-To: dev-commits-src-branches@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 4gM1ZK4lGQz6f03x for ; Thu, 21 May 2026 21:22:01 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM1ZJ50ZGz3DRs for ; Thu, 21 May 2026 21:22:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398520; 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=PDNcaWk5BJjHBPnJnpX/MNaVZNu88QvRwVxu2M+Nplo=; b=kTJ/IS+wmewr/a7Ss1UHO+sL4aIczxcmtgGSdaWCmLwkQfZ3E1fQg+355wGTDsybe1JoT7 3Q4noAB+OoufmADcTtelitTbC8tCVDHjwWKGbWhcCRdlUPHZsubyjCQZxBr5pE5kwdv5jO oEQMQWDEtZFf1ShqF4I+tmqdYL24gV1URLe7KTvtlxrw/wta2yDPBHJNWYXZaAImVyhnqc NxoVBxvcGXwiLqkkH2cnlWJ6lb6wS/6LHN9AnJeRqQ4lYpqBNcFWDGZXZyj2+/QMdFqiN6 0XUhn/OhyxOWrZ6Jlt0VDSu3rgN2mtsVpbS08qVWgsbrxmXhJbltcQ5mSbTY4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779398520; a=rsa-sha256; cv=none; b=vFkBQYFAZa/DVICwF33MCDzMYKHGGgGcsNqB9kOeN3MaR/ZGpecKn1seVuDB5spbLHVUtk h8QkZQJtixCUb0Ww/bX8evB3+6eNyEd4B+JtEK1MV3HpKAXZGlhhsEcAkUTtxyKhChYoHV l+3Hw5FDkYnAtSLBCaS80SwVIW4BCVIvCuoNsLk6Uo3y6DyV1PNPwdwiZjoX+2qpsetDKW o5s9aBfzQlZ9cStUGamry/u42HJUWpU/MuvtYMst/I4vzLSBFvFvN4MBOnWpfewUbOcWJs 36VjuLES9/RUShX8RgN6PTybTIE8VZxuHnP3mJ5b5iKE1SSM4HJjzd+XeQPU5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779398520; 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=PDNcaWk5BJjHBPnJnpX/MNaVZNu88QvRwVxu2M+Nplo=; b=u8/sPqk8qFlmPRqkvsdPEbQ45s/MyixKDmOjaIImAxB8pXORpWAqCpz3pFrSZ96LMhl+lo Gvd6h+kteivo9nP8lzT2MLy5r/WQiTlXHmnxEbmHYG6Vcyzdmzqp3Pq8XlZk5chTAA1c5F DosVnOHg/T8H7IGndjgvTU2wibFhPXFC7aUtxoYAY+jJ6bWN3MpM8OX0owcfcku+JUHPgN Zy4OQyVLBZMykRIi6qaFEU7vXdmauDEKP8xmukNP9gtOFu8gIjZLraHVNLhWo/WeEwMw6p lofDa5ke0dOQrZS4vEYUtu4b/xDYBKrfsH+VawnG4N6NLaZUpHt1grI920BHug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM1ZJ4TygzqR4 for ; Thu, 21 May 2026 21:22:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e288 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:22:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: b9ee42d7712b - releng/15.1 - EC2: Don't enable firstboot_pkgs in small flavour List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: b9ee42d7712b809eedf2a70fef9e59139e51ef8c Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:22:00 +0000 Message-Id: <6a0f7778.1e288.52deb1ee@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=b9ee42d7712b809eedf2a70fef9e59139e51ef8c commit b9ee42d7712b809eedf2a70fef9e59139e51ef8c Author: Colin Percival AuthorDate: 2026-05-16 18:58:13 +0000 Commit: Colin Percival CommitDate: 2026-05-21 21:21:13 +0000 EC2: Don't enable firstboot_pkgs in small flavour The EC2 "base" flavour installs the devel/py-awscli package at boot time by default; we don't do this in the "small" flavour, so the default behaviour was to update the FreeBSD-ports repository and then do nothing with it. Turn off firstboot_pkgs by default; if someone is using the "small" flavour of AMIs and wants to install packages at instance launch time, they simply need to add 'firstboot_pkgs_enable="YES"' to /etc/rc.conf (which they must already be editing via user-data, in order to provide the list of packages they want installed). Approved by: re (cperciva) Sponsored by: Amazon MFC after: 3 days MFC to: stable/15 Relnotes: EC2 "small" images now have firstboot_pkgs_enable="NO". (cherry picked from commit 61df4be487cfbfd27b0959e1eb66ef0d8f84562f) (cherry picked from commit a9e71a2e1ade6f0ce4a59f3a1a2153e1c0eb29b0) --- release/tools/ec2-small.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf index f5904d5ea4ba..6da4444bc835 100644 --- a/release/tools/ec2-small.conf +++ b/release/tools/ec2-small.conf @@ -33,7 +33,7 @@ export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} ec2-scripts \ # Services to enable in rc.conf(5). export VM_RC_LIST="${VM_RC_LIST} ec2_configinit ec2_ephemeral_swap \ - ec2_fetchkey ec2_loghostkey firstboot_pkg_upgrade firstboot_pkgs \ + ec2_fetchkey ec2_loghostkey firstboot_pkg_upgrade \ growfs sshd" vm_extra_pre_umount() { From nobody Thu May 21 21:50:03 2026 X-Original-To: dev-commits-src-branches@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 4gM2Bh0P49z6f3PB for ; Thu, 21 May 2026 21:50:04 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM2Bg6hS1z3VGX for ; Thu, 21 May 2026 21:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779400204; 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=Xmvej9dXnKRHsxV8KEuEdbPjoVQQRdN0KIATofGPdmA=; b=kItiC6e5Pm7lLLoulW7Xz7zCNQHdUWR18x0hlXEIlTLGb1GLZpFtALTHtZ/baE5IFMaOU1 0AqxghnldBEtfr1hY/OCVKOIEpyizJZi6Dy+WXY9UmWOQJTjsmjGvv+IX1ju3a66b5MqRo bHj07e9mJPB0oRQw1aownGhS6otMGleK3TQxnXRUvkQOX85g8m/VFpaDlLaBWTMjNsouFf Zw1xj83deS74lgMXtFqwj7JdciScPLE4/P9GOFQ6YBvv3nEH3ifo/JfJTbJpyhYIe53wD9 sOUQckIsgXhvx5icvDIWMI+YGYVT7mB8LG14kBtEYasUaUqutlRg+HYUAJWfbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779400204; a=rsa-sha256; cv=none; b=Rj9rYfFoYaHY1uIK11+/G/nOKUi9UUtjDopoI4j2piJ07GAPBx2vBTPbfwRAz6LeIKS2Nm EY4auh3Erk5zfHlvizjJiSmvF2hsOEgr5yWtwdwYx1aKfDFq8+dwL5pwgR9FYgolKOkLhX IyYGkYraHnb8q8IGITFmhj7aawq4tbiqX2oF+Q3Jx+RXbOzKCoi0o4wS9S2YbXn1cY1eyB gb0SVNm/V7cJtxMZYVgSEBPokstoCpie9ObBKD72u6V9HZCvr5H66lI2hTgy5ZBZhCqxOr /IjI3NC5nd4befXgG9sA04XHSNxk9hiuLHJqjLXfxFSU/Kuhvc08VtMtLgyb6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779400204; 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=Xmvej9dXnKRHsxV8KEuEdbPjoVQQRdN0KIATofGPdmA=; b=E3SeKdh3Kwynh9Wzji9MlzpY1Lm21ZYJlp64WPoOAN6iWoNUc9q2AsejvI7AsJl22xTMae gOeQ2Ibc14ViwR3dcV95jE0YAsTRkYwjo3pEnBvqyXa8PnYLdQB6vi/oUPsnaOqBXWKwDs FdDjBQAPcbs8plpZv7oQC+5edfZH8mglpE/RA2KveFQEXtL2lc5Dl0f2RrNi3ZKxXOWpDb 5kKucfQFhCrBFMk4Pt7hqXc5+FVXejmcqMjOxbakIZztB9SXpTyXW8eYTHz8ntSPV/3skS y9n0IHFw6zM53kBJ5s9Rcz+oU8Dc1FvITTbGT19Oa3I7h4zwDekw4+gihyo/nw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM2Bg6Fb1zrRq for ; Thu, 21 May 2026 21:50:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e2db by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 21:50:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 6146c5962e5c - stable/15 - mtree: Remove unused MANSUBDIRs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6146c5962e5cea6dbcd49f5992cf4e6192a513b9 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 21:50:03 +0000 Message-Id: <6a0f7e0b.1e2db.43ae6585@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=6146c5962e5cea6dbcd49f5992cf4e6192a513b9 commit 6146c5962e5cea6dbcd49f5992cf4e6192a513b9 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-16 16:16:57 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-21 21:49:39 +0000 mtree: Remove unused MANSUBDIRs MFC after: 3 days Fixes: 809504f331fd ("man: Kill off MANSUBDIRs") Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D57029 (cherry picked from commit 1dc1b95163b9e5cf5cbd52c2b979568724746eac) --- ObsoleteFiles.inc | 1 + etc/mtree/BSD.usr.dist | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index ebf2f4e6ceba..c97115393e5d 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -52,6 +52,7 @@ # done # 20260503: Kill off MANSUBDIRs +OLD_DIRS+=usr/share/man/man4/amd64 OLD_FILES+=usr/share/man/man8/amd64/apm.8.gz OLD_FILES+=usr/share/man/man8/amd64/apmconf.8.gz OLD_FILES+=usr/share/man/man8/i386/apmd.8.gz diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist index 2cc041edd2ae..f0e7941258ae 100644 --- a/etc/mtree/BSD.usr.dist +++ b/etc/mtree/BSD.usr.dist @@ -503,8 +503,6 @@ man4 aarch64 .. - amd64 - .. arm .. i386 @@ -519,12 +517,6 @@ man7 .. man8 - amd64 - .. - i386 - .. - powerpc - .. .. man9 .. From nobody Thu May 21 22:00:40 2026 X-Original-To: dev-commits-src-branches@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 4gM2R321Jhz6f4YY for ; Thu, 21 May 2026 22:00:47 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM2R20D65z3bFf for ; Thu, 21 May 2026 22:00:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779400846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=awSFPtRwXj1dw0Lb0dIF9ddOU85Lq9BnMdR+qz+X8Hw=; b=MNc84+sVfSUU1b+8t2jKsQqnB3HGr0MmZbckR/B1a6MfNPR6VsIx26cgfYKtVonc79eVPx sjKt0yLLwNn/5ln6rY+HyHgrU1ze0sMYfmqbDATpOJMbCiDgJ1rztPmOqqCNB3BZti+Bw3 /C0DH+dTPObgYUQWAfy/GVZOXTW6MKUlwKOaNgwQfQWGaG3nFs7VnroZS7dPXBG0naZXjw szhhYBhVZ/K6P2ulIeW162vCnJ0IUWL6tTKbDa4HVNZveL08isOwTdNwfKwmBI+4iVE4v5 yozIo/C3VSQnNfpYF/r2T/f5klySlNjpemgSKKNtf7k6DJ6PuhV3cHvbHiSVHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779400846; a=rsa-sha256; cv=none; b=OzSd0wy1yFyXsJbzM6GE28LQ5+d6h8UhpOiRa7v+WaUBYskUiwuQpb8Z4VIo33l4Ajd4ET MAodLUXqgTsrPHHoXqdZdQhONyVloZKOfa5pJS6O5nAtjRU+PMWT5n1rmFRxt8N93WUgI8 qkAH08STEIJOkmiCt8XFctD4RROEInBwcFlwCgfIX7YtMISCGQTBo5fZk7jblN5MvUEeO2 va5MU0lHIGq5AB5Y9pqkwDNn2Nvx8mCjP7Iqdj3E1tebJXhl58qQYzxJ67WdiGL5VMHN+B 8F90mA5jtQ23wYJd9DKdOOxOy71FL+tdMwDFOTJMkfsXSjK9yR/V2yyg7YxDTw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779400846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=awSFPtRwXj1dw0Lb0dIF9ddOU85Lq9BnMdR+qz+X8Hw=; b=SIeAf49XB1NvCY+8QUlDXxyXKmO4wY/O+7d4NBmtkW/5IJbaOAmjko/YM05k6d+kTuSYi/ tU4z4nVMw/ftjn2lSsRR0zzFQ7bGXTcPoriLDoLlBTedhm5cNAB2CfyySIdEZXPfXtIZ8p TQ//+278En8hrT9rR5zH/x+qq1DsLI2qCYYAqUlx8sUvkrlBPNUAldmSabxF4vmWWkiKgn W6nEjSblmkx6EmWF5FVlfkSW7s4qB9SX5dlsD6lnozS2Rox1L6+dJUYmHAmvQD1P2lY1jA 0F48ilmsqYupUAuPZk3WBxNLShzp9FXNVX9y0R223CQwhRaaY6wAAhCo2hhucQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM2R15Bz4zrWF for ; Thu, 21 May 2026 22:00:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22800 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 22:00:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Colin Percival Subject: git: bc7f35940777 - releng/15.1 - mtree: Remove unused MANSUBDIRs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: bc7f35940777c0b815f3493f0a215a4eb89317b7 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 22:00:40 +0000 Message-Id: <6a0f8088.22800.5f51283b@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=bc7f35940777c0b815f3493f0a215a4eb89317b7 commit bc7f35940777c0b815f3493f0a215a4eb89317b7 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-16 16:16:57 +0000 Commit: Colin Percival CommitDate: 2026-05-21 22:00:23 +0000 mtree: Remove unused MANSUBDIRs Approved by: re (cperciva) MFC after: 3 days Fixes: 809504f331fd ("man: Kill off MANSUBDIRs") Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D57029 (cherry picked from commit 1dc1b95163b9e5cf5cbd52c2b979568724746eac) (cherry picked from commit 6146c5962e5cea6dbcd49f5992cf4e6192a513b9) --- ObsoleteFiles.inc | 1 + etc/mtree/BSD.usr.dist | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index ebf2f4e6ceba..c97115393e5d 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -52,6 +52,7 @@ # done # 20260503: Kill off MANSUBDIRs +OLD_DIRS+=usr/share/man/man4/amd64 OLD_FILES+=usr/share/man/man8/amd64/apm.8.gz OLD_FILES+=usr/share/man/man8/amd64/apmconf.8.gz OLD_FILES+=usr/share/man/man8/i386/apmd.8.gz diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist index 2cc041edd2ae..f0e7941258ae 100644 --- a/etc/mtree/BSD.usr.dist +++ b/etc/mtree/BSD.usr.dist @@ -503,8 +503,6 @@ man4 aarch64 .. - amd64 - .. arm .. i386 @@ -519,12 +517,6 @@ man7 .. man8 - amd64 - .. - i386 - .. - powerpc - .. .. man9 .. From nobody Thu May 21 23:02:02 2026 X-Original-To: dev-commits-src-branches@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 4gM3nl1js2z6fBsl for ; Thu, 21 May 2026 23:02:03 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM3nk40wRz3qLv for ; Thu, 21 May 2026 23:02:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779404522; 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=677Sndz3NEkZpjjdmmfdinczW67hRMIbcNRUZbdfJAQ=; b=Y0Qlm7GxLamrByUTROKdOBxuz7GOAzFZi68wuYA/IIBIQfk+uZxuBYHOUxFPmDrYYVkGIO 01MLj78oPHLSKDn8RWqNMi2FiwTM2D1K7ksyXazh/JfDD4wXEYVD8g+rNC/zF9qcMrhjIT ldl4XM0LdSAVEI4vJW3y5RGJ0VxTpOiNwjx8A1sB0ZZaxelyygvE0IxWVssbwD3F0CUa8+ LFTkAm0YMsUPAdtbLHky7IkioV6RpiwSreB1yfB1u5M83DUhRcYAwboGjoggmx4te7GFEn c5e9vwdeOoUmiTjG1+1NGAqe+S/cWaR4QR58Wov4IHETBMg8v5puijyrCOiZ+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779404522; a=rsa-sha256; cv=none; b=rgyU2AVizEuiTXOrieyTjDZVSFxIOLXgOc1MNDXoiJgOR292ZeYThlJfiCsOuWGcRdGmhd cGzEmFYCZ9x4GXiltAYarTiuUh4EWmkrqGexCvuSdfwpoTYNCq065TmT3toZA5PswCuBYl D+j3WiBJr+yiCuHo2qYz4rBXCxq/C2j46A05UUnjhNJwer74GYKngWvDEgcgdCnc0Y2MpX 2bIRTyz8P10pXSulVeZlrtDQIdC7yeDPw15wRX/Bnfmim0OLNsclea8ihOFmah4z9tJqc2 2K1fd3JokTW8jysOTu7JnulWApepOx/sb2janEj4OPBe5jdJ0iHXS7FmDRXjZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779404522; 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=677Sndz3NEkZpjjdmmfdinczW67hRMIbcNRUZbdfJAQ=; b=sroKRQ3/c75YUw9oTiv4pk9YK+oLGGLPTDQIRb1pa/KUnkROu/2BzFMyzne5iU8H4WLuou YvisOxevnhdHNJj+d0SvaTLdPiY4SUQYsS/X0lieaNBS+pVGKnHZxPI4FnXsFQIrOpKML5 7fTAhgp78L2PoLdk9SnuHmbCm8AICVBLCOEeRhDnFMAsKv448pp5v6QovnchaeOdKO+U5/ 9qJ+eyOEOlk1vDY3KCf5ys0vQLo2TPjLuyOm+aWmY/7Yt+ELXvLO7aC5HzSKWLnY16Ajpc YkGhDT6tcQasxInO7vzmqqwLQSX+RMN5UHocQ3xAv6kH4U1WuNYpKEDR5zKktQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM3nk1zYKzt32 for ; Thu, 21 May 2026 23:02:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 273cf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 21 May 2026 23:02:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: ac8fe88442ab - releng/15.1 - Switch from "quarterly" to "release" pkgs on DVD List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: ac8fe88442ab59a9ce6306974279a611a61ddbc5 Auto-Submitted: auto-generated Date: Thu, 21 May 2026 23:02:02 +0000 Message-Id: <6a0f8eea.273cf.3673d7ac@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=ac8fe88442ab59a9ce6306974279a611a61ddbc5 commit ac8fe88442ab59a9ce6306974279a611a61ddbc5 Author: Colin Percival AuthorDate: 2026-05-21 23:01:50 +0000 Commit: Colin Percival CommitDate: 2026-05-21 23:01:50 +0000 Switch from "quarterly" to "release" pkgs on DVD Approved by: re (implicit) Sponsored by: OpenSats Initiative --- release/pkg_repos/release-dvd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/pkg_repos/release-dvd.conf b/release/pkg_repos/release-dvd.conf index 600c309d5979..d63faaa5fea7 100644 --- a/release/pkg_repos/release-dvd.conf +++ b/release/pkg_repos/release-dvd.conf @@ -1,5 +1,5 @@ release: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly", + url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_1", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", From nobody Fri May 22 00:01:29 2026 X-Original-To: dev-commits-src-branches@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 4gM56K69Crz6fKBS for ; Fri, 22 May 2026 00:01:29 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gM56K53wWz3xcW for ; Fri, 22 May 2026 00:01:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779408089; 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=1xKac3rj69wn4JepkuxS9aLd5qlsORPea8JRwuLten4=; b=QjvbFCN8Dhco06HCEDAKLkrvvwjBXRldZqi4jHlhoUo9/Uh8M3RhTUvW9nEymU49z204wO OBzxaoJaIoQRi+kr0OeTGabLbvquptETmcPk4sU0+1ZLjy5FWzGz8wXDlEKGaWXPtY5vTU AitVGKUwlEM46YYrNcR4eDVkWGucs0qkQkaOGiLpBxem9+iFqHpTQ4e9/024TcB9gWUrcy NEChV460HV7bOnq/akjWT4levoFKGzJarUh5GV08ru+USWLXLwrR3Ucp/oDiAV1JYS8P9Z KWgW59XyjV9ChYiQ1/TfLKHZ/XnC4+hGB8DuQCS24qZrgwdtisBq7CUYfoM7nA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779408089; a=rsa-sha256; cv=none; b=I9YMAYi79XJRxs9zDXQQ+wjkISq0qNsku0uEgSrUClQ/WwwnNKGcbFICM11v5cPOWrGuTn HgG1+cqTZTErKSr4Cz++yO1TfJUB73Zv4B9YC0HpFEb7gRuG30vuMDT7JNt6EWNAmuXXeN bn5JLYrHWmMTrvoJ1zswAJAAcSBLRbMA2yddJXB63vS719dl6N9suXmF666vDqL9If5HCL 7Oz9b5u2B7q6pMKeLS3wCEJb/+eOKFT+iJ4438IS9+Pj7fjK3uz4nz0o1O4A/leFDGIpCh SSrku+5B3CDn2x2Gu9DB1t7KVR4TFwLysCgp4KyFtw+JqWGlrbc2e6I2JL+knQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779408089; 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=1xKac3rj69wn4JepkuxS9aLd5qlsORPea8JRwuLten4=; b=F4kRjaRkTADXRyJInxxgns7EjScIr+IwLLCvJxXCyWwi+hkbzCXrcfrLxYqh70X0orYCxQ P1fJt3Ixc5d3Rem53cFUFpBsFOrPQtdHRTYAmSXcPDSVy2MhY9OwSa8JTXyH9/OHP/iFR6 g5yumouCRtUQBStP7+JERxowbtDO5vSgvnnMnevRLZywIo/s1QHmXtyFsiBaylZDVXSPTB l0M7xYT55d/kiSo/jtTf2n3AkwtNzC6Hdnxq8TxVSDjx0x3nyEXV7StmIbw71gWJLey46f vsnQu9S1DPoI96/KxIXv1LH4ivembb/SyOHoQMglxpEtOgN8Fj8EsCI84BHUSQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gM56K4Xtyzw09 for ; Fri, 22 May 2026 00:01:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 343c4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 22 May 2026 00:01:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 2bf6b6559810 - releng/15.1 - 15.1: Update to RC1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: 2bf6b6559810732be35648e70200509b0562aa08 Auto-Submitted: auto-generated Date: Fri, 22 May 2026 00:01:29 +0000 Message-Id: <6a0f9cd9.343c4.1bf43f02@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=2bf6b6559810732be35648e70200509b0562aa08 commit 2bf6b6559810732be35648e70200509b0562aa08 Author: Colin Percival AuthorDate: 2026-05-22 00:00:00 +0000 Commit: Colin Percival CommitDate: 2026-05-22 00:00:00 +0000 15.1: Update to RC1 Approved by: re (implicit) Sponsored by: OpenSats Initiative --- sys/conf/newvers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 7dfabad1386b..2fd1f6f341bc 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -51,7 +51,7 @@ TYPE="FreeBSD" REVISION="15.1" -BRANCH="BETA3-p1" +BRANCH="RC1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri May 22 09:37:26 2026 X-Original-To: dev-commits-src-branches@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 4gMKtt6Ym6z6fHxm for ; Fri, 22 May 2026 09:37:26 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMKtt4Yfrz3fK9 for ; Fri, 22 May 2026 09:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779442646; 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=K9hXATscIWzg+QS5tJULyJcUOkKxePwgCb2rueUPGTI=; b=fhv0+i+uIAA5/JIUiEN2yOJnxddUI3m8OjfYmgkQWHurBpSLeW18bE/O85Kz08xQp8Ze79 9VTqgNRN/CXYCpAHCXufQdgKtNalhIM+/1WrVIoPBor5sYHlU4xvM+lWZ0CgJarOGPcfQv I7zk/O8nsFyIKyLsfr3xkk7+N3zuMZ5wIFUDjsfSLz9n3slEHfLcnLhY3TjRQYrLoVJMg/ PE+EQJKTI+tVsTgQA1LRpGyRuYOAq0Tk4rdVjJhnaNZ1jbv7luweQv6c9YuIxMvTYHp0qF aI7Q3IYTcpW1+vOp7z7o5M43nE4wmVvTPk0o/eWRyHD/7OckyGM95PHnS5MRcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779442646; a=rsa-sha256; cv=none; b=QNU8bwz1isPqxKgdNisC6E3931kFJHln5yJmoozaeXaVMfL3WYsf60qjJoDubJ2WD+LIaK NDYkJ90vja+H/laV+6ukf1wdT4djxV1r9HJbOxnAm+XbuUElqVPr9NIWfwSV6fV/ETJ2MG pIQ5WuI/pma5vJQZPkOyP9Ew7hqQTyJYpj0dRQDz2UuqR9f3DXmqI7gxeFpOnzA7aX+z/m 7QkTgmZ8f/3x4sIXOvnt32+W9zO2tP2sLQbLKn6WXjKBxs5vmNiC8oCKcyXEEs0PDjy8ua TUtTOxxb9DPVrqnMBxCpYup91S38t+LHiL1FU4ZuN2gETfFMbk1naUZZ8UTe5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779442646; 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=K9hXATscIWzg+QS5tJULyJcUOkKxePwgCb2rueUPGTI=; b=XQNHRVddb6JhnZLfBviAtW5hskUcS5enMh0pDPp6/xsD6m0h+609iI/X345JcHup9OFrsB U07KaxMrfQgJ4f59Qtrld53/8yq4TJ0HcFDJyLPJgmdkevG5HBO6v7Yw5X6aS2nOVtisQJ HiYCWv55rT2AL4hA8h8VTXhldb7AXPRqgpNive7O7Q2VWxp1i3weL+79+oPfEdSsZUfUGY AhdxjEkHinM8YRNiFMpryhnIlF6MK9gDF+7DQOsgwtQDRkxVpRI4k6lZy8iRWlMXDi5G+Y 1OoYU5aeva5sWCVOEBxy+K1WlV5myVAJoGwvsxQpejt39naIjq5gXJnXBguYrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMKtt3mVMzMK for ; Fri, 22 May 2026 09:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19571 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 22 May 2026 09:37:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 9d28d4daff8d - stable/15 - sound: Improve hw.snd.compat_linux_mmap List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9d28d4daff8df7e38cd72c7113ec56253e7d57a7 Auto-Submitted: auto-generated Date: Fri, 22 May 2026 09:37:26 +0000 Message-Id: <6a1023d6.19571.e6b39d2@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=9d28d4daff8df7e38cd72c7113ec56253e7d57a7 commit 9d28d4daff8df7e38cd72c7113ec56253e7d57a7 Author: Christos Margiolis AuthorDate: 2026-05-15 14:07:59 +0000 Commit: Christos Margiolis CommitDate: 2026-05-22 09:37:03 +0000 sound: Improve hw.snd.compat_linux_mmap - Reject PROT_EXEC in all cases when Linux support is not compiled in. - Define sysctl only when Linux support is compiled in. - Document better. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: emaste Pull Request: https://ron-dev.freebsd.org/FreeBSD/src/pulls/29 (cherry picked from commit b9c10eeb380b3ba629421062af8658e79a9171cd) --- share/man/man4/pcm.4 | 26 +++++++++++++++++--------- sys/dev/sound/pcm/dsp.c | 13 +++++-------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/share/man/man4/pcm.4 b/share/man/man4/pcm.4 index 518c37b54f1d..8a92cefa3549 100644 --- a/share/man/man4/pcm.4 +++ b/share/man/man4/pcm.4 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 15, 2025 +.Dd May 15, 2026 .Dt SOUND 4 .Os .Sh NAME @@ -254,21 +254,29 @@ are global settings and are device specific. .Bl -tag -width indent .It Va hw.snd.compat_linux_mmap -Linux +This +.Xr sysctl 8 +variable is available only when Linux application support is compiled into the +kernel, and affects Linux binaries only. +It is a hack to get around the fact that, for i386 emulation, +.Xr linux 4 +historically set PROT_EXEC automatically when PROT_READ or PROT_WRITE was set +during an .Xr mmap 2 -compatibility. +call, which +.Fx +does not. +.Pp The following values are supported (default is 0): .Bl -tag -width 2n .It -1 -Force disabling/denying PROT_EXEC +Force-disable PROT_EXEC .Xr mmap 2 -requests. +requests, even for Linux applications. .It 0 -Auto detect proc/ABI type, allow +Allow PROT_EXEC .Xr mmap 2 -for Linux applications, and deny for everything else. -.It 1 -Always allow PROT_EXEC page mappings. +requests for Linux applications only. .El .It Va hw.snd.default_auto Automatically assign the default sound unit. diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 797bfba81023..52bf2d66114a 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -54,10 +54,12 @@ struct dsp_cdevpriv { struct pcm_channel *wrch; }; +#ifdef SV_ABI_LINUX static int dsp_mmap_allow_prot_exec = 0; SYSCTL_INT(_hw_snd, OID_AUTO, compat_linux_mmap, CTLFLAG_RWTUN, &dsp_mmap_allow_prot_exec, 0, - "linux mmap compatibility (-1=force disable 0=auto 1=force enable)"); + "linux mmap compatibility (-1=force-disable 0=auto)"); +#endif static int dsp_basename_clone = 1; SYSCTL_INT(_hw_snd, OID_AUTO, basename_clone, CTLFLAG_RWTUN, @@ -1922,20 +1924,15 @@ dsp_mmap_single(struct cdev *i_dev, vm_ooffset_t *offset, struct pcm_channel *wrch, *rdch, *c; int err; +#ifdef SV_ABI_LINUX /* - * Reject PROT_EXEC by default. It just doesn't makes sense. - * Unfortunately, we have to give up this one due to linux_mmap - * changes. - * * https://lists.freebsd.org/pipermail/freebsd-emulation/2007-June/003698.html - * */ -#ifdef SV_ABI_LINUX if ((nprot & PROT_EXEC) && (dsp_mmap_allow_prot_exec < 0 || (dsp_mmap_allow_prot_exec == 0 && SV_CURPROC_ABI() != SV_ABI_LINUX))) #else - if ((nprot & PROT_EXEC) && dsp_mmap_allow_prot_exec < 1) + if (nprot & PROT_EXEC) #endif return (EINVAL); From nobody Fri May 22 18:08:43 2026 X-Original-To: dev-commits-src-branches@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 4gMYDr1jZyz6fMcV for ; Fri, 22 May 2026 18:08:44 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMYDq6B0Dz3CX1 for ; Fri, 22 May 2026 18:08:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779473323; 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=4b1moQ6MPAHKjUw20tMsew4IOrtj+Fxj3nRV3L9o9M4=; b=U+3F2rg2sYX4R3TL/seshBaTGEEv+T59+I3sOW7NY29vaY23KAqr76swB8RoRBncO9x/ey wnxD8IYruRMwqHcVZBV7ip+jqX0Y38rZQNlcLHHYsSahNCaE5Ep/Zy4rfIkXu2SCq62WZt fRauDzmNAf6Ls9TDT5NnFNAnyC6YvehsVwkuETxC0SBKLMIMbOLdYY/a4N57QwVrEM1t80 hpYEMIhGwRD5A8QDzJqGn29ecQo9gZaeeylcSwDRRCmpgzew42tnPU2TR8UzxN+StZSS2M 7Nge6Pa7fBETXaVFQ5w0nIGumTijzpTo6soWMKDWlwGyhhChOkz/gu50pX6uTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779473323; a=rsa-sha256; cv=none; b=osbLagVcTHSBGFMk4nORSWPlmB6thQWXfY0Q+H38NEJic3n9RS8JaX06muqPFGBZTiQfAE Dbxo2ojO6JI25MXZMPYvLbJnDyI32R0K3m3hwT023siOlTNJ91K5A92VSUyrr1tATxqQa9 pnvBWxvZFd86gbwkH38uUaCom0nu4oRfYa7zBodZXic7UicsMfVOic61tMzj/4oCpMEGLN 2ppp+VZVQa6IlkawAwWLSzbt1kAzoXMdIB5NEH6/WCUMptbyLlbsRB2jHRJ8jFfjuxQmX4 qnyefimxIbBLU442G1kAXiZNSnFWRRKjvU04EsKsupVf5r6ZLKGx5OFKbVs4/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779473323; 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=4b1moQ6MPAHKjUw20tMsew4IOrtj+Fxj3nRV3L9o9M4=; b=afVMpvid0Q7Fg4SCxYX0FFcsjXHzxanZsPTXiAmGCqJvJV7+G50WG0iSq01ARQ+tuimX6K 8VT7RB3teeudODWjlw2OuhcH/zrAOnN03rBpsc5XSszku4vzlmgmmbExlzjI8QoJw+edrA ZK+Om1gS2bJXhvQxmWtsOyYE/i3bPcsFaRvZCA8YjL5tAAAh5YadCsRjzjQL//PADLQyXg 46baNejv9LUbNEME2jQzhF/lxLm/1qf0nRVNsyntEc65kJQe5PdzX/7L+pKgWOMnHmVHRa ujEHtJ1oX28oa9mkgskK74UXmGutzJJzUQYLqeMnfcO3TqJzVb9Y7JqlzvIgwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMYDq5nWLzY1q for ; Fri, 22 May 2026 18:08:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 394b8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 22 May 2026 18:08:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 9b21cf7f3efc - stable/15 - style.mdoc: Explain why not to abuse Nm List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9b21cf7f3efc3d0f985f283cc2fc983124a2e80c Auto-Submitted: auto-generated Date: Fri, 22 May 2026 18:08:43 +0000 Message-Id: <6a109bab.394b8.7c0329a9@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=9b21cf7f3efc3d0f985f283cc2fc983124a2e80c commit 9b21cf7f3efc3d0f985f283cc2fc983124a2e80c Author: Alexander Ziaee AuthorDate: 2026-05-15 12:49:20 +0000 Commit: Alexander Ziaee CommitDate: 2026-05-22 18:07:48 +0000 style.mdoc: Explain why not to abuse Nm MFC after: 3 days Reviewed by: 0mp Differential Revision: https://reviews.freebsd.org/D55299 (cherry picked from commit bcd50fe5c3c6e70c710e13378999814e9df43d3c) --- share/man/man5/style.mdoc.5 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/share/man/man5/style.mdoc.5 b/share/man/man5/style.mdoc.5 index 64e2291d1c75..c4c2aa7b3695 100644 --- a/share/man/man5/style.mdoc.5 +++ b/share/man/man5/style.mdoc.5 @@ -41,6 +41,12 @@ which renders as: Then run .Ql Nm make Cm install Cm clean . .Ed +.Pp +This pollutes the +.Xr whatis 1 +database, causing +.Ql whatis clean +to incorrectly show the page it was written in. .El .Ss Copyright Header Refer to From nobody Fri May 22 18:08:44 2026 X-Original-To: dev-commits-src-branches@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 4gMYDs1kTQz6fMX1 for ; Fri, 22 May 2026 18:08:45 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMYDr6mQBz3CZQ for ; Fri, 22 May 2026 18:08:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779473324; 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=O6b2u93qC9JSSHwbH27sACX7K/yB4KiCWbYjEtKwkfc=; b=nEOOAJeapRCy5e10RMJVK9hSBQoNYqzZEg2xnx6xFIif31ITZ1QltAULhVSWv9fT1458GN ReJlC3b2jJJ/JaWyGJMd/rn+uG+yoTRz0Lix8vNWhHZ8gWPzKC/wDiCIXDZ8gCXwYGtsxV 1+dPhcfwlZysDaAndtktWw8LiussVssFGxQ3grE3zBJ2nVwdxX5mwXclL/lAc0Q5VAPSCm 5+bAY41/dStVbETREOiJ9v71jnqveUMysHhdbtConWpSanl3HlQeJ2xscwcubAAMk1M7D6 X8reeb73FH99a2b3TRIcT8MHxHIbB8DUlm+PLL/Poiec6ykJMPuU1pDSGX9oGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779473324; a=rsa-sha256; cv=none; b=SVCY9pVUjVhoev8szyH1JXanb620znyx/XMgcG7P+unYlMEhDivKH47J5DVOJAlhakKdxz CNQpBIEEDRGL/3RtjfCpGa6UEs6nzvgR2n70B5bMEIiAxlI058p0Z1iPQWFOSArIDdqQGX vjh5jo6WJ40IJI0hM2A9XcfgP1L/IuePH2QOw65MQwRksi2H0MzpDBxUjImMM6FfFqlKLY KEYo61HEkVyOL+mq9m8l92VUX3sq2iJLLHKN9Qx46vGjbUFxUxavbw4m3z4NQK5gXxH4eL ovLO6d/S/a1fCJ1kPB/qzda+IrNZIOqY4UVu6OGoHIn/Rjkmr+dLKsQoaAxUwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779473324; 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=O6b2u93qC9JSSHwbH27sACX7K/yB4KiCWbYjEtKwkfc=; b=kMR8O0XiCK29GsBEA84niUXf7x/Rc20L+L9OX9bv1hER9/BYm/0qNVi9KqfL65PK01prF+ Nqhy54X7BXjgr17wu8YPFiVMBDJ/fTBfQ1eCX7pbIoeL8KRgh0gzm1NgVMlIm7CZcWmmJR 9Rahbhh2jnsR81zmksY0FLa8lP+mShN5DllwDP7aqdDDMrTE5iZ2pcDoUn6AXhjxCE4oWP 4319Ica7tg5j4hK1uoU6U0C+SvzlfY+FfAjGTxVQA2lmZIrZfhycfYhLzZQdvJrH/bK4AR q+WLWrco3U37Ig3M5yTm/+yf3/pzfyRb0/YztrdX6xXGY7YFA3sDJByEQJsj5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMYDr6JvqzY1Y for ; Fri, 22 May 2026 18:08:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39beb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 22 May 2026 18:08:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: af7e160a97ef - stable/15 - crypto driver manuals: Add crypto to search index List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: af7e160a97effcdfd8f1d0de764434960a1abf96 Auto-Submitted: auto-generated Date: Fri, 22 May 2026 18:08:44 +0000 Message-Id: <6a109bac.39beb.372797f@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=af7e160a97effcdfd8f1d0de764434960a1abf96 commit af7e160a97effcdfd8f1d0de764434960a1abf96 Author: Alexander Ziaee AuthorDate: 2026-05-20 13:25:21 +0000 Commit: Alexander Ziaee CommitDate: 2026-05-22 18:08:11 +0000 crypto driver manuals: Add crypto to search index While here, tag spdx and sync the drivers in crypto(4)/SEE ALSO. MFC after: 2 days (added back hifn) Differential Revision: https://reviews.freebsd.org/D57060 (cherry picked from commit 9096a8b1c89c7e98df0d5a27cf1a5f4c6e8ddf19) --- share/man/man4/aesni.4 | 7 +++++-- share/man/man4/crypto.4 | 11 ++++++++++- share/man/man4/padlock.4 | 7 +++++-- share/man/man4/qat.4 | 6 +++--- share/man/man4/qat_c2xxx.4 | 8 +++++--- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/share/man/man4/aesni.4 b/share/man/man4/aesni.4 index fbc0c0e59442..6a27e2dedf9a 100644 --- a/share/man/man4/aesni.4 +++ b/share/man/man4/aesni.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2010 Konstantin Belousov .\" All rights reserved. .\" @@ -22,12 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 29, 2020 +.Dd May 17, 2026 .Dt AESNI 4 .Os .Sh NAME .Nm aesni -.Nd "driver for the AES and SHA accelerator on x86 CPUs" +.Nd x86 CPU AES and SHA crypto accelerator driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your diff --git a/share/man/man4/crypto.4 b/share/man/man4/crypto.4 index b1423752718e..d18c45661282 100644 --- a/share/man/man4/crypto.4 +++ b/share/man/man4/crypto.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" $NetBSD: crypto.4,v 1.24 2014/01/27 21:23:59 pgoyette Exp $ .\" .\" Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -61,7 +64,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 6, 2021 +.Dd May 17, 2026 .Dt CRYPTO 4 .Os .Sh NAME @@ -346,10 +349,16 @@ Destroys the session identified by .El .Sh SEE ALSO .Xr aesni 4 , +.Xr armv8crypto 4 , +.Xr ccr 4 , +.Xr glxsb 4 , .Xr hifn 4 , .Xr ipsec 4 , .Xr padlock 4 , +.Xr qat 4 , +.Xr qat_c2xxx 4 , .Xr safe 4 , +.Xr safexcel 4 , .Xr crypto 7 , .Xr geli 8 , .Xr crypto 9 diff --git a/share/man/man4/padlock.4 b/share/man/man4/padlock.4 index cf362e58972e..8f4a20b36020 100644 --- a/share/man/man4/padlock.4 +++ b/share/man/man4/padlock.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2005 Christian Brueffer .\" All rights reserved. .\" @@ -22,12 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 29, 2020 +.Dd May 17, 2026 .Dt PADLOCK 4 .Os .Sh NAME .Nm padlock -.Nd "driver for the cryptographic functions and RNG in VIA C3, C7 and Eden processors" +.Nd VIA C3, C7 and Eden CPU crypto driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your diff --git a/share/man/man4/qat.4 b/share/man/man4/qat.4 index 613091df2e7e..31ba61cd39af 100644 --- a/share/man/man4/qat.4 +++ b/share/man/man4/qat.4 @@ -1,11 +1,11 @@ .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright(c) 2007-2025 Intel Corporation -.Dd June 2, 2025 +.Dd May 17, 2026 .Dt QAT 4 .Os .Sh NAME .Nm qat -.Nd Intel QuickAssist Technology driver +.Nd Intel QuickAssist Technology compression and crypto driver .Sh SYNOPSIS To load the driver call: .Pp @@ -68,7 +68,7 @@ Intel (R) Atom P5300 processor product family .It Intel (R) QAT 4xxx Series .El -.Sh SYSCTL_VARIABLES +.Sh SYSCTL VARIABLES The following .Xr sysctl 8 variables may be used to reconfigure the diff --git a/share/man/man4/qat_c2xxx.4 b/share/man/man4/qat_c2xxx.4 index aad0c043e548..ce0b810fe11e 100644 --- a/share/man/man4/qat_c2xxx.4 +++ b/share/man/man4/qat_c2xxx.4 @@ -1,4 +1,6 @@ -.\"- +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2020 Rubicon Communications, LLC (Netgate) .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,12 +24,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 21, 2022 +.Dd May 17, 2026 .Dt QAT_C2XXX 4 .Os .Sh NAME .Nm qat_c2xxx -.Nd Intel QuickAssist Technology (QAT) driver for Atom C2000 chipsets +.Nd Intel QuickAssist Technology crypto driver for Atom C2000 .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your From nobody Sat May 23 07:13:45 2026 X-Original-To: dev-commits-src-branches@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 4gMtfd2Cq6z6fg7x for ; Sat, 23 May 2026 07:13:45 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfd1Hklz3sr1 for ; Sat, 23 May 2026 07:13:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520425; 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=TUxRXVGkvQG5++7AnEmdew0ccALvgIFZV6ZukWh5Hz8=; b=xFEuxVP1xJybnrPu8XO1n8qN0LzwlZkvYV7k2aSQ9EPLNfcEnypga4i6Bs+t4FzHMv2fYG e6iAYPeTTylXI4ZvuV1ts5cQy+AENHXdn3+kaY0aCMnFBE6LmLR1TMlI3JlOMwOBxQlFkt prgpcCINdU6pEsBrWBxXpOgBO9HBnM7Rz6PLtyKFzBeK4BSFn1MREG34gv0+35gL48MDdS Aj37RYZ2FPQMLIZAJdW4/NKOOnUHtBr+ezXaPbgCBSAReVjh+DOpQrL7ZgEyeBCHDxpaAq lZOurQljYSxNpuetvMghV0KycHfPGQwyswTKViO78wX7ykySV3uEA80c0z6GSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520425; a=rsa-sha256; cv=none; b=lTafo2Up4wVh2m92ePZl9UCt1Ps72WNysqBmCweexo04kw4avXeOZWi0iY5il9/cjeVtM9 CX72lb1WiZSEfIC1zgbvZMGQoeoOquV2Bdzue+DgDldggmEmyUbR/bLyfmy7I7MBGbhgk1 udW+pO5636YdjVucWB+hjQOdfrkExIoUn8Y2jxjuFg6ztpZufUgaO9cF7zp1TIw0mviq0K ONNl30pTQE2Zm5PCCyCF5sgEiHb8v8w8n+cPV6GolJsKEFZOTHAi74G3HuBqJEWfv2Dqu4 8uexxnB42yadH38fLLB/pI/7aGgQhDvwyi1SpTZdqZbaSUo/+s6Qoq5WV84QQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520425; 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=TUxRXVGkvQG5++7AnEmdew0ccALvgIFZV6ZukWh5Hz8=; b=UeeNKvo7Zpmb04OqL4QK2Hud6vdfT4dYnlshjOrns4MqXbN4cf/NguC2pqAnovcTI1jwFs 4f3UP7T3X520klb4Rczb9q4d3uhPw8B3N67cqtkernVSKbTbO/JmUToUB/plZQC36slDXf eo1jvf3ESTRXQ6mgvfAgEUutUUKJX+x5+O3Xsf3fOZYl5BBMkx9zUbod8xWawWsENhfalw +izWtMF77Vt/Wwazjp3XoQnyuLjfZIeVwZuPreZ9Ga5yIbPBEY0rkzjXpxybLJFpdCG9Wq eYzaBLNcGv9Ngku1r0mM6nqti3mW0dv0HidAub7zP6QAgYAw3I9XBCqOb319XQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfd0llszxVL for ; Sat, 23 May 2026 07:13:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e102 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a0fb45e3de55 - stable/15 - kern_umtx.c: remove dead code List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: a0fb45e3de55f3d0c08f463946938867ce608e98 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:45 +0000 Message-Id: <6a1153a9.3e102.7e0ac01e@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a0fb45e3de55f3d0c08f463946938867ce608e98 commit a0fb45e3de55f3d0c08f463946938867ce608e98 Author: Konstantin Belousov AuthorDate: 2026-05-20 00:49:09 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 kern_umtx.c: remove dead code (cherry picked from commit d9c31658df8492a5666e799c2b267c425cb8f468) --- sys/kern/kern_umtx.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 905ebd4f98ac..d9798fb2adb6 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4624,17 +4624,12 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if ((flags & UMTX_SHM_DESTROY) != 0) { umtx_shm_unref_reg(reg, true); } else { -#if 0 -#ifdef MAC - error = mac_posixshm_check_open(td->td_ucred, - reg->ushm_obj, FFLAGS(O_RDWR)); - if (error == 0) -#endif - error = shm_access(reg->ushm_obj, td->td_ucred, - FFLAGS(O_RDWR)); - if (error == 0) -#endif - error = falloc_caps(td, &fp, &fd, O_CLOEXEC, NULL); + /* + * The current vmspace has the mapping, so it can be + * converted into shm filedescriptor for current + * thread. + */ + error = falloc_caps(td, &fp, &fd, O_CLOEXEC, NULL); if (error == 0) { shm_hold(reg->ushm_obj); finit(fp, FFLAGS(O_RDWR), DTYPE_SHM, reg->ushm_obj, From nobody Sat May 23 07:13:46 2026 X-Original-To: dev-commits-src-branches@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 4gMtff64fGz6fgLv for ; Sat, 23 May 2026 07:13:46 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtff2Vs3z3sx2 for ; Sat, 23 May 2026 07:13:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520426; 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=LIO1LVagn6zWhu1p62bmQpPGLmv8xX/ZfB/M2ruIgys=; b=JzVDgseHyNvklY2BkdISOQpfZcWwHu3drkypXzhEh5ZKfMC1eFKkkJYnis6cL1DWowA/7L SJYoLiJeGf965MDfLGSnef56ba9EnmhUWRSJLIxzSFMSwM7Q6Vc29ePKzPgE9mGO0Sbc1+ rO7LTCWvKgCzPLC+2w9s8przeIjlaTG//ywMOqJY9EvCsMf00NUgmP1OVbAuE4S0dLsze7 t2/YOx+URJh9gvHR2AJp1tP62gNidkJe/yUH6Bk+HDMLMCczR48qaH3gc+foKMeMY1RCP6 bVtGV/qjz+we8AHUe0E8KZ4v38Km5LCmbxwUQM7bYUUiLz4A0RM1d8vGBS1VRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520426; a=rsa-sha256; cv=none; b=ip8w3bji9K4AYgpYi5/8acH+o5dXd+NOZ4tPV3s7igiecwDcpmvDjCFNvY8wrqgRc0SDew kkAHnpAqUZ4yt3arMQ+2XyUUgzw1vPLDWLK3MJ2RLFglQktqbqhKrO1k8+j4mP1dafKNNM XOSquciA6TXsMKEziS4Qb2WOo0HqEF76QINZe2jMyvCbJNVp12xgSD0d95LQ4DwO9g2MJP xQY5xcFpNKpMBLGyKpDsmotoZJG9pTOsu4vTLtiyZ9ApWIZb3KIWDMcE7bdKj0R2Qhp9Jf eAAGM0nVDvBbXtqG6VSNlOKE4v+uZ12jYE9IpuxNI+i+ygkiBOK2I5gRdPRGrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520426; 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=LIO1LVagn6zWhu1p62bmQpPGLmv8xX/ZfB/M2ruIgys=; b=tasMJhxzWXY/FPARHnLC+tJy02z9THdBzQTdK7tcp+9RfzzrGacSpnvcFK3iNXHZe8wxO5 /o3o0kZn477OZxmlkyXTZcqZPlYpVvMbCB6UGZTC0K3NFTIz3wLpCQy15Gg3XxlMWicJuZ EAg/sPDkBDWLzwxnFfsTyuZIgzrx7MixA9fI4QXTq4qiYbX4rT89xIykrpRCZDrixqNp5+ PYMZuO7bKa9F3DWArFfYRxTM50JLKxD3nCgU7hVZiuoThxq+OBDjMAybWNEjWU95iZWcVr ddxIJqYHJ9zUMKJvCxBt4ebM1tnxNapemsTIgocx5U5ECkZDE5UQLPskkbWeaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtff1XKnzxVP for ; Sat, 23 May 2026 07:13:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d7bc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 65e0c7fd3eb6 - stable/15 - libc: add freadlink(3) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 65e0c7fd3eb66623c2b6df3825bf6fa8dfb16807 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:46 +0000 Message-Id: <6a1153aa.3d7bc.3670e00c@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=65e0c7fd3eb66623c2b6df3825bf6fa8dfb16807 commit 65e0c7fd3eb66623c2b6df3825bf6fa8dfb16807 Author: Konstantin Belousov AuthorDate: 2026-04-12 08:56:26 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 libc: add freadlink(3) (cherry picked from commit a2e0822543e93a8d815acd2d1c3d51ef73d6e262) --- include/unistd.h | 1 + lib/libc/gen/Makefile.inc | 1 + lib/libc/gen/Symbol.map | 1 + lib/libc/gen/freadlink.c | 16 ++++++++++++++++ 4 files changed, 19 insertions(+) diff --git a/include/unistd.h b/include/unistd.h index 797eac4c364d..290bcce6a0b3 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -518,6 +518,7 @@ int execvpe(const char *, char * const *, char * const *); int feature_present(const char *); int fchroot(int); char *fflagstostr(u_long); +ssize_t freadlink(int fd, char *buf, size_t bufsize); int getdomainname(char *, int); int getentropy(void *, size_t); int getgrouplist(const char *, gid_t, gid_t *, int *); diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc index c31f789fd1d1..18a68902f50a 100644 --- a/lib/libc/gen/Makefile.inc +++ b/lib/libc/gen/Makefile.inc @@ -56,6 +56,7 @@ SRCS+= \ fmtmsg.c \ fnmatch.c \ fpclassify.c \ + freadlink.c \ frexp.c \ fstab.c \ ftok.c \ diff --git a/lib/libc/gen/Symbol.map b/lib/libc/gen/Symbol.map index 60f34b3a1923..4d22251f7ec5 100644 --- a/lib/libc/gen/Symbol.map +++ b/lib/libc/gen/Symbol.map @@ -475,6 +475,7 @@ FBSD_1.8 { }; FBSD_1.9 { + freadlink; posix_spawn_file_actions_addchdir; posix_spawn_file_actions_addfchdir; posix_spawnattr_getexecfd_np; diff --git a/lib/libc/gen/freadlink.c b/lib/libc/gen/freadlink.c new file mode 100644 index 000000000000..e1ed7aba6c06 --- /dev/null +++ b/lib/libc/gen/freadlink.c @@ -0,0 +1,16 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright 2026 The FreeBSD Foundation + * + * This software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + */ + +#include + +ssize_t +freadlink(int fd, char *buf, size_t bufsize) +{ + return (readlinkat(fd, "", buf, bufsize)); +} From nobody Sat May 23 07:13:47 2026 X-Original-To: dev-commits-src-branches@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 4gMtfg5W9nz6fg80 for ; Sat, 23 May 2026 07:13:47 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfg2GJdz3tBg for ; Sat, 23 May 2026 07:13:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520427; 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=MpWuPzjbLQ+YHv1nmdXE1m9jGg8TOBCT1e9A2upqrNY=; b=DILXPan9OvwteANw2JXNlooMOpHtk3ksEeYHA7ZArOIkOvCik6U68YTUp/J6F2lmb1YAZc jnPEzsPn733w5crCcaiQsN2i8yLMIw973kQ3d6F/Oq7flgCQDCJhwGR95vS/syHGJKWlTm isMdoYHtf6AWhhUwga5zzjqP6EDD+aG6iBXI3nBVuSvRIbco1nqrABxQnrq53ql5Tby3g7 00bbzXYyp45rrfJkOOo0TNjesj/UiB83sO0lHNnSQLfwRr5WhTldpjlEbZ/sWaeCfjwDQc losI5KqoAmzVG7OwzLTuOXuISpVS6ZIpZJH/uUfftBluzezFDXhuJReLxmW+dw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520427; a=rsa-sha256; cv=none; b=Yzzvw34FffJZzoLyIAlM+19LkHbEYvO3Sg918akEIfOwU7vB8DBi0YljgZNy7CnBDKYGZM PPADaRlJFk3xyynxI6YKUgGHWsm2uvWvTr/DJlQuPuF1lNyTnfq3wWeQrEHkR58jB7A9rE Z0pa1PUHEBvWsFnAJUU6DLfo7QQzznK4Afbgr5Cl/YpjdMe/PKd/11R3Qw7z+RDZqGvVFH 6MKCcViy8iCI7TzEQ6tMlY1KZ/cW7nBBpKkC1EPKQaf5HzhCglHF/4V3BaTN6sVPb/x6MF TWMviLLMSlen35OT+RiXdhCtnswgSPmyol0bkZufHd1ASlMqGZZPElDcGm8B8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520427; 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=MpWuPzjbLQ+YHv1nmdXE1m9jGg8TOBCT1e9A2upqrNY=; b=K9hVpLyfpsvnP9jIMH0HwaTMJ7bNK2i0naWV6Nk+nEt0SdL09EhLcqfGvOn63N58ZbVSGe sqxPGLlz+vz1NiHdAkolA2Qc/nUo0JQw+mcM7wXiLngcf9T6VwVC7/+tBf6Z2x9VjGowBZ mipXV/Px+2aS2vlz8xvvmhSt6vQQa1dBFDBlzclwRdS4m2CSzvpq02ziFA7KR+lkQEjVsU IuD74RnJjDJ6Wu1N2aFJoE1ByImXBF1Hs9HmC2Qkl9644UgLiOCnxr8m4Kkurjy50/RCAE eGsgBMwLasjIOeh70vH8KYY23d6jlFPWzMcz73JLDg5sK9Tk/qxa0ncDaaDrBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfg1qWKzxG2 for ; Sat, 23 May 2026 07:13:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bce5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c1d05b8292ab - stable/15 - Add O_SYMLINK emulation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: c1d05b8292ab5bcd02ddbf6d334eb62a568f8392 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:47 +0000 Message-Id: <6a1153ab.3bce5.190e1993@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c1d05b8292ab5bcd02ddbf6d334eb62a568f8392 commit c1d05b8292ab5bcd02ddbf6d334eb62a568f8392 Author: Konstantin Belousov AuthorDate: 2026-04-20 20:02:13 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 Add O_SYMLINK emulation (cherry picked from commit 428da7d65b1c41c81a8786f66c1ce2f4242ac8bb) --- sys/sys/fcntl.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index 0b13241f0ee3..80cbca4ea753 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -142,6 +142,13 @@ typedef __pid_t pid_t; #define O_EMPTY_PATH 0x02000000 #define O_NAMEDATTR 0x04000000 /* NFSv4 named attributes */ #define O_XATTR O_NAMEDATTR /* Solaris compatibility */ + +/* + * Emulate MacOSX compatibility flag without consuming a flags bit. + * It is not fully correct since reads over regular files opened with + * this definition fail. + */ +#define O_SYMLINK (O_PATH | O_NOFOLLOW) #endif #if __POSIX_VISIBLE >= 202405 From nobody Sat May 23 07:13:48 2026 X-Original-To: dev-commits-src-branches@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 4gMtfh56ZRz6fgWC for ; Sat, 23 May 2026 07:13:48 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfh3MNFz3syw for ; Sat, 23 May 2026 07:13:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520428; 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=VyoN5MBVJxiCSwDnUu1VG9LUZHHNDaiTzD07XPD8COU=; b=XMZEIQ0TuYIUMEprkWZp6ZSROmVQmZkNhuS1RlMhTmUmS16LMNysyXtk/ygBu+tWvCrQqR B6FeqQ3HDd7KHzQjt05nvbaEm8EH88TQghQYHvqOyCmnOZ8LisU+hueW+bT5Gk35+wZXyz YyaTQt72I+qmHpxWNxNUgYlk/WhRSrpiN87WcH9r/jm339EHHgxw8OxYkws33WRUEB5Iqt 3kEJbsC7GPqNxK5yKF1ZWUgfheTUJefi4lpb5K3mCa4AKcZCiVeJmjvMg7t33WMWP/lQNT 7F3/i9FhO2KlAlfXVFagKa9fRXBtfuTFhVas4ZjZ4SZ0IodJfFwaFhVQpDD2vQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520428; a=rsa-sha256; cv=none; b=GFj8xI2qlVhij0Mhb9Xzunu8k/XYBix1b/JpDB9QVMCP68q5FqNBLuXRPE6/fGwbQaJNbY vWFcZ6OmdjPIJ5WxQuPTy8Pkg9DAjgBxVI1hjF+5QsT8q1+LMfL1vXbXrVHfaudvsxO6Cm qOeCO/2GrPMIYk7KyO1uw9gnmZTwHYe8j1Ax9R/3JcLomNL0T84S59VCQvU7FTMD9oJ4CA mboKvi5deTJv+KzGFVJH+L/CqDziZAxWUzhtFEbt3Xbiinw4MGtVAgoX/Ax19y9ViZDV8p eAONZ8oBWVb8vGlP1qUEeaqiM2zKj/JUvmDiDTJRVBBdsp0gX1fs7eUDRwhavA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520428; 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=VyoN5MBVJxiCSwDnUu1VG9LUZHHNDaiTzD07XPD8COU=; b=gL54rv+qqvNjTxJvUbDgx6tj5qbGrysBw6quhoa4IimI3YsnQlqAQCvBmUWkWMTpMfPW8k jdeeOKLSIZI7rBboI4xGpxHPBTUgdySr+yZoc9vmjPWDcbzX0+FUcp6uME5WiDEJkQz/V0 vor1VMpw0Zt+Aheki5cLavmOoz6FLu0cXGT/Thx7djwHC5K7t68JH1BoPPuHNt3+s8sZPY jb6UeXHl5Y0wq+mF2EgkLihbzbwBQgWfv11MbO/ndJeaitIgJkZOLeomXUzO5JGRifbTK2 JgumIzfeuIKtKlnXJOxK36JChcoLmuxGhPkc/UMWGzzZGhoT7hnrVC//HE46IQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfh2fZnzwbS for ; Sat, 23 May 2026 07:13:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dc46 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: b393aa8e30b5 - stable/15 - nullfs: do not allow to mount a vnode over itself List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: b393aa8e30b5911a5177b6aaacd5a62beea8e3d6 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:48 +0000 Message-Id: <6a1153ac.3dc46.37853cee@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b393aa8e30b5911a5177b6aaacd5a62beea8e3d6 commit b393aa8e30b5911a5177b6aaacd5a62beea8e3d6 Author: Konstantin Belousov AuthorDate: 2026-05-16 22:16:45 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 nullfs: do not allow to mount a vnode over itself PR: 275570 (cherry picked from commit 7bdf2b5d5fbabfc8749c4ff6e618c3e843b14de0) --- sys/fs/nullfs/null_vfsops.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c index c3eec727aeea..0ec4f9c87297 100644 --- a/sys/fs/nullfs/null_vfsops.c +++ b/sys/fs/nullfs/null_vfsops.c @@ -151,6 +151,14 @@ nullfs_mount(struct mount *mp) */ lowerrootvp = ndp->ni_vp; + /* + * Do not allow to mount a vnode over itself. + */ + if (mp->mnt_vnodecovered == lowerrootvp) { + vput(lowerrootvp); + return (EDEADLK); + } + /* * Check multi null mount to avoid `lock against myself' panic. */ From nobody Sat May 23 07:13:49 2026 X-Original-To: dev-commits-src-branches@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 4gMtfk3502z6fgFt for ; Sat, 23 May 2026 07:13:50 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfj49gCz3tFZ for ; Sat, 23 May 2026 07:13:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pM+i7nulgghae4PK0oFlRX0RWLr31+3VpjPXLwsIUEc=; b=kh9HQajbx8vf03qN57mnTn6Hjp3Pjvd+IUsk6+KaWdx8brVOEbgq2USST5ouJUN7CyqrTR /pGcV8War/+PB/7yRcQX8VrEPFQvAYhtfLGoYVOpuFksMhBRxszVpk71/WNX0xYCtuDf+v EPz6Q8HKcWNIZFpxJNgjFJORzYSi5COwic+PojY8x7o8PKSm7TTzdqUUYK6nzgKjF0PJdl zDstCSxmKoaiZsb/vcbd6pgqw1OMzyJG35TTgXFnvdm4FHArh+ps1ddsr/RXmpIiba2IQ8 gZkuQcfI36gjahPX48CU9JMJKcMojOhE6xvkfHHyz+P/1hixKdZhYAvq3NCJ/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520429; a=rsa-sha256; cv=none; b=rSW3cqaL2nViIhYudXCU/63/dxg2Io0K3RdNAneODwGrzxLc7bWph8GrdFC0NIovIhUnZQ eDXWS7KztPobGBkp4aMimpSAFgrkDGXNNuwxsb6YSJmCoPp1BfOWd+iEaT/bUp/bR47QZU To/UEklYCWb7iPjXYt/Cs1vQ8Q5wiZySwWKy5tuudzViJ6vTA/9IbTsSminbFAT6Ikl8aE PckHo5M1Agj5nW2sRPb/UzgkYplymcPOZqstqMDOb3xtXMhFBD6EyVAP4xwJ/RZMSxpRrG ypWxbFbLSoYk7GBn8AtKNOn8DeX1UQIG/XnLf9vG18uCJqqiOhce3sL9LjruEw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pM+i7nulgghae4PK0oFlRX0RWLr31+3VpjPXLwsIUEc=; b=eGyCC1ZP7jAeLZilm6diQRdjms+q2mnlVRKssCCMqGxwbXBK4RsYxjsfXb9hX5tw377Vb+ qIdcS4VKLtJ063oFNW0SKpX/mqf1hsWcOeipP8l/Qlyc7RStTOtU0Bdht9db0vSnRI6Ue4 n/ohrmPwtvO7U4aoqhYtRYeQvmqjvV9qltg+N05xnWRjdKcmt42wAb+TTKCew9odmoI55a ndGgLxDo+TiBrx4KP1jvosXRaYgAbVEpZLjqGKaUxUhwOckWVSHs2Aw/kq4wKZKXWXtw/s Ujoia9fVM33Kl9PXiIwDtZ746Hi2OOUN6Cg2PNXF9fo1MEoeHdjLQvqMlc9URA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfj3cQJzwbT for ; Sat, 23 May 2026 07:13:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b87f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Chuck Silvers From: Konstantin Belousov Subject: git: 6646f952da49 - stable/15 - ufs: support unmapped bufs for indirect blocks in bmap List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 6646f952da498fcaa4297d12710ff29acaea2141 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:49 +0000 Message-Id: <6a1153ad.3b87f.41fbdaab@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6646f952da498fcaa4297d12710ff29acaea2141 commit 6646f952da498fcaa4297d12710ff29acaea2141 Author: Chuck Silvers AuthorDate: 2026-05-07 12:43:53 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 ufs: support unmapped bufs for indirect blocks in bmap (cherry picked from commit bab04ddf1fd4b7a77d1cfae4a67ededf1f35ee0d) --- sys/ufs/ufs/ufs_bmap.c | 143 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 134 insertions(+), 9 deletions(-) diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c index 9d21eaa0cb56..030cf3055477 100644 --- a/sys/ufs/ufs/ufs_bmap.c +++ b/sys/ufs/ufs/ufs_bmap.c @@ -34,7 +34,6 @@ * SUCH DAMAGE. */ -#include #include #include #include @@ -44,10 +43,13 @@ #include #include #include +#include +#include #include #include #include +#include #include #include @@ -59,6 +61,11 @@ static ufs_lbn_t lbn_count(struct ufsmount *, int); static int readindir(struct vnode *, ufs_lbn_t, ufs2_daddr_t, struct buf **); +static int ufs_bmap_use_unmapped = 1; + +SYSCTL_INT(_vfs_ufs, OID_AUTO, bmap_use_unmapped, CTLFLAG_RWTUN, + &ufs_bmap_use_unmapped, 0, "UFS bmap uses unmapped bufs"); + /* * Bmap converts the logical block number of a file to its physical block * number on the disk. The conversion is done by using the logical block @@ -102,12 +109,15 @@ readindir(struct vnode *vp, struct buf *bp; struct mount *mp; struct ufsmount *ump; - int error; + struct inode *ip; + int error, gbflags; mp = vp->v_mount; ump = VFSTOUFS(mp); + ip = VTOI(vp); - bp = getblk(vp, lbn, mp->mnt_stat.f_iosize, 0, 0, 0); + gbflags = !I_IS_UFS1(ip) && ufs_bmap_use_unmapped ? GB_UNMAPPED : 0; + bp = getblk(vp, lbn, mp->mnt_stat.f_iosize, 0, 0, gbflags); if ((bp->b_flags & B_CACHE) == 0) { KASSERT(daddr != 0, ("readindir: indirect block not in cache")); @@ -151,6 +161,24 @@ readindir(struct vnode *vp, * next block and the disk address of the block (if it is assigned). */ +static void * +ufs_bm_sf_get(struct buf *bp, int32_t pgidx, struct sf_buf **sfp) +{ + struct sf_buf *sf; + + sched_pin(); + sf = sf_buf_alloc(bp->b_pages[pgidx], SFB_CPUPRIVATE); + *sfp = sf; + return ((void *)sf_buf_kva(sf)); +} + +static void +ufs_bm_sf_put(struct sf_buf *sf) +{ + sf_buf_free(sf); + sched_unpin(); +} + int ufs_bmaparray(struct vnode *vp, ufs2_daddr_t bn, @@ -164,10 +192,16 @@ ufs_bmaparray(struct vnode *vp, struct ufsmount *ump; struct mount *mp; struct indir a[UFS_NIADDR+1], *ap; + struct sf_buf *sf; ufs2_daddr_t daddr; ufs_lbn_t metalbn; int error, num, maxrun = 0; int *nump; + ufs1_daddr_t *daddr1p; + ufs2_daddr_t pgbn, daddrppg, prevdaddr, *daddr2p; + int32_t daddrsz, boff, pgidx, pgoff; + void *pgaddr; + bool isseq; ap = NULL; ip = VTOI(vp); @@ -261,17 +295,71 @@ ufs_bmaparray(struct vnode *vp, if (error != 0) return (error); - if (I_IS_UFS1(ip)) - daddr = ((ufs1_daddr_t *)bp->b_data)[ap->in_off]; - else - daddr = ((ufs2_daddr_t *)bp->b_data)[ap->in_off]; + daddrsz = I_IS_UFS1(ip) ? sizeof(ufs1_daddr_t) : sizeof(ufs2_daddr_t); + if (!buf_mapped(bp)) { + boff = ap->in_off * daddrsz; + pgidx = boff / PAGE_SIZE; + pgoff = (boff & PAGE_MASK) / daddrsz; + pgaddr = ufs_bm_sf_get(bp, pgidx, &sf); + if (I_IS_UFS1(ip)) + daddr = ((ufs1_daddr_t *)pgaddr)[pgoff]; + else + daddr = ((ufs2_daddr_t *)pgaddr)[pgoff]; + ufs_bm_sf_put(sf); + } else { + if (I_IS_UFS1(ip)) + daddr = ((ufs1_daddr_t *)bp->b_data)[ap->in_off]; + else + daddr = ((ufs2_daddr_t *)bp->b_data)[ap->in_off]; + } + if ((error = UFS_CHECK_BLKNO(mp, ip->i_number, daddr, mp->mnt_stat.f_iosize)) != 0) { bqrelse(bp); return (error); } + if (num > 1 || daddr == 0 || runp == NULL) + continue; + + daddrppg = PAGE_SIZE / daddrsz; if (I_IS_UFS1(ip)) { - if (num == 1 && daddr && runp) { + if (!buf_mapped(bp)) { + prevdaddr = daddr; + isseq = true; + for (bn = ap->in_off + 1; + bn < MNINDIR(ump) && *runp < maxrun && isseq; ) { + boff = bn * daddrsz; + pgidx = boff / PAGE_SIZE; + pgoff = (boff & PAGE_MASK) / daddrsz; + KASSERT(pgidx >= 0 && pgidx < bp->b_npages, + ("pgidx %d vs b_npages %d", pgidx, bp->b_npages)); + pgaddr = ufs_bm_sf_get(bp, pgidx, &sf); + daddr1p = (ufs1_daddr_t *)pgaddr; + for (pgbn = pgoff; + pgbn < daddrppg && *runp < maxrun && + (isseq = is_sequential(ump, prevdaddr, daddr1p[pgbn])); + prevdaddr = daddr1p[pgbn], ++pgbn, ++bn, ++*runp); + ufs_bm_sf_put(sf); + } + prevdaddr = daddr; + bn = ap->in_off; + if (runb && bn) { + isseq = true; + for (--bn; bn >= 0 && *runb < maxrun && isseq; ) { + boff = bn * daddrsz; + pgidx = boff / PAGE_SIZE; + pgoff = (boff & PAGE_MASK) / daddrsz; + KASSERT(pgidx >= 0 && pgidx < bp->b_npages, + ("pgidx %d vs b_npages %d", pgidx, bp->b_npages)); + pgaddr = ufs_bm_sf_get(bp, pgidx, &sf); + daddr1p = (ufs1_daddr_t *)pgaddr; + for (pgbn = pgoff; pgbn >= 0 && *runb < maxrun && + (isseq = is_sequential(ump, daddr1p[pgbn], prevdaddr)); + prevdaddr = daddr1p[pgbn], --pgbn, --bn, ++*runb); + ufs_bm_sf_put(sf); + } + } + } else { for (bn = ap->in_off + 1; bn < MNINDIR(ump) && *runp < maxrun && is_sequential(ump, @@ -289,7 +377,44 @@ ufs_bmaparray(struct vnode *vp, } continue; } - if (num == 1 && daddr && runp) { + + if (!buf_mapped(bp)) { + prevdaddr = daddr; + isseq = true; + for (bn = ap->in_off + 1; + bn < MNINDIR(ump) && *runp < maxrun && isseq; ) { + boff = bn * daddrsz; + pgidx = boff / PAGE_SIZE; + pgoff = (boff & PAGE_MASK) / daddrsz; + KASSERT(pgidx >= 0 && pgidx < bp->b_npages, + ("pgidx %d vs b_npages %d", pgidx, bp->b_npages)); + pgaddr = ufs_bm_sf_get(bp, pgidx, &sf); + daddr2p = (ufs2_daddr_t *)pgaddr; + for (pgbn = pgoff; + pgbn < daddrppg && *runp < maxrun && + (isseq = is_sequential(ump, prevdaddr, daddr2p[pgbn])); + prevdaddr = daddr2p[pgbn], ++pgbn, ++bn, ++*runp); + ufs_bm_sf_put(sf); + } + prevdaddr = daddr; + bn = ap->in_off; + if (runb && bn) { + isseq = true; + for (--bn; bn >= 0 && *runb < maxrun && isseq; ) { + boff = bn * daddrsz; + pgidx = boff / PAGE_SIZE; + pgoff = (boff & PAGE_MASK) / daddrsz; + KASSERT(pgidx >= 0 && pgidx < bp->b_npages, + ("pgidx %d vs b_npages %d", pgidx, bp->b_npages)); + pgaddr = ufs_bm_sf_get(bp, pgidx, &sf); + daddr2p = (ufs2_daddr_t *)pgaddr; + for (pgbn = pgoff; pgbn >= 0 && *runb < maxrun && + (isseq = is_sequential(ump, daddr2p[pgbn], prevdaddr)); + prevdaddr = daddr2p[pgbn], --pgbn, --bn, ++*runb); + ufs_bm_sf_put(sf); + } + } + } else { for (bn = ap->in_off + 1; bn < MNINDIR(ump) && *runp < maxrun && is_sequential(ump, From nobody Sat May 23 07:13:50 2026 X-Original-To: dev-commits-src-branches@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 4gMtfl2qkDz6fgCN for ; Sat, 23 May 2026 07:13:51 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfk50TCz3t0S for ; Sat, 23 May 2026 07:13:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520430; 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=7ZWEjalZ44cCNK/gk4JmzHBWgqKs1K2uS+AqNPD4Zzo=; b=BXfV3DrEX6oT4RRwVcJ3Lt0v4Ev89MYsyTm4jc4Ngi3N0X7Yvbc1+h2Leieqy+ejkcA494 Q/s/a55mXf1a2RTdjtNe46YNF/3/6YRT1v5EpVu538qM4yovCfGbjN9RqkmJSF0QTxHT5I JJNHkqUIgphMbNbU21kGUfi/kHeNz7SzhTtGxr7PQT6x287UrXZN0ub7KDOVWI5IN1ZXL0 g/xtkaf66mngQvo/+kE0cDm9FuVZPxcZsMGtLrgstVyYbO3/ZfTvJrZnT7H38kMzEuvhWM mr4ZZQieIo+ZcIFje5HQhFfb3bnotldwNN8ivMrFohXIaTQefecVvNYBZL2TNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520430; a=rsa-sha256; cv=none; b=x4EVXrCY1q7giq9J6k0Dx4FLNL9kGpNN70kFqq305tEY9jCsa1IbVbfKzXmUgFSG0K7yIy oWs8zOZyiDT3Pf285+qEg+8SSGIuRAGJ91NlsGk2UH8TRrwFT5OTZVQPv/VlrqCXEqZtuw pGZw3UPlUq5K101bAp8Y1GwXJNPi+jMNWc21RB4fP/6SK35unmnA3bnHA+5Aem8CnNHip6 AtobfRSw7vvSBaERhBIQP7insY0pVrg0kBfUao2w6UU5xxkAmFhz5BvciIrurOM1/poNaq QidM3DDbqsU54HMoXMgeCvn8QURkVy/qqFijIC5Zr5SG8Jzy8jEzcorMOJ7i7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520430; 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=7ZWEjalZ44cCNK/gk4JmzHBWgqKs1K2uS+AqNPD4Zzo=; b=HCi7yI2ILSvPIrgDyEOOXp4cRSAyZi1swQLxd/dG1p9W1V43g/dYpAWou5OaLSBfJ4MlJz mfeO3kreAsILMw8mFmtZBt+EBg6I8CoXFSFlt8KZT/Q2tINXB3LceR9SVIYGmUxzeZF+1W 0tZ9tssUykJQz+2Uy0buf0qgEzX8Mv+jg7/mRov6ihVZzkxoJIHDtL1k+Ow81yY+DGIcEd MT2sSRpl3oxORfL2NulsDkNWAF9UKiQKL2h4O8Wjq1cer3Az/yKFfeSoQrt9CAFP3kZ2S0 fJVPlSKlHfGWmGg2VZqivBMgmSd+7ZCMBhRXSGooLRzWT6p4ZZIgfwa1bFNdBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfk4GHTzxVQ for ; Sat, 23 May 2026 07:13:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e648 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 3564e33b6099 - stable/15 - ufs: ufs_bmap_seekdata() needs mapped buffer for scan List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 3564e33b6099fcdfce4371fcf51c7f462823e012 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:50 +0000 Message-Id: <6a1153ae.3e648.1b177d74@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3564e33b6099fcdfce4371fcf51c7f462823e012 commit 3564e33b6099fcdfce4371fcf51c7f462823e012 Author: Konstantin Belousov AuthorDate: 2026-05-17 00:09:21 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 ufs: ufs_bmap_seekdata() needs mapped buffer for scan PR: 295348 (cherry picked from commit 8ad8643a66735d28dac53a772856c94ca65b2bf3) --- sys/ufs/ufs/ufs_bmap.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/ufs/ufs/ufs_bmap.c b/sys/ufs/ufs/ufs_bmap.c index 030cf3055477..1194820e6b07 100644 --- a/sys/ufs/ufs/ufs_bmap.c +++ b/sys/ufs/ufs/ufs_bmap.c @@ -59,7 +59,8 @@ #include static ufs_lbn_t lbn_count(struct ufsmount *, int); -static int readindir(struct vnode *, ufs_lbn_t, ufs2_daddr_t, struct buf **); +static int readindir(struct vnode *, ufs_lbn_t, ufs2_daddr_t, bool, + struct buf **); static int ufs_bmap_use_unmapped = 1; @@ -104,6 +105,7 @@ static int readindir(struct vnode *vp, ufs_lbn_t lbn, ufs2_daddr_t daddr, + bool allow_unmapped, struct buf **bpp) { struct buf *bp; @@ -116,7 +118,8 @@ readindir(struct vnode *vp, ump = VFSTOUFS(mp); ip = VTOI(vp); - gbflags = !I_IS_UFS1(ip) && ufs_bmap_use_unmapped ? GB_UNMAPPED : 0; + gbflags = allow_unmapped && !I_IS_UFS1(ip) && + ufs_bmap_use_unmapped ? GB_UNMAPPED : 0; bp = getblk(vp, lbn, mp->mnt_stat.f_iosize, 0, 0, gbflags); if ((bp->b_flags & B_CACHE) == 0) { KASSERT(daddr != 0, @@ -291,7 +294,7 @@ ufs_bmaparray(struct vnode *vp, */ if (bp) bqrelse(bp); - error = readindir(vp, metalbn, daddr, &bp); + error = readindir(vp, metalbn, daddr, true, &bp); if (error != 0) return (error); @@ -525,7 +528,7 @@ ufs_bmap_seekdata(struct vnode *vp, off_t *offp) for (; daddr != 0 && num > 0; ap++, num--) { if (bp != NULL) bqrelse(bp); - error = readindir(vp, ap->in_lbn, daddr, &bp); + error = readindir(vp, ap->in_lbn, daddr, false, &bp); if (error != 0) return (error); From nobody Sat May 23 07:13:51 2026 X-Original-To: dev-commits-src-branches@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 4gMtfm0Yfxz6fgbk for ; Sat, 23 May 2026 07:13:52 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMtfl5VDGz3tJQ for ; Sat, 23 May 2026 07:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520431; 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=kzxmjvUtepRZhfgqhn7hjK4RhwJQYOub7fle3G9n+eM=; b=amV9PfYAT8MtsbOKYlAZt163yRXavLjUo5yM7tW/T5MzZHa+nFAk26i89lDH06XFx038u/ G83nAIKVzRpdiVZhvnoPE5xSe2OzlkkiHwMiU7f8NFlcGW48ASsKb7mvWdKRBT/+XtW/pJ aPPwj2hpuuylIC9oL/fOy2ar/vJMtCWms8MyCcI189KBtZ35YE7ZkDUNroYWnHUjTnZA15 cKwUUY14AkfzMytkIga0BMiwIkiXHkgjFiH7yGhAZlX4aXaGfBLcazloq35EEuKo8/c5AY aNaHKLuuHlL+JATvybm082qxVxlnFuklNcfa35SRUcdckv4VvkHFi5k4xwO11w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779520431; a=rsa-sha256; cv=none; b=OGa9RFoab6fOn+XVwC0XFrrRS98RN2nDJ+G0/y3RC4DjwDfLgbfL336Ahpp01964oYtLRk DAREnVJAZOmvH9HP41XLM9AL+B76nItHXSAlfK58Wem4WYGTJg7GKbRd7HecwW79yDHnY1 MfaO3/Dbf6Lu9WQLrtqf9ELRFyJDsQChkhlMNfya1hYlezKARnCmvSgMSQNVSqh2qOjSyk LdEJpM9PSVABv4L4Tu1p2XcHS5ce9yNd8Axa1MBKvI+fvaN0r9n0PzU9g6YO8tIwT4+RSq 2knkc/p26K1JFXbQtLXEz/4YOC+/TwShfZuasejWCbWhDexORCs4LbTVpvxY7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779520431; 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=kzxmjvUtepRZhfgqhn7hjK4RhwJQYOub7fle3G9n+eM=; b=A39acUHC2KSenaZBxemxaulYtXZjNucK2kCPke1djt0y16IojIW/R+PPe04E8V5ZiTLyn9 6t5ZPlExXe0Dt4M5RVvW9Ou/4k0zDETTd3KBY4SVp+JBnG3QXk/0ySXVK5YiRdVQ+QeuWB wW1x4lP3zrYOzyOIj8GeGkKWFe6y8Ht3m3d8ftF4BtXJajDnQfNN2sHREq9GrmrQBEyBjG h3p28k1xc/TR3U0qEp1dEO1C8WabldFEodiJzjggG71t4ZzkIhvDd5KDjxAx+6MAv/sHrd 3Emb1T9feJu8hiQP1VP6Xul8hRUtM31V1EBpnWHphKag8vepy1e86yAL48ZHng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gMtfl53stzx0F for ; Sat, 23 May 2026 07:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e106 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 07:13:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 52462498b132 - stable/15 - linux/linux_common.h: make header self-contained List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 52462498b1321a97031c8daa5d627299210d7bd2 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 07:13:51 +0000 Message-Id: <6a1153af.3e106.66322313@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=52462498b1321a97031c8daa5d627299210d7bd2 commit 52462498b1321a97031c8daa5d627299210d7bd2 Author: Konstantin Belousov AuthorDate: 2026-05-19 02:22:58 +0000 Commit: Konstantin Belousov CommitDate: 2026-05-23 06:56:13 +0000 linux/linux_common.h: make header self-contained (cherry picked from commit f6f5eb3190165cea4470048809413b1fdbd97e04) --- sys/compat/linux/linux_common.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/compat/linux/linux_common.h b/sys/compat/linux/linux_common.h index 97f5a259f300..770b9bca250d 100644 --- a/sys/compat/linux/linux_common.h +++ b/sys/compat/linux/linux_common.h @@ -28,6 +28,12 @@ #ifndef _LINUX_COMMON_H_ #define _LINUX_COMMON_H_ +#include +#include + +struct ifnet; +struct thread; + int ifname_bsd_to_linux_ifp(struct ifnet *, char *, size_t); int ifname_bsd_to_linux_idx(u_int, char *, size_t); int ifname_bsd_to_linux_name(const char *, char *, size_t); From nobody Sat May 23 20:14:06 2026 X-Original-To: dev-commits-src-branches@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 4gNCz24k1Jz6dlHM for ; Sat, 23 May 2026 20:14:06 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gNCz21YWpz3Tvw for ; Sat, 23 May 2026 20:14:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567246; 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=0rgqsNmNkkrQXZCfQ/RsSaH4ueYBP+N/loibLKpe6Jo=; b=sCJ5a9FvyYt0NbheuwOHRaEAUY/Q/XwVdkhLoiFq7MFRfp2RmjrZNrQ53gvtj5fvliABQo 6/czQdNMRv+JWjqPk+lWkQJ0D+naucuY+xPBiQDRYomvPRyNO72Ev65u73KTApSdHvppEL 0ANsGwvgDi42D+UWxt1JsumtkzeKnukNJSrhnUqaPWytZefXH2aiQ1PMFHy0D26O905buT uC88mQg5CcAMnEa+kVjn+bPUnZigrc+JiTA7vc3nAq4QvehmpgPIcXm2Rhx/XI8+G8V+A6 UyoVL9RC5LfsyIYeSKEe+en6vtEfx2R+5DRLk5AsaXH1EggS9QB6RJSc0nNhCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779567246; a=rsa-sha256; cv=none; b=MWOcizUAWebw7KxHIYinUIn927cul3GdvLlV7R3//1DOsg6KP8poyFip72JKuCqaNCgRnW c3stQlxEKJhWmi/kmRX++uUsIC2TSO2HsZxaGIeF0vLhlAgVlWx3S5be8oLJcaeGbWiXIb KJxUOi12FSJR6DKMnWId6FC0sY7/AZu8sfPLxg0Z3tdbO4FQZdc/yaH7f2W52xt4HR0pyG sHcMmSdb0K3vd+rdA5vJjW4eEeqRiXBrCUcV3G+zyyE1raXf8V0ar7+yYmwGtzk3vNW8/s hxNXrySJoL44I46eGOkDwdBuazTu7KgfR3ZCMYePQB5soTlqibaW72P73GI9CQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567246; 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=0rgqsNmNkkrQXZCfQ/RsSaH4ueYBP+N/loibLKpe6Jo=; b=KzQ4d92mDGOvKW4JGXyJIC+vpS5KlND+Hc2+azVqIjzLAb6clRuQn9WKGOwNIKTlk9AdqT g4VrcJsK1CSf5DzEa6fToTwZzie4/iTKlwVwCu2M593kfWHd0WAZ5z7MjLcA6grwq1YyYT gw/dlqgeBCCsA0bwwb47kTrJJmIGQTJgPDgNtavvMXLSKDsW2N6tdPpyKBPy0c0rCLEsee O5Ndeaq8UKExQwZLepWw5tDbpgAZBNiet2sws4DdImNoRrw4+xpBt6dahvMkePDBThSi8Y 9ySegzRrJOaseqdk23FHEtDxJbmyfXwjq8xPhacmfMPogbwt6oSzUaXi7xXpAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gNCz217wzz6vL for ; Sat, 23 May 2026 20:14:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 187d4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 20:14:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Osipov Subject: git: 71c50c152157 - stable/15 - mfiutil.8/mrsasutil.8: Use Broadcom/LSI consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: michaelo X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 71c50c15215786767ac3c50686393c168155015d Auto-Submitted: auto-generated Date: Sat, 23 May 2026 20:14:06 +0000 Message-Id: <6a120a8e.187d4.407fb3a4@gitrepo.freebsd.org> The branch stable/15 has been updated by michaelo: URL: https://cgit.FreeBSD.org/src/commit/?id=71c50c15215786767ac3c50686393c168155015d commit 71c50c15215786767ac3c50686393c168155015d Author: Michael Osipov AuthorDate: 2026-05-23 19:08:09 +0000 Commit: Michael Osipov CommitDate: 2026-05-23 20:13:30 +0000 mfiutil.8/mrsasutil.8: Use Broadcom/LSI consistently Both tools support controllers from both companies, so document it. Reviewed by: ziaee (via IRC) MFC after: immediately Differential Revision: https://reviews.freebsd.org/D57212 (cherry picked from commit c74645b0c8df1307cb6f13d835012f88883dff3a) --- usr.sbin/mfiutil/mfiutil.8 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/mfiutil/mfiutil.8 b/usr.sbin/mfiutil/mfiutil.8 index 5d0e425872be..25c2dfe4eb66 100644 --- a/usr.sbin/mfiutil/mfiutil.8 +++ b/usr.sbin/mfiutil/mfiutil.8 @@ -25,13 +25,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 2, 2011 +.Dd May 23, 2026 .Dt MFIUTIL 8 .Os .Sh NAME .Nm mfiutil , .Nm mrsasutil -.Nd Utility for managing LSI MegaRAID SAS controllers +.Nd manage Broadcom/LSI MegaRAID SAS controllers .Sh SYNOPSIS .Nm .Cm version @@ -258,7 +258,7 @@ .Sh DESCRIPTION The .Nm -utility can be used to display or modify various parameters on LSI +utility can be used to display or modify various parameters on Broadcom/LSI MegaRAID SAS RAID controllers. Each invocation of .Nm From nobody Sat May 23 20:14:05 2026 X-Original-To: dev-commits-src-branches@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 4gNCz13Ptgz6dlKQ for ; Sat, 23 May 2026 20:14:05 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gNCz10qSHz3TlG for ; Sat, 23 May 2026 20:14:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567245; 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=NvIPa4OPdSWVDGUS+YvoFrDiEBEZddNx0VMhBgdY7d4=; b=V+6Blk5OQr6vc9nARFWrvjDyY2PbGFYlmGy6eqbrf4RtoM1aYe3dlrDQwCgaj9KXtwd4/x rjAp+17pHhbqadVpxAZxF7RJlBE2ggUqClERS2kCoLxYTdZKQqm3t9kQiy7ZSF1xH8Rdxt I0D6NrLyVLjseO+50Wgv5+HMWzN9f4qdprb5KqwbaRA8gAuithnUYJhPVfo/00XevDJTCy vl+PHnLOWzW2wUF2zJ4Cm2GbBS+r0AZ5XC7Fzn9Q3k8YtNwMb1bbIDgVCO+p01L/KlKjnf 6lj39uy7tIohYJJgxLXDu80y0gzucP0NUdmjZmRLum1mDJgkGGHF0ApfhvrRKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779567245; a=rsa-sha256; cv=none; b=Iojb3YJf/fOxtJznHmE5186ClbOPm6aDJTn+IPvcsJf41Q0whDjX2qXTNPWeqmLNwO4Zjj QJ8PAu/LOepeXMEcSoZj6qNl4eyz9dYqXoVhmk4x1P9fjHJrTFwiKmNhn350+ktOpuN9Vy A22/uLSxYkuyYLNY52gwV+oNncacEMQOgiOIMDht/Z0rNGTLL+AOfJiIlzDZxRYfRrQ2sH /W3HLOc9Yij/DAsoWPkiOqqSj2Ud6Q/6cD0eK8d/TWLCfFr6pOTHtB3Wq0xkZaFyiKVCA/ 37aHeclg4ejhRCd7RZRAGSZfmmlDbB+njRf0IvRKoUNbYtiOfHyKg9YC6aFbcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567245; 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=NvIPa4OPdSWVDGUS+YvoFrDiEBEZddNx0VMhBgdY7d4=; b=NJLBrwNR93VMEx8fN9G9pn8pM0lytD4y30DWDG6vWTUgIQzb+oahThsIRi5fsGii5DtxSa nzpn55aIwUJRw8r2/31bvAo8sRCmL//6tRB3PdtH30rMr1i7uwObmkLXsoo2boEFxvvmpw nSLVoBC6ippIZEYueOU1qzAgFceCpt+muo+UoMF/nQuXXW05VQgQVgTnjN0WwU9PpZ2rUq rX1d073ZLYt1qCwCBOjWPyaTcYn4rKpZyI7G6mssU0+5rIfV4SL5kJ5xdSkbVb2gdfpP5T ElyjLeNjTaRQcbavr8vnujbX5MGp/VoEcfevAdp527QPpGwdtW73JPkoJ5K0/A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gNCz10Jz7z7Hp for ; Sat, 23 May 2026 20:14:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18854 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 20:14:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Osipov Subject: git: ce40d96aaa81 - stable/15 - mrsas.4: Use Broadcom/LSI consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: michaelo X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ce40d96aaa81b9786f5ee401d8c4e6064594c5bb Auto-Submitted: auto-generated Date: Sat, 23 May 2026 20:14:05 +0000 Message-Id: <6a120a8d.18854.28351111@gitrepo.freebsd.org> The branch stable/15 has been updated by michaelo: URL: https://cgit.FreeBSD.org/src/commit/?id=ce40d96aaa81b9786f5ee401d8c4e6064594c5bb commit ce40d96aaa81b9786f5ee401d8c4e6064594c5bb Author: Michael Osipov AuthorDate: 2026-05-23 19:02:51 +0000 Commit: Michael Osipov CommitDate: 2026-05-23 20:13:19 +0000 mrsas.4: Use Broadcom/LSI consistently Reviewed by: ziaee (via IRC) MFC after: immediately Differential Revision: https://reviews.freebsd.org/D57211 (cherry picked from commit f30b1df048f00cd84f46b798c67234e7c3009962) --- share/man/man4/mrsas.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/mrsas.4 b/share/man/man4/mrsas.4 index 6645835d0bb2..1b72b446466c 100644 --- a/share/man/man4/mrsas.4 +++ b/share/man/man4/mrsas.4 @@ -35,7 +35,7 @@ .\" are those of the authors and should not be interpreted as representing .\" official policies, either expressed or implied, of the FreeBSD Project. .\" -.Dd January 6, 2026 +.Dd May 23, 2026 .Dt MRSAS 4 .Os .Sh NAME @@ -125,7 +125,7 @@ rather then JBOD virtual mode. .Sh HARDWARE The .Nm -driver supports the following LSI/Broadcom SATA/SAS RAID controllers: +driver supports the following Broadcom/LSI SATA/SAS RAID controllers: .Pp .Bl -column -compact "LSI MegaRAID SAS 9380" "Invader/Fury" "12Gb/s" .It Controller Ta Chip Ta Speed From nobody Sat May 23 20:15:14 2026 X-Original-To: dev-commits-src-branches@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 4gND0L2RMNz6dl6P for ; Sat, 23 May 2026 20:15:14 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gND0L1gLQz3VQk for ; Sat, 23 May 2026 20:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567314; 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=cjSPzOEngAQu6w7+uBOUFML0cf58zKWC9z1g7pV3H+0=; b=Im7UJgzieC0eRGehP0KrufKGWjsrY/bHZ4heZXv0BG69iGgNO0xQhqhp1BPWTLGuAFWmQx PaEDOAS5YWYnk5Qj7ajrUahrxbhyVAgaPoA2lWon4iGUH+tDMGtcsBKAJfk2CkpFIcaWWb HgKH/LgSV1ZTJpP2EacQ1DtUpNCX/gQamYhdFHlAV7fLNNwrOQyi0xXE0fCchtjaUTuabB NI1f/5fQqxWoaSMoDehAePV+el6B00EYzBOZWXLYAwC+a3FX7pLUA6t37iq5bKkOgzlbHa pfrf23FvNyIqpfgwcitE2jMoxNoRfvscT3iilTiOq6q4sxHJOwwfwun5vVvtGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779567314; a=rsa-sha256; cv=none; b=Cc+CDE6uO5ADUTTsnuzPJCioE/G9FomKlPj8yP9e+EtJ8uiAVqroGCICK1NSKH2pag+peq AYaXFVuSSimnSbSIxYIlqYjW6vEX8qLGal8plW1NgJ+2Rcaridp25FMW8uc7qBniP17uX1 ddKQWFKEDjQsrHjq766o/jXTOQ+AeME3qdmDz647L+CKo+tGmbJFfPY5WkA5MIcwcmm99a 124lAI+bdsL5IGRCmU3ZCPYX63QoxccwH5A062/J8rwMqiKAouPkkZb82sg1qImHrziIJE xgbcrw9acE2QlsdQK3PaZmrr9OGcbzAOrM4P3ULvkFekruchFNoP1tY1zzfpMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567314; 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=cjSPzOEngAQu6w7+uBOUFML0cf58zKWC9z1g7pV3H+0=; b=POJkgWH2tbUAElRuHIWHH2dF2C9MnmbQKLIauk0sLtZO3ND0BpsL4/ABTuYaOHxmkjIN1d CYn3H6QlEGXuukBGeHBngmGaa6qoo9ekKUMmKSj0zBBhrYHc7TLmhG5anfFZwybW/vF0lK wzfgMlN5igef1IoxyEqwYupN/xCM1jn177kV/J+U7XOFl96vd3nUW3ou/G7A9+iZxJrfxP Sh+CEJSoJ4MFl4MQb1cJY05yTslB/PZpcDGC1gz5/aXJbGoOIbXvSYJMzyuhQgJ3NPBQZr z9pZ4iA7nUYkdwA2RzUVMscapSHlDnT9VyxAGtK6N6qR6f/afGpWEN+F3NO5lA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gND0L13H4z7DX for ; Sat, 23 May 2026 20:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 476c5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 20:15:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Osipov Subject: git: 54c8439410d7 - stable/14 - mrsas.4: Use Broadcom/LSI consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: michaelo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 54c8439410d7a12560c41f120a28039fad41dcc9 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 20:15:14 +0000 Message-Id: <6a120ad2.476c5.5b250410@gitrepo.freebsd.org> The branch stable/14 has been updated by michaelo: URL: https://cgit.FreeBSD.org/src/commit/?id=54c8439410d7a12560c41f120a28039fad41dcc9 commit 54c8439410d7a12560c41f120a28039fad41dcc9 Author: Michael Osipov AuthorDate: 2026-05-23 19:02:51 +0000 Commit: Michael Osipov CommitDate: 2026-05-23 20:14:46 +0000 mrsas.4: Use Broadcom/LSI consistently Reviewed by: ziaee (via IRC) MFC after: immediately Differential Revision: https://reviews.freebsd.org/D57211 (cherry picked from commit f30b1df048f00cd84f46b798c67234e7c3009962) --- share/man/man4/mrsas.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/mrsas.4 b/share/man/man4/mrsas.4 index 6645835d0bb2..1b72b446466c 100644 --- a/share/man/man4/mrsas.4 +++ b/share/man/man4/mrsas.4 @@ -35,7 +35,7 @@ .\" are those of the authors and should not be interpreted as representing .\" official policies, either expressed or implied, of the FreeBSD Project. .\" -.Dd January 6, 2026 +.Dd May 23, 2026 .Dt MRSAS 4 .Os .Sh NAME @@ -125,7 +125,7 @@ rather then JBOD virtual mode. .Sh HARDWARE The .Nm -driver supports the following LSI/Broadcom SATA/SAS RAID controllers: +driver supports the following Broadcom/LSI SATA/SAS RAID controllers: .Pp .Bl -column -compact "LSI MegaRAID SAS 9380" "Invader/Fury" "12Gb/s" .It Controller Ta Chip Ta Speed From nobody Sat May 23 20:15:15 2026 X-Original-To: dev-commits-src-branches@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 4gND0M4TYzz6dl6Q for ; Sat, 23 May 2026 20:15:15 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gND0M2Gbgz3VYt for ; Sat, 23 May 2026 20:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567315; 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=kw9DPqKagQ8MFaur8D93GkoJFU+fcLS/7R1aoSPECis=; b=TsnKLUV62Z3vxc5PwFxzfiVrjfrJidGtajhJHIy8Pfb+bMf3/LVAVIDavt59Cwmu6rpATh jUEvCnpCxQReJYe/wFzLvEa350IKSWfeYQVQd0CnhVlpdyDOht2ugntXD5GRqvGlhIoBj9 Ma776LgvC441mMzUrcbM4kGSUsAATz2WCZxgnImRnDAbaPDUiA8NuvXNgnibjtkDzS6U6A aXv+ddg4Fnj/vSvxWs59fl7pMcgcoT6QOdxQYyx6+47jx4H6hCV5CTHai80ifXYBxIjxtr XoZ39rBRtwH40Fga9wDzgNt6Y0BpdSx0fi9Dbrna+AYG170lWA795lSjS3D/Ww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779567315; a=rsa-sha256; cv=none; b=iytCEEBC+OSXYeqmrcojaVVWZ4H8hY2PEkaXDs8FkjlNExdSFUIQ35m0M+Ie2cukr9ViqJ FbgGKT7G5PWIWABz9NkcEEorqtzcvhG24wtTxLUJkFuM2ct0/Q7sZ1YEpt6T8xlWSuHJOu N6aE0R+g1ICtxPylGeS9cqoNFW2d+DwMcURx20l2rSrgXawIJSAoVnAkmReTbEtvIB9iMB RJQICn4kpdXlsHRLWO1G7T7vjMm5uSItnZWj67NNXyelEjoKcfGXXImJ0yLDTNiom/gFNd WnxxA8+Kqt6+P8N8eBF1ldSxp51r9undJprFlYlVQEawHce9rk4mL5Nq3u/sUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779567315; 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=kw9DPqKagQ8MFaur8D93GkoJFU+fcLS/7R1aoSPECis=; b=DrwfyjK1YHCQtJuxhtB3kOE9jk3gY7QgFHD8XqWxTmeuRn1DS/FE+ggEDJgjO7rWTVC3Do jwGNMS/E3IWTOBAyrMWEfhJdVGCrkJM6E5/T4Alef8tfxPLHE9nFO328UMDjoU95CLEOBn Hiax7vN9TVpRyPkU8Qo6+zJpvExRg7uuDglREFRL1Hpu/xenLbk4SQv/rSoeQb4L3pIB2J I0UJiRmCkSit9WcdIddR1+ayYbRFigAfpVdGvweX0tGpA+yu9LoT52HUOx7OCp5KTho/8r O2DLhxkZ6MAolcxOK5HSpySKFgSK1I35Il62y28iM8lbR7evY4/hZ7d90uJ7yQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gND0M1sVfz7Hr for ; Sat, 23 May 2026 20:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19376 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 23 May 2026 20:15:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Osipov Subject: git: 9f1e693804dc - stable/14 - mfiutil.8/mrsasutil.8: Use Broadcom/LSI consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: michaelo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9f1e693804dc04f5f5f2762cdebfc6fe7a4ee219 Auto-Submitted: auto-generated Date: Sat, 23 May 2026 20:15:15 +0000 Message-Id: <6a120ad3.19376.5cfa0ff2@gitrepo.freebsd.org> The branch stable/14 has been updated by michaelo: URL: https://cgit.FreeBSD.org/src/commit/?id=9f1e693804dc04f5f5f2762cdebfc6fe7a4ee219 commit 9f1e693804dc04f5f5f2762cdebfc6fe7a4ee219 Author: Michael Osipov AuthorDate: 2026-05-23 19:08:09 +0000 Commit: Michael Osipov CommitDate: 2026-05-23 20:14:51 +0000 mfiutil.8/mrsasutil.8: Use Broadcom/LSI consistently Both tools support controllers from both companies, so document it. Reviewed by: ziaee (via IRC) MFC after: immediately Differential Revision: https://reviews.freebsd.org/D57212 (cherry picked from commit c74645b0c8df1307cb6f13d835012f88883dff3a) --- usr.sbin/mfiutil/mfiutil.8 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/mfiutil/mfiutil.8 b/usr.sbin/mfiutil/mfiutil.8 index 9f8cacf7f16d..86ee967315ed 100644 --- a/usr.sbin/mfiutil/mfiutil.8 +++ b/usr.sbin/mfiutil/mfiutil.8 @@ -25,13 +25,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 2, 2011 +.Dd May 23, 2026 .Dt MFIUTIL 8 .Os .Sh NAME .Nm mfiutil , .Nm mrsasutil -.Nd Utility for managing LSI MegaRAID SAS controllers +.Nd manage Broadcom/LSI MegaRAID SAS controllers .Sh SYNOPSIS .Nm .Cm version @@ -258,7 +258,7 @@ .Sh DESCRIPTION The .Nm -utility can be used to display or modify various parameters on LSI +utility can be used to display or modify various parameters on Broadcom/LSI MegaRAID SAS RAID controllers. Each invocation of .Nm From nobody Sun May 24 16:15:09 2026 X-Original-To: dev-commits-src-branches@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 4gNkcs6Bclz6ddtt for ; Sun, 24 May 2026 16:15:09 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gNkcs5gZgz3M3d for ; Sun, 24 May 2026 16:15:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639309; 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=YvKc5ZLrZy7HuPir1sddBfNca4QyT6DPjNFGLwIO388=; b=oWa6B/sBznZOBSvWeczk1tmyzlA6QG54uCzOJnnap+7vu7KVoAHASfrUQBE7MRZah35O7L qFk58bTkXf6IWkoJ+rHYBfkU5imbO9M8yPBv3IAzqRox4BekZEbXuLhMjALFEBx1cXti3h mE5/sH87MhY8LykRzJi4EhZwRmdHGe/2qAHVtvp5esOfYWxIzJhWBmhhNFlhLRkpiyLIzy 2x/SfpAQWYoB/yne+jKhKw9moG8CieMMhFFBsY9s+YnSucP8oHKXY5tfw4XH4+SIj6sysx pXgyjQqaDub8S9Xd3QcmSzsUsn2j92AjZ2VyrgEY0pgo195/phcCpKxROoidhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779639309; a=rsa-sha256; cv=none; b=JWL70Zc6ojOJM80OA/pOJ2xTa7QW8B4hqHLliLlQSlcXbHizfk+A084nVcNZ5TeZyAqVZI m0C8zOg92S4Rzyf0Ql2Q53g192trDqwGm9/6I2amj4qkKus6k3mRiUUmxtQ7N+a3D5xJbE sRLc3hoaLbY5G8ztjupTs5gwfA5EK5FVbobBFJzP521Be8EhshQdjncTZ1vISlL1BFsb39 n/6rL88LESmzcMsFbI/1hjzQUUn/fXf8NScFgUU7QSO4XbaU0A22zB+7qWyN68DZkkOZkA XKMVzyj8+Tlnz6gSy1eE/XASk3Wi8PqX2ka7y0MZn1TPtofRi0Tn5+52NSq1ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639309; 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=YvKc5ZLrZy7HuPir1sddBfNca4QyT6DPjNFGLwIO388=; b=uJ8167x+wJdI4uqskfFLQUIYUeWdUeGcqdnyKdsmNHO/M4SjqS160wWlAnN5uZkwzZc+Hj xUf2PjynH0yGYlVols+oWCPQbdVmTQGreb+c5etuIrJzOjetq0pJvfyZRQyuVwPO934mHQ DNiQ29ISRpqUvf7dbfIhrz4hAwp9uhtefjGrFXIUq1JBC8xEWYr1Uq3RKqxEJB/21gXKTl NcVtLXS6AV5cvk0X/lZ4DoihB+Zts4fsxdjvOyQEHpDROSyNIdZKfrb4rkLrAicNai5Oxr XQmh/LBw/NaA3pqI/wM14xgHuBKp16HOBKX8IHecr+q+ZF72wOKfY3POKul0cA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gNkcs57xgz124T for ; Sun, 24 May 2026 16:15:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 279cb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 24 May 2026 16:15:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: f3ded0fbacfc - stable/15 - tcp: Make RFC 6191 support configurable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f3ded0fbacfc24789bd9e22cada6e0d6b6b88b50 Auto-Submitted: auto-generated Date: Sun, 24 May 2026 16:15:09 +0000 Message-Id: <6a13240d.279cb.38668b1@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f3ded0fbacfc24789bd9e22cada6e0d6b6b88b50 commit f3ded0fbacfc24789bd9e22cada6e0d6b6b88b50 Author: Dag-Erling Smørgrav AuthorDate: 2026-05-18 14:50:14 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-24 16:14:39 +0000 tcp: Make RFC 6191 support configurable Add a default-on per-VIMAGE sysctl for RFC 6191 connection recycling. This makes it possible to merge the change to older branches where it can be switched off by default to minimize risk. MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Modirum MDPay Reviewed by: pouria, marius.h_lden.org, tuexen Differential Revision: https://reviews.freebsd.org/D57045 (cherry picked from commit 2af70d7a384934cee497fb6d75678e04f1416287) tcp: Fix typo in RFC 6191 sysctl Fixes: 2af70d7a3849 ("tcp: Make RFC 6191 support configurable") MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Modirum MDPay (cherry picked from commit 78074011acee4c3e859ffd37009abb56cc6c8c56) --- share/man/man4/tcp.4 | 11 ++++++++- sys/netinet/tcp_timewait.c | 58 +++++++++++++++++++++++++++++----------------- sys/netinet/tcp_var.h | 2 ++ 3 files changed, 49 insertions(+), 22 deletions(-) diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4 index 4c01daf4e14e..8bc1eb858a07 100644 --- a/share/man/man4/tcp.4 +++ b/share/man/man4/tcp.4 @@ -31,7 +31,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 7, 2026 +.Dd May 17, 2026 .Dt TCP 4 .Os .Sh NAME @@ -940,6 +940,10 @@ maximum segment size. This helps throughput in general, but particularly affects short transfers and high-bandwidth large propagation-delay connections. +.It Va rfc6191 +Enable RFC 6191 connection recycling, which allows faster connection +recycling in certain circumstances when the new connection has TCP +timestamps enabled. .It Va sack.enable Enable support for RFC 2018, TCP Selective Acknowledgment option, which allows the receiver to inform the sender about all successfully @@ -1145,6 +1149,11 @@ when trying to use a TCP function block that is not available; .%T "Improving TCP's Robustness to Blind In-Window Attacks" .%O "RFC 5961" .Re +.Rs +.%A "F. Gont" +.%T "Reducing the TIME-WAIT State Using TCP Timestamps" +.%O "RFC 6191" +.Re .Sh HISTORY The .Tn TCP diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c index d90178ee03ec..de367b0786ae 100644 --- a/sys/netinet/tcp_timewait.c +++ b/sys/netinet/tcp_timewait.c @@ -112,6 +112,11 @@ SYSCTL_PROC(_net_inet_tcp, OID_AUTO, nolocaltimewait, &VNET_NAME(nolocaltimewait), 0, sysctl_net_inet_tcp_nolocaltimewait, "CU", "Do not create TCP TIME_WAIT state for local connections"); +VNET_DEFINE(int, tcp_do_rfc6191) = 1; +SYSCTL_INT(_net_inet_tcp, OID_AUTO, rfc6191, CTLFLAG_VNET | CTLFLAG_RW, + &VNET_NAME(tcp_do_rfc6191), 0, + "Enable RFC 6191 (Reduced TIME-WAIT State)"); + static u_int tcp_eff_msl(struct tcpcb *tp) { @@ -259,29 +264,40 @@ tcp_twcheck(struct inpcb *inp, struct tcpopt *to, struct tcphdr *th, } /* - * If a new connection request is received - * while in TIME_WAIT, drop the old connection - * and start over if allowed by RFC 6191. + * If a new connection request is received while in TIME_WAIT, + * drop the old connection and start over if appropriate. + * + * The original rule is to start over if and only if the sequence + * number of the new connection is greater than the last sequence + * number seen on the old connection. + * + * Additionally, RFC 6191 allows restarting if the new connection + * has TCP timestamps enabled and either the old one didn't, or it + * did but the timestamp on the incoming SYN is greater than the + * last timestamp seen on the old connection. + * * Allow UDP port number changes in this case. */ - if (((thflags & (TH_SYN | TH_ACK)) == TH_SYN) && - ((((tp->t_flags & TF_RCVD_TSTMP) != 0) && - ((to->to_flags & TOF_TS) != 0) && - TSTMP_LT(tp->ts_recent, to->to_tsval)) || - (((tp->t_flags & TF_RCVD_TSTMP) == 0) && - ((to->to_flags & TOF_TS) != 0) && - (V_tcp_tolerate_missing_ts == 0)) || - SEQ_GT(th->th_seq, tp->rcv_nxt))) { - /* - * In case we can't upgrade our lock just pretend we have - * lost this packet. - */ - if (INP_TRY_UPGRADE(inp) == 0) - goto drop; - if ((tp = tcp_close(tp)) != NULL) - INP_WUNLOCK(inp); - TCPSTAT_INC(tcps_tw_recycles); - return (true); + if ((thflags & (TH_SYN | TH_ACK)) == TH_SYN) { + bool rfc6191 = false; + + if ((to->to_flags & TOF_TS) != 0 && V_tcp_do_rfc6191) { + rfc6191 = (tp->t_flags & TF_RCVD_TSTMP) != 0 ? + TSTMP_LT(tp->ts_recent, to->to_tsval) : + V_tcp_tolerate_missing_ts == 0; + } + if (rfc6191 || SEQ_GT(th->th_seq, tp->rcv_nxt)) { + /* + * In case we can't upgrade our lock just pretend + * we have lost this packet. + */ + if (INP_TRY_UPGRADE(inp) == 0) + goto drop; + if ((tp = tcp_close(tp)) != NULL) + INP_WUNLOCK(inp); + TCPSTAT_INC(tcps_tw_recycles); + return (true); + } } /* diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 9d1d2bd31674..cdc1a3deb86a 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -1308,6 +1308,7 @@ VNET_DECLARE(int, tcp_tolerate_missing_ts); VNET_DECLARE(int, tcp_do_rfc3042); VNET_DECLARE(int, tcp_do_rfc3390); VNET_DECLARE(int, tcp_do_rfc3465); +VNET_DECLARE(int, tcp_do_rfc6191); VNET_DECLARE(int, tcp_do_newsack); VNET_DECLARE(int, tcp_do_sack); VNET_DECLARE(int, tcp_do_tso); @@ -1359,6 +1360,7 @@ VNET_DECLARE(struct inpcbinfo, tcbinfo); #define V_tcp_do_rfc3042 VNET(tcp_do_rfc3042) #define V_tcp_do_rfc3390 VNET(tcp_do_rfc3390) #define V_tcp_do_rfc3465 VNET(tcp_do_rfc3465) +#define V_tcp_do_rfc6191 VNET(tcp_do_rfc6191) #define V_tcp_do_newsack VNET(tcp_do_newsack) #define V_tcp_do_sack VNET(tcp_do_sack) #define V_tcp_do_tso VNET(tcp_do_tso) From nobody Sun May 24 16:15:10 2026 X-Original-To: dev-commits-src-branches@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 4gNkcv0RMfz6ddrY for ; Sun, 24 May 2026 16:15:11 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gNkct70Hjz3MHx for ; Sun, 24 May 2026 16:15:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639311; 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=Uke3bCGH50Xa+vOhJ8KPVMrHWGHLoQk4BCGP6IUQ1Y0=; b=y31qSRdENacPpg+AeumgSNYCCEXyLeC1NJvIB2hkitrFbpLnygpIWzf6Jz7swzjgw3Rwuw Usk7CftMCjHlPg7PX9CJ8cnG/5lyGbJlF//JEy3EDDEYRg4/KfPXMlxcd0djJ0VzAhM0Iv gpyn1gLlcUbb6+rMmAomhej8fr2XZEjRJ7om3y8SqMtOl6WSSKGfgKiPBR4To3brtFxh5Q h/98GaUkaEpLjqqe/9GIqWg0WGUpp8mJapVeScY5aWDgPPgHZ8qs8G5cQURFT+3+ver/J0 TmxwsUQB876zolzwHpNHAZyZBiu1l6lUX7UFfDh4caeQPHu4vts11MpnlWqI+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779639311; a=rsa-sha256; cv=none; b=xrFYnUwQzOC4LuYd8foLqY7Yb4Hcu3608hSWKLEKEW08Zlt4vViJpFBSB6SO8qkv6F0Aj8 1KYLbE5T+h87R2/DZopNmAS3UxHE8veTsUcqlP9i1iVQ8HRTZHHY3LSF16KXr3otbtHrcp qqFxR5O2/3+2FxyPiAY3B0fCDW/Tr6q9jAn3ldYgfZUQ7669QMEF4MWzyPOO/Y9xQM8+Df 6Y0edv3YA6aXdxVkc3wIwjxcEdge0/CRi1YV9SZo1GSGrY4XHBufHdn3gYsNtHrkGiH4hx ZdubWyg7W6sWmPoIV79MG8EdT9mUPkktAXeoFkuCJ9tywafhca6o2D+vbiE+ow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639311; 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=Uke3bCGH50Xa+vOhJ8KPVMrHWGHLoQk4BCGP6IUQ1Y0=; b=drjXbxLQzwlzfTm+zHcvg/r3n2oOldqlUtuFqVGW/nLCo2z4+F42DeOvkEVYZInWxOmyHg fkfOmJd0fLRDCjyGP26wN/TtCJlVp77WlL0xHRKri0ZlA+mys805xgkEvnocWrIUug1S18 a2EhfG8RbFT+prL3fkkRqJaBPLtdt7C1JKqKwGCrj4cZgvkzKPV1KtXe6wWNJCakETrVT/ ih/EQ+20xqMrq8I+L+qQA6Xmhf9JC3UUO0ZPZMqR3W/x3Ga4AUwFT00cCokHhFvyzT/ZVi 6ZzdBtoLW/Z4ydbaZ+Jju5QTrgT1FwJELPzKK0fpdS/DmLAEZsm2F9ceY7GcDA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gNkct6FTxz1258 for ; Sun, 24 May 2026 16:15:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30e37 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 24 May 2026 16:15:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 0f4fd69ee282 - stable/15 - tmpfs: Overhaul option handling on remount List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0f4fd69ee282b7ab5f23d0a4d3e57ab1ef6ec26c Auto-Submitted: auto-generated Date: Sun, 24 May 2026 16:15:10 +0000 Message-Id: <6a13240e.30e37.687e8170@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=0f4fd69ee282b7ab5f23d0a4d3e57ab1ef6ec26c commit 0f4fd69ee282b7ab5f23d0a4d3e57ab1ef6ec26c Author: Dag-Erling Smørgrav AuthorDate: 2026-05-19 06:54:28 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-24 16:14:39 +0000 tmpfs: Overhaul option handling on remount On remount, we must accept all the same options as on initial mount. For parameters which we're unable to modify on the fly, fail only if the new value is different from the existing one. PR: 295096 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D57044 (cherry picked from commit 1cfc208a07b64a64377a4f8fe51c28f588a929cf) --- sys/fs/tmpfs/tmpfs_vfsops.c | 100 +++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 38 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 431893b77bb9..5a9b9782b9da 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -93,10 +93,6 @@ static const char *tmpfs_opts[] = { "export", "union", "nonc", "nomtime", "nosymfollow", "pgread", NULL }; -static const char *tmpfs_updateopts[] = { - "from", "easize", "export", "nomtime", "size", "nosymfollow", NULL -}; - static int tmpfs_update_mtime_lazy_filter(struct vnode *vp, void *arg) { @@ -325,6 +321,7 @@ tmpfs_mount(struct mount *mp) sizeof(struct tmpfs_dirent) + sizeof(struct tmpfs_node)); struct tmpfs_mount *tmp; struct tmpfs_node *root; + struct vfsoptlist *opts; int error; bool nomtime, nonc, pgread; /* Size counters. */ @@ -338,44 +335,71 @@ tmpfs_mount(struct mount *mp) struct vattr va; - if (vfs_filteropt(mp->mnt_optnew, tmpfs_opts)) + opts = mp->mnt_optnew; + if (vfs_filteropt(opts, tmpfs_opts)) return (EINVAL); if (mp->mnt_flag & MNT_UPDATE) { - /* Only support update mounts for certain options. */ - if (vfs_filteropt(mp->mnt_optnew, tmpfs_updateopts) != 0) - return (EOPNOTSUPP); tmp = VFS_TO_TMPFS(mp); - if (vfs_getopt_size(mp->mnt_optnew, "size", &size_max) == 0) { - /* - * On-the-fly resizing is not supported (yet). We still - * need to have "size" listed as "supported", otherwise - * trying to update fs that is listed in fstab with size - * parameter, say trying to change rw to ro or vice - * versa, would cause vfs_filteropt() to bail. - */ - if (size_max != tmp->tm_size_max) - return (EOPNOTSUPP); - } - if (vfs_getopt_size(mp->mnt_optnew, "easize", &ea_max_size) == 0) { + + /* + * These options cannot (yet) be modified on the fly, but + * mount(8) will still pass them when remounting, so we + * will silently ignore them as long as the value is + * unchanged. + */ + if (vfs_scanopt(opts, "gid", "%d", &root_gid) == 1 && + root_gid != tmp->tm_root->tn_gid) + return (EOPNOTSUPP); + if (vfs_scanopt(opts, "uid", "%d", &root_uid) == 1 && + root_uid != tmp->tm_root->tn_uid) + return (EOPNOTSUPP); + if (vfs_scanopt(opts, "mode", "%ho", &root_mode) == 1 && + (root_mode & S_IFMT) != (tmp->tm_root->tn_mode & S_IFMT)) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "inodes", &nodes_max) == 0 && + nodes_max != 0 && nodes_max != tmp->tm_nodes_max) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "size", &size_max) == 0 && + size_max != 0 && size_max != tmp->tm_size_max) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "maxfilesize", &maxfilesize) == 0 && + maxfilesize != 0 && maxfilesize != tmp->tm_maxfilesize) + return (EOPNOTSUPP); + if (tmp->tm_nonc != + (vfs_getopt(opts, "nonc", NULL, NULL) == 0)) + return (EOPNOTSUPP); + if (tmp->tm_pgread != + (vfs_getopt(opts, "pgread", NULL, NULL) == 0)) + return (EOPNOTSUPP); + + /* + * These options can be modified. + */ + if (vfs_getopt_size(opts, "easize", &ea_max_size) != 0) tmp->tm_ea_memory_max = ea_max_size; - } - if (vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) && - !tmp->tm_ronly) { + tmp->tm_nomtime = (vfs_getopt(opts, "nomtime", NULL, 0) == 0); + + /* + * Handle read-write to read-only or vice versa. + */ + if (vfs_flagopt(opts, "ro", NULL, 0) && !tmp->tm_ronly) { /* RW -> RO */ return (tmpfs_rw_to_ro(mp)); - } else if (!vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) && - tmp->tm_ronly) { + } + if (!vfs_flagopt(opts, "ro", NULL, 0) && tmp->tm_ronly) { /* RO -> RW */ tmp->tm_ronly = 0; MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_RDONLY; MNT_IUNLOCK(mp); } - tmp->tm_nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, - 0) == 0; + + /* + * Check if fast path lookup is still supported. + */ MNT_ILOCK(mp); - if ((mp->mnt_flag & MNT_UNION) == 0) { + if (!tmp->tm_nonc && (mp->mnt_flag & MNT_UNION) == 0) { mp->mnt_kern_flag |= MNTK_FPLOOKUP; } else { mp->mnt_kern_flag &= ~MNTK_FPLOOKUP; @@ -391,25 +415,25 @@ tmpfs_mount(struct mount *mp) return (error); if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "gid", "%d", &root_gid) != 1) + vfs_scanopt(opts, "gid", "%d", &root_gid) != 1) root_gid = va.va_gid; if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "uid", "%d", &root_uid) != 1) + vfs_scanopt(opts, "uid", "%d", &root_uid) != 1) root_uid = va.va_uid; if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "mode", "%ho", &root_mode) != 1) + vfs_scanopt(opts, "mode", "%ho", &root_mode) != 1) root_mode = va.va_mode; - if (vfs_getopt_size(mp->mnt_optnew, "inodes", &nodes_max) != 0) + if (vfs_getopt_size(opts, "inodes", &nodes_max) != 0) nodes_max = 0; - if (vfs_getopt_size(mp->mnt_optnew, "size", &size_max) != 0) + if (vfs_getopt_size(opts, "size", &size_max) != 0) size_max = 0; - if (vfs_getopt_size(mp->mnt_optnew, "maxfilesize", &maxfilesize) != 0) + if (vfs_getopt_size(opts, "maxfilesize", &maxfilesize) != 0) maxfilesize = 0; - if (vfs_getopt_size(mp->mnt_optnew, "easize", &ea_max_size) != 0) + if (vfs_getopt_size(opts, "easize", &ea_max_size) != 0) ea_max_size = 0; - nonc = vfs_getopt(mp->mnt_optnew, "nonc", NULL, NULL) == 0; - nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, NULL) == 0; - pgread = vfs_getopt(mp->mnt_optnew, "pgread", NULL, NULL) == 0; + nonc = vfs_getopt(opts, "nonc", NULL, NULL) == 0; + nomtime = vfs_getopt(opts, "nomtime", NULL, NULL) == 0; + pgread = vfs_getopt(opts, "pgread", NULL, NULL) == 0; /* Do not allow mounts if we do not have enough memory to preserve * the minimum reserved pages. */ From nobody Sun May 24 16:15:15 2026 X-Original-To: dev-commits-src-branches@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 4gNkd00clfz6ddtx for ; Sun, 24 May 2026 16:15:16 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gNkcz4nZ9z3MRn for ; Sun, 24 May 2026 16:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639315; 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=c3MfG8AOUFvz7ykm+sfKbFFRPWcJh3UKlNzu4AcStew=; b=N3MkyEYaTKr+IRn4201bCDiFSsMsLqq6h9PLuVGzsAgQiUj6HqhbCf9LYTYbLmdmyvkGxp CLjH6m7Fyf9EArfdbRND0sEuCGeU6HSymlB/GbYzb3YW/GmRDmq//wy2y3mhwQBwqrptiY Wc0+/PEdKfScCIYrimBOSwGx7lYn0U1tAyXxRYus6PWaPOOHuxus0OVr7Lp1WnZrz7JsJQ tJ1hReuL4X7anhV5kcNe3eCLJsvQ32ZCYUzqCuCh44bb1wNqvRZuWYOLVObiyZVbCJEX4a Q7YtNvroHTV0ba7vvDIqxk2OyrWc9TSdJ6D4xN+mSWTGRklXMA91jo7vp90F8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779639315; a=rsa-sha256; cv=none; b=dwBqvr8v9wzMc2jAb/n7a9dy92HOVoR7bNqAZ76n1Qj46bk7mLWsUYObNVdqBa1/mB6PrS jfu0ILt1NctG8zAh0LWFCMk4gs1p+xu6dt6wDbIhfbmjzaNS7snvM7dVtXsGQrN1BQtHzh OuXd8yvEzEwIHgCQfxOPQLX8oOQSkFZf/nyj8a6Kyx0i8ZM7fEIifVlg+RDiSdJkQxDqb4 5RhChnlj73cFLaFKfC6brZLlyrxzZlra6P8FU6/CMTGT+SrLvCP48pMe6LSzd5U8SXY/eP k4Cq4y5BnKMi4+Bw0HmopB55bpDo/Udk/FfEq/IGdo395tQ+Sm4TvYkiXO/P5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779639315; 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=c3MfG8AOUFvz7ykm+sfKbFFRPWcJh3UKlNzu4AcStew=; b=SMJsYeUXhihJ1sl3DQfKCYsWcye6BDA55w43j3/UX4HU8AKRnQSSIug7haSmEoIliXykcV U8vl10ZFPL/yx9FVmns534FSDftqjNkhuZHLFeBAW+b7E9r2rgkKNVBIPrYOkfjwd8zUYU rWJ/MSODnPtzlXvVF/mp+I6rFPr6bhP36xP7GUNYybyn/xULFD4wgmlrxm9E4fE1Q1oDWG 46/44wme0MrlomNxEDYiEM8eKxh3Rx0FEQ1gGJ0nq7nmNS6V6WB0mX0Gr50yLOBAmAecmT NdUVGQeFbf2qbE6IdOmuSOR2UIAyjyIxkx6Mfa3sybKUVgsac2XefM1WOhgfGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gNkcz4MNXz11ns for ; Sun, 24 May 2026 16:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31884 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 24 May 2026 16:15:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 09935bf8af36 - stable/14 - tmpfs: Overhaul option handling on remount List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 09935bf8af363af75fc94b65bb3c33e323e9893a Auto-Submitted: auto-generated Date: Sun, 24 May 2026 16:15:15 +0000 Message-Id: <6a132413.31884.6c7820b0@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=09935bf8af363af75fc94b65bb3c33e323e9893a commit 09935bf8af363af75fc94b65bb3c33e323e9893a Author: Dag-Erling Smørgrav AuthorDate: 2026-05-19 06:54:28 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-05-24 16:14:50 +0000 tmpfs: Overhaul option handling on remount On remount, we must accept all the same options as on initial mount. For parameters which we're unable to modify on the fly, fail only if the new value is different from the existing one. PR: 295096 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D57044 (cherry picked from commit 1cfc208a07b64a64377a4f8fe51c28f588a929cf) --- sys/fs/tmpfs/tmpfs_vfsops.c | 100 +++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 38 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index c404eb81a8d2..73feb6d0b4e0 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -94,10 +94,6 @@ static const char *tmpfs_opts[] = { "export", "union", "nonc", "nomtime", "nosymfollow", "pgread", NULL }; -static const char *tmpfs_updateopts[] = { - "from", "easize", "export", "nomtime", "size", "nosymfollow", NULL -}; - static int tmpfs_update_mtime_lazy_filter(struct vnode *vp, void *arg) { @@ -326,6 +322,7 @@ tmpfs_mount(struct mount *mp) sizeof(struct tmpfs_dirent) + sizeof(struct tmpfs_node)); struct tmpfs_mount *tmp; struct tmpfs_node *root; + struct vfsoptlist *opts; int error; bool nomtime, nonc, pgread; /* Size counters. */ @@ -339,44 +336,71 @@ tmpfs_mount(struct mount *mp) struct vattr va; - if (vfs_filteropt(mp->mnt_optnew, tmpfs_opts)) + opts = mp->mnt_optnew; + if (vfs_filteropt(opts, tmpfs_opts)) return (EINVAL); if (mp->mnt_flag & MNT_UPDATE) { - /* Only support update mounts for certain options. */ - if (vfs_filteropt(mp->mnt_optnew, tmpfs_updateopts) != 0) - return (EOPNOTSUPP); tmp = VFS_TO_TMPFS(mp); - if (vfs_getopt_size(mp->mnt_optnew, "size", &size_max) == 0) { - /* - * On-the-fly resizing is not supported (yet). We still - * need to have "size" listed as "supported", otherwise - * trying to update fs that is listed in fstab with size - * parameter, say trying to change rw to ro or vice - * versa, would cause vfs_filteropt() to bail. - */ - if (size_max != tmp->tm_size_max) - return (EOPNOTSUPP); - } - if (vfs_getopt_size(mp->mnt_optnew, "easize", &ea_max_size) == 0) { + + /* + * These options cannot (yet) be modified on the fly, but + * mount(8) will still pass them when remounting, so we + * will silently ignore them as long as the value is + * unchanged. + */ + if (vfs_scanopt(opts, "gid", "%d", &root_gid) == 1 && + root_gid != tmp->tm_root->tn_gid) + return (EOPNOTSUPP); + if (vfs_scanopt(opts, "uid", "%d", &root_uid) == 1 && + root_uid != tmp->tm_root->tn_uid) + return (EOPNOTSUPP); + if (vfs_scanopt(opts, "mode", "%ho", &root_mode) == 1 && + (root_mode & S_IFMT) != (tmp->tm_root->tn_mode & S_IFMT)) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "inodes", &nodes_max) == 0 && + nodes_max != 0 && nodes_max != tmp->tm_nodes_max) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "size", &size_max) == 0 && + size_max != 0 && size_max != tmp->tm_size_max) + return (EOPNOTSUPP); + if (vfs_getopt_size(opts, "maxfilesize", &maxfilesize) == 0 && + maxfilesize != 0 && maxfilesize != tmp->tm_maxfilesize) + return (EOPNOTSUPP); + if (tmp->tm_nonc != + (vfs_getopt(opts, "nonc", NULL, NULL) == 0)) + return (EOPNOTSUPP); + if (tmp->tm_pgread != + (vfs_getopt(opts, "pgread", NULL, NULL) == 0)) + return (EOPNOTSUPP); + + /* + * These options can be modified. + */ + if (vfs_getopt_size(opts, "easize", &ea_max_size) != 0) tmp->tm_ea_memory_max = ea_max_size; - } - if (vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) && - !tmp->tm_ronly) { + tmp->tm_nomtime = (vfs_getopt(opts, "nomtime", NULL, 0) == 0); + + /* + * Handle read-write to read-only or vice versa. + */ + if (vfs_flagopt(opts, "ro", NULL, 0) && !tmp->tm_ronly) { /* RW -> RO */ return (tmpfs_rw_to_ro(mp)); - } else if (!vfs_flagopt(mp->mnt_optnew, "ro", NULL, 0) && - tmp->tm_ronly) { + } + if (!vfs_flagopt(opts, "ro", NULL, 0) && tmp->tm_ronly) { /* RO -> RW */ tmp->tm_ronly = 0; MNT_ILOCK(mp); mp->mnt_flag &= ~MNT_RDONLY; MNT_IUNLOCK(mp); } - tmp->tm_nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, - 0) == 0; + + /* + * Check if fast path lookup is still supported. + */ MNT_ILOCK(mp); - if ((mp->mnt_flag & MNT_UNION) == 0) { + if (!tmp->tm_nonc && (mp->mnt_flag & MNT_UNION) == 0) { mp->mnt_kern_flag |= MNTK_FPLOOKUP; } else { mp->mnt_kern_flag &= ~MNTK_FPLOOKUP; @@ -392,25 +416,25 @@ tmpfs_mount(struct mount *mp) return (error); if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "gid", "%d", &root_gid) != 1) + vfs_scanopt(opts, "gid", "%d", &root_gid) != 1) root_gid = va.va_gid; if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "uid", "%d", &root_uid) != 1) + vfs_scanopt(opts, "uid", "%d", &root_uid) != 1) root_uid = va.va_uid; if (mp->mnt_cred->cr_ruid != 0 || - vfs_scanopt(mp->mnt_optnew, "mode", "%ho", &root_mode) != 1) + vfs_scanopt(opts, "mode", "%ho", &root_mode) != 1) root_mode = va.va_mode; - if (vfs_getopt_size(mp->mnt_optnew, "inodes", &nodes_max) != 0) + if (vfs_getopt_size(opts, "inodes", &nodes_max) != 0) nodes_max = 0; - if (vfs_getopt_size(mp->mnt_optnew, "size", &size_max) != 0) + if (vfs_getopt_size(opts, "size", &size_max) != 0) size_max = 0; - if (vfs_getopt_size(mp->mnt_optnew, "maxfilesize", &maxfilesize) != 0) + if (vfs_getopt_size(opts, "maxfilesize", &maxfilesize) != 0) maxfilesize = 0; - if (vfs_getopt_size(mp->mnt_optnew, "easize", &ea_max_size) != 0) + if (vfs_getopt_size(opts, "easize", &ea_max_size) != 0) ea_max_size = 0; - nonc = vfs_getopt(mp->mnt_optnew, "nonc", NULL, NULL) == 0; - nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, NULL) == 0; - pgread = vfs_getopt(mp->mnt_optnew, "pgread", NULL, NULL) == 0; + nonc = vfs_getopt(opts, "nonc", NULL, NULL) == 0; + nomtime = vfs_getopt(opts, "nomtime", NULL, NULL) == 0; + pgread = vfs_getopt(opts, "pgread", NULL, NULL) == 0; /* Do not allow mounts if we do not have enough memory to preserve * the minimum reserved pages. */