From nobody Mon Sep 2 04:46:15 2024 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 4Wxx6J0ZLsz5MRRf; Mon, 02 Sep 2024 04:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wxx6H5MNnz4sVN; Mon, 2 Sep 2024 04:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725252375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ox3bFwbAaDzKJojYQJmy9nHrPrDp9tb6ohNVTbkDQOs=; b=JBGV7jo1NpJLGQDV9bxI0tAXEXDRkgPfrjoNhfiSEcri4HMkiTXE9A1U5Eq4u/ieacA7oY bHuW6XrbUwFSyLlGXU9GpzN7X9OXQTVXlcuc5Rr8y7kk0RsgUpI2TMS2WzWIz9ZK4+MlS8 yrZpn0qx8wIqZ8N09zbVXMXPjqxQztMGH3eWprW8i6fwFxGFEkdZea+fy0QgipmSJQ6kPI JvgRWxmLbolwye3St1wqF+zLPWXQxmBgagGlKsQAqVfB82Mq4YDVMG9Hgle409foE/9HZ9 BK0lGdSzw8ywnP6LDdl3t+KLfXHxg8uxzpa1lyrMs5hSOVvV0e2BJOvkjkJBlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725252375; a=rsa-sha256; cv=none; b=IHOEqhLcD8JT/5Ak30r3IWOPIqgteBGy1AeZSx0u48LHXRN7LfHgQrL/KtcoaMDuFzq/Wi 3JdYxCEBgoYMCMewiHCWHdeIhjtlzK3NQEIKDjDS1Xk0uPtz5vuFWv53G8DIy7K+4A5Cy2 EN2KeG3yea+6ySq7nsUOjoDwTaOzINJjjYC2enSbZ83arzR5K4halp+leHpRb44otdotc2 NjEDOf19Hc0O6j32Q3836oCsM2bMZSBwvsCES9bH36JNU35Oj/xV6zlfjkQnNLclkSP60M MR3pHMZyE3FS6vztxMiVawbjQXCRjTuZlhl6N4zQ7RQ+j/OsY3tSs1VByFu4ew== 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=1725252375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ox3bFwbAaDzKJojYQJmy9nHrPrDp9tb6ohNVTbkDQOs=; b=s+XWA6oX9iqsi41tjid94Y2rLNRzR69nLNLtXNvkBLRtD46MNTb+De1WZcGlhOeh147tsg niBJ6RMcXPG0RM/fT8D+MXncP1wzONMZJtj1rDMpcExvKl8qafxrzdfW/7P3X/yG7Qb2rW REwYKfE9CrajLoDt3UzDqe/eMyvoBOprWXFOCH7OHA6QuF3A/9akBW9JePqWPY3PbMHSPw LZEBne8ZISVgznD5DR21e13NnNY1oDdngwFdOOUA5KdwBHuaCEBifMRUDU0i6A9P00Ug+r D+eKyP/F1dOkPxNPVPb+aOOMIcjXCQuqweRajPikyK+FUS8YTNk94OqBIlRccg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wxx6H4dKFzyZj; Mon, 2 Sep 2024 04:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4824kFoC089731; Mon, 2 Sep 2024 04:46:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4824kFj3089728; Mon, 2 Sep 2024 04:46:15 GMT (envelope-from git) Date: Mon, 2 Sep 2024 04:46:15 GMT Message-Id: <202409020446.4824kFj3089728@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: 3e6d533dd174 - stable/14 - u3g: add SIERRA AC340U 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3e6d533dd1746ba1809da965a1767bcbe59b3d56 Auto-Submitted: auto-generated The branch stable/14 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=3e6d533dd1746ba1809da965a1767bcbe59b3d56 commit 3e6d533dd1746ba1809da965a1767bcbe59b3d56 Author: Franco Fichtner AuthorDate: 2024-08-23 11:26:38 +0000 Commit: Xin LI CommitDate: 2024-09-02 04:46:02 +0000 u3g: add SIERRA AC340U Pull request: https://github.com/freebsd/freebsd-src/pull/1397 MFC after: 3 days (cherry picked from commit 4b6e76eff8b63d691c05772520849b6c94d535e8) --- sys/dev/usb/serial/u3g.c | 1 + sys/dev/usb/usbdevs | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/dev/usb/serial/u3g.c b/sys/dev/usb/serial/u3g.c index 88f94ddaecc6..28a403a846bd 100644 --- a/sys/dev/usb/serial/u3g.c +++ b/sys/dev/usb/serial/u3g.c @@ -568,6 +568,7 @@ static const STRUCT_USB_HOST_ID u3g_devs[] = { U3G_DEV(SIERRA, MC5728, 0), U3G_DEV(SIERRA, MC7354, 0), U3G_DEV(SIERRA, MC7355, 0), + U3G_DEV(SIERRA, AC340U, 0), U3G_DEV(SIERRA, MC7430, 0), U3G_DEV(SIERRA, MC8700, 0), U3G_DEV(SIERRA, MC8755, 0), diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index 2a217b1eaf17..39bfd258502b 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -4363,6 +4363,7 @@ product SIERRA E6893 0x6893 E6893 product SIERRA MC8700 0x68A3 MC8700 product SIERRA MC7354 0x68C0 MC7354 product SIERRA MC7355 0x9041 MC7355 +product SIERRA AC340U 0x9051 Sierra Wireless AirCard 340U product SIERRA MC7430 0x9071 Sierra Wireless MC7430 Qualcomm Snapdragon X7 LTE-A product SIERRA AC313U 0x68aa Sierra Wireless AirCard 313U product SIERRA TRUINSTALL 0x0fff Aircard Tru Installer From nobody Mon Sep 2 04:46:54 2024 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 4Wxx721pT7z5MRC7; Mon, 02 Sep 2024 04:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wxx721G8bz4scB; Mon, 2 Sep 2024 04:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725252414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NgkU8RuBY9W3rCKgCSbCRKFu5TJQTEpRG/OH8zxLs/0=; b=gCFUDOaRTkwOwegoO1k7Wl6tJzlFdhdDs4O2ukUkFLqWP59wYIezitmszNxityUwVZbHFY Emycr4D87tFhBOLpy1sgjt/KXSYhJcvJQXCbkUaOcCy/8wivOkvKCcEQ9O5IrFUaZPJVJ7 YxJdeF8SAECJPZDGMnYaMCH4XWLbhokBCUp83DXH1AySLntKkJHQnBczgDR7UtphrBI0lo bG4Sgj+7G9f8JWWU+ajPfgxcR9fiTQLgWlfV+TjcpZsg/5se5f83qkTCqbdeuO0oFZe4mt zNuv7gGNtuJzGLGKd8HgeulprQdvIGPLKyaglz++24Y7YKkDH5HLsS9W8bUgAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725252414; a=rsa-sha256; cv=none; b=D+C9eHyudvgDdjgV6Cc1AjxGqgMY/qU+bSNkgcKdWggikfvKyAnarGovOUydg7cCNtd3r6 8mFNUvwr+IqoUB3Xq+YpTamtwbla49aiDv6eNnUkalSx3FvITw5fhRiILyPc1njmH+AMBY YCy37RJAeUQlocQ2a79kqna66V063d6HDNek3x/y79ZpycfvzeWbiY869VLJB8CE/Q0W/0 LcGvL6UTgIHgio/h31Fd2IN5ylfaGDc7ezzpbMeoiEufpaIm/1B/aa6SlMjqWzgC7tcKeH Vmlz++ROyGFi0vUqx/X/GVyBhpqNVFU5upB0KfFw63MF/ztWtvXr9FJffIdxNw== 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=1725252414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NgkU8RuBY9W3rCKgCSbCRKFu5TJQTEpRG/OH8zxLs/0=; b=XoQUjpDL7UKb4F37Rft+U1RBLFrvvTew40slzYEavzvxVUzTjB3yHSXgkgi8Jd5titLDDM A+Zsauo51C2M+XM1t5ZpfHP3wl9xO0jzDUeK+oEh/iPgJY7EnLfSQtd+4dPrIc/9xNOKQy W4jWvCEZmylWlDM3i3/ZB4YGBZdSbVsRva+6VvIqsqlP5Bnyu0fKb/okcV9JLTW3MsDEgA H2p/6ZqOAhIh+WF3cp1U6zwG5rj2nZjd1w+SdQwXUQxGrY/dsC7tJ5g4dlT79jr/JcO27r faDM4uwL3Y3CMh6NciTxzYHE/z072rxaXgenekSs6ScgegyOqpxbFV2VWNtdOA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wxx720nZPzxm6; Mon, 2 Sep 2024 04:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4824ksWK089958; Mon, 2 Sep 2024 04:46:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4824ksKG089955; Mon, 2 Sep 2024 04:46:54 GMT (envelope-from git) Date: Mon, 2 Sep 2024 04:46:54 GMT Message-Id: <202409020446.4824ksKG089955@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: feb14552cc49 - stable/13 - u3g: add SIERRA AC340U 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: feb14552cc494ca893e059d308b3f1040dda32b5 Auto-Submitted: auto-generated The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=feb14552cc494ca893e059d308b3f1040dda32b5 commit feb14552cc494ca893e059d308b3f1040dda32b5 Author: Franco Fichtner AuthorDate: 2024-08-23 11:26:38 +0000 Commit: Xin LI CommitDate: 2024-09-02 04:46:43 +0000 u3g: add SIERRA AC340U Pull request: https://github.com/freebsd/freebsd-src/pull/1397 (cherry picked from commit 4b6e76eff8b63d691c05772520849b6c94d535e8) --- sys/dev/usb/serial/u3g.c | 1 + sys/dev/usb/usbdevs | 1 + 2 files changed, 2 insertions(+) diff --git a/sys/dev/usb/serial/u3g.c b/sys/dev/usb/serial/u3g.c index 986e243c60d3..4bfe0ee67a65 100644 --- a/sys/dev/usb/serial/u3g.c +++ b/sys/dev/usb/serial/u3g.c @@ -550,6 +550,7 @@ static const STRUCT_USB_HOST_ID u3g_devs[] = { U3G_DEV(SIERRA, MC5728, 0), U3G_DEV(SIERRA, MC7354, 0), U3G_DEV(SIERRA, MC7355, 0), + U3G_DEV(SIERRA, AC340U, 0), U3G_DEV(SIERRA, MC7430, 0), U3G_DEV(SIERRA, MC8700, 0), U3G_DEV(SIERRA, MC8755, 0), diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index a32a53d49735..0ce6092c423e 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -4342,6 +4342,7 @@ product SIERRA E6893 0x6893 E6893 product SIERRA MC8700 0x68A3 MC8700 product SIERRA MC7354 0x68C0 MC7354 product SIERRA MC7355 0x9041 MC7355 +product SIERRA AC340U 0x9051 Sierra Wireless AirCard 340U product SIERRA MC7430 0x9071 Sierra Wireless MC7430 Qualcomm Snapdragon X7 LTE-A product SIERRA AC313U 0x68aa Sierra Wireless AirCard 313U product SIERRA TRUINSTALL 0x0fff Aircard Tru Installer From nobody Mon Sep 2 05:02:37 2024 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 4WxxT95FSqz5MSbn; Mon, 02 Sep 2024 05:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WxxT94MLcz4ttJ; Mon, 2 Sep 2024 05:02:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725253357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PkH5UxA7PpQe4abPLu7zwV1f2TFB3s1f/82kxBsqSbM=; b=BhrPL8RwViEKjqsM6/wJxa5TTRq8gvhqzDgEn+oi5PEOuuPtobINUBSBLflB1CTWscol9f p3pxFD+olqm8eNuONhpEGC6wH//ih09zuxNF/5ES8I20M1WPDf2im9njp2LK+Fq7qnKLul NUro/Y8Ng7GxNrrTTCYNWRg7k9om8EjZ8Mkt361toEsr5eWCJxEQmA4A2JdHsJisUfG48P 9BLyCZuoPJfl/HUa8CBh0X1wDZKcTF5sUTfH9EaTRvTBTLOlQq//+EU5ezuQohVb0umKzk FWCg2amCnkthXhccaC3pRLDq1ANMH4oIXRx33Qc2NqqBnno8IkMo1yC0TMQ9Gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725253357; a=rsa-sha256; cv=none; b=BQ/k8VXtYz/p9eEVIx2N14qIciIS9JrfocDGiTfZNZuOhkQHFv6Gs3KLga0EQLbX1nv6J5 ehoUWL2F5/zTKTnG2VyzFYIlyxtEpaLy2gbe2jrKdblKAagGopEYq04KlKNxD0MpiBygDa 8YiDMgmRMjxXE7kxqiEMwMaDhdGlhk1PrPOY6YV8DxER4mjisblGvgLyQnMhDFSqucrf1t VNPBkfGcUsnLNMqAf6ZD8Qh246DovkCFaTbFungIwGJTLHwCUIQugGUFLeCa9efzZZjMM/ fxStdkKhdQyMi6smOGx9xOUfL02wsQDyNnU12dV8HVg76vyZ5HbjmOOOsgOWeA== 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=1725253357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PkH5UxA7PpQe4abPLu7zwV1f2TFB3s1f/82kxBsqSbM=; b=MBMKAYWGbVfUhBLyM5TbYo3pbMC6gngNdnN7ghmxuRRRYc113ZWI3xJG33E9ZE4BmwGciA ftJw7YfCSxNWn15SDUa5RjoyT6uZiLsTgRoTExYJ1Nkpid3QWO0lWr2NTgg/3VQCR7FwDb jb8BOyVxGa4oz97yzGZz0WkMoypivwc5RvKXHDo4Lku2qyAI9Zs1q0/hWktfReh7b/Wxn4 1FTU6jEMeAHySUG98OmcAatjIUCj4mZrZhuvrsl2EIapzvEUthM8f7S3oiGrSTbsqDqCkC dv3S+Hlbuc5Xzh8SGuNQFRqH6f+u7wz/UKcWXGwKbnlqZHtn1smMw1urzfvJTg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WxxT93vjhzyyN; Mon, 2 Sep 2024 05:02:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48252buB024118; Mon, 2 Sep 2024 05:02:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48252bkn024115; Mon, 2 Sep 2024 05:02:37 GMT (envelope-from git) Date: Mon, 2 Sep 2024 05:02:37 GMT Message-Id: <202409020502.48252bkn024115@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: b6728c3f0b47 - stable/14 - init_main: Sprinkle const qualifiers where appropriate 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b6728c3f0b47408610373fc2744e98f3178ddf83 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=b6728c3f0b47408610373fc2744e98f3178ddf83 commit b6728c3f0b47408610373fc2744e98f3178ddf83 Author: Zhenlei Huang AuthorDate: 2024-08-21 10:01:30 +0000 Commit: Zhenlei Huang CommitDate: 2024-09-02 05:01:39 +0000 init_main: Sprinkle const qualifiers where appropriate No functional change intended. MFC after: 1 week (cherry picked from commit 7412517f2947342d599e42dd563fd6b3a7656e29) --- sys/kern/init_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 8d650c7ea084..917c3ea07baf 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -349,13 +349,13 @@ mi_startup(void) } static void -print_caddr_t(void *data) +print_caddr_t(const void *data) { - printf("%s", (char *)data); + printf("%s", (const char *)data); } static void -print_version(void *data __unused) +print_version(const void *data __unused) { int len; From nobody Mon Sep 2 05:02:38 2024 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 4WxxTB62l4z5MSW7; Mon, 02 Sep 2024 05:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WxxTB5b59z4tlf; Mon, 2 Sep 2024 05:02:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725253358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UdiAlk663sAyqyMYx4UP29QD7VACuBKH9HclWExmheA=; b=X50ehUTcenT/5XappHL+BwU++PzvjgGQ1S1atLkS2SzSQmVSTrkNslvPTv/mQIPqrFygrw 29E23H6klkrr7OUGfwkVd6s572coFeBzsbH0/mEqjem4fUSfwdht21CQALXmn5/HejShfR rI+Fcd6KwgihfztCd0xPI4+Qk3FU1Vwy4bHesO3XWuYo4jWvGC+d1au0vTrdbWua9d6lqB ZgPU4I9gw8vhhONqI+OnMRMZ4QdcAQtazK5B99LyQK+dXyP1vyNRD4VieeNzjDt6G78GRk KGL+SNTL7tmqkrr3p3YYOgTzxH6fON0MNg1YmjhIVlhkhPnzHIAt1B138/tQ8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725253358; a=rsa-sha256; cv=none; b=Nd72y/0Gl4xlILNAkxuuZ6aSM3eGwVuVQkm1dI8A2GOtas5JIV/vc0I2K+E99YGwtV4KcH 4fVAyzPCB+IW6BYsa5UpJj/PI73K51SGSPwldWNU9C7A6yQEChUyR3QBbRBvRm0RJrO2PC UI8Mhee5Q+IXD4cJznzSaqQr/h7FQNVuovt/g9eqD8M9F4/Iu8CGYQV6rwCRCI9a39F2l2 F+TzU0Rb0hvjmMbsy64IkAM8Uhw34f4v3N62sh6E5cc9K13QpHayPaAO1SKyS0w9eAEt3C +yGzsPRgI57K7uSD09r+bYsr3u6NNodDqko7ZZDboVCsFEw8u8NOuTXGhqNOlw== 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=1725253358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UdiAlk663sAyqyMYx4UP29QD7VACuBKH9HclWExmheA=; b=vQcM92JjtLdAJGvMsP+L0951tZn3zaDxSkayx33TlMFW91tYBJqvVtEsS8RZaSCGo2MLTO I8OkawEp5JlsFuGp/QQnTlg399wZMrsUKHesV2+zNWMsJKm1zbutCvARlW/oTpbRJTRXhe 9sfABbNhP8O0qSeUyVG0HavWqUKUqsF6q7B2shOr0+o9Pbe8MImqK93Eq/zIqVOvO22SaP eI+H6vv20e7TrgLao18ovRq3jL6mFV3eUP1NPkEH09tPkasYjrEsNIVv9/2GQlFibg0YEY liFeZpVkcHZadVgi2q1Cim5ZvMMWywOV488Ah/STw2gj4IRzyCaScw/dL847bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WxxTB5B7lzyyP; Mon, 2 Sep 2024 05:02:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48252cHI024179; Mon, 2 Sep 2024 05:02:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48252chY024176; Mon, 2 Sep 2024 05:02:38 GMT (envelope-from git) Date: Mon, 2 Sep 2024 05:02:38 GMT Message-Id: <202409020502.48252chY024176@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: d6271b6507b2 - stable/14 - kern: Align the declaration of kernconfstring with its definition 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d6271b6507b2404bd03f21f76a4e8394e083ae80 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=d6271b6507b2404bd03f21f76a4e8394e083ae80 commit d6271b6507b2404bd03f21f76a4e8394e083ae80 Author: Zhenlei Huang AuthorDate: 2024-08-22 10:00:34 +0000 Commit: Zhenlei Huang CommitDate: 2024-09-02 05:01:40 +0000 kern: Align the declaration of kernconfstring with its definition It is defined as const char[] in config.c which is auto generated by usr.sbin/config/kernconf.tmpl . While here prefer macro SYSCTL_CONST_STRING to avoid casting. MFC after: 1 week (cherry picked from commit 0f64fc6a3486454ad708f517633f930e611fd6d2) --- sys/kern/kern_mib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index 8ce09a47ef58..10bf4cde6489 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -460,10 +460,10 @@ SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, #ifdef INCLUDE_CONFIG_FILE /* Actual kernel configuration options. */ -extern char kernconfstring[]; +extern const char kernconfstring[]; -SYSCTL_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD, - kernconfstring, 0, "Kernel configuration file"); +SYSCTL_CONST_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD, + kernconfstring, "Kernel configuration file"); #endif static int From nobody Mon Sep 2 05:04:10 2024 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 4WxxVy3Nt1z5MSyr; Mon, 02 Sep 2024 05:04: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WxxVy2tN3z4vfW; Mon, 2 Sep 2024 05:04:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725253450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=72dMyl9tgxRYW64uzSz/XhYrlnSU3wN8AyyWPHt3++4=; b=ol/D+rMDDr4Bnur5M0Sm+s/KDZ4obnxTUj2VIs8YiFEfkf02mD0bDqHr9KiMsXR9rKmJbM pm6uIO//zbAqeuzmDhQgtk+pOrNBYIuNDuELGrLCDgHQhomWHJC1KYTYNo/erQvDPicNKy Hh+8XBkpEEGbt/1tldDognmtAtfnYDpHBHlInR+2mdlpyfHFyx96K4MHltkB5ofUgBBS1v XsJz7Rj60PThTN+jm1+wA921Wwiburv17b92nDrB/g7gSGuI0A6UXFscYT1lXOY1BmSL67 aBWuvcdN4x2te07UcbUOmf6EO0AHlKpLXrGrMkGRiqZ1h1fwud7K6xCIC8tgQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725253450; a=rsa-sha256; cv=none; b=NNG9t/728e5K5ZkEeGXfJ4b6+MhWckGsZEim2nNLmrFJj/HoDKABKKzSyPg4gn/9EeKpi4 92Hs/JhDehZTWb6uPGkRNH+nl6I7CR/JP6IBBCvOCbsDuzWs9+m+j2kOk43fHna1MbJhw5 XLhaVpKVWyO6uOwOE0Xi8JbERyg1wk9es9Cn2It51Nvs3GPj8ywF3hXhunJnCh1sG6LzSz mE71y6NAmgayfcG03LjQBmLlOlKE9IjuFFnQC6edwagAJQ9+QlOR9hPSufggvBVtYIq3KF 3LgnyqHIU64VizJrp7Aa+rKNtUFAIJhMWrCM6WC5D+88/97GujdmVDZEJkhp5g== 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=1725253450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=72dMyl9tgxRYW64uzSz/XhYrlnSU3wN8AyyWPHt3++4=; b=Q3Q6gPWQJre5B1tKn3m/rpQVQBu7lZqnrBhFZFssyp2zXbjmwfIrA2QllQYyVue/XNdh1d Zr8M5/calEEqojXQSTPChEyRo3R71m1x3SIo9qbeHH3IeSe2Upr0r/foD4TRQH0b1MySPs bqj4/uT2nrwKCTS6gXbzBnH/uxiPKn+md9Odxc8z4fwtFVOTG9L7dY+HBxvxvEr+B/RbhI oECgpRXdNxA5N75nfLVfCvOo8CfWy6nERSg7k+gu9L2AWi2WTfj/v/9j8Ju0b/Ej2xVJDT JKICE/3KWlS3n78nNZQLS1IX04w4oTEBJ6EJ1AsJ8Q0gi0toNX3PGDRphJO7Tg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WxxVy2Trtzynq; Mon, 2 Sep 2024 05:04:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48254Apc024494; Mon, 2 Sep 2024 05:04:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48254AlA024491; Mon, 2 Sep 2024 05:04:10 GMT (envelope-from git) Date: Mon, 2 Sep 2024 05:04:10 GMT Message-Id: <202409020504.48254AlA024491@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 5863982b3d02 - stable/13 - init_main: Sprinkle const qualifiers where appropriate 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5863982b3d0294beb4edf843f8733a1c4bf13296 Auto-Submitted: auto-generated The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=5863982b3d0294beb4edf843f8733a1c4bf13296 commit 5863982b3d0294beb4edf843f8733a1c4bf13296 Author: Zhenlei Huang AuthorDate: 2024-08-21 10:01:30 +0000 Commit: Zhenlei Huang CommitDate: 2024-09-02 05:03:41 +0000 init_main: Sprinkle const qualifiers where appropriate No functional change intended. MFC after: 1 week (cherry picked from commit 7412517f2947342d599e42dd563fd6b3a7656e29) (cherry picked from commit b6728c3f0b47408610373fc2744e98f3178ddf83) --- sys/kern/init_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 1a8269b8b367..d2c87cf5b777 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -344,13 +344,13 @@ restart: } static void -print_caddr_t(void *data) +print_caddr_t(const void *data) { - printf("%s", (char *)data); + printf("%s", (const char *)data); } static void -print_version(void *data __unused) +print_version(const void *data __unused) { int len; From nobody Mon Sep 2 05:04:11 2024 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 4WxxVz51shz5MSYC; Mon, 02 Sep 2024 05:04: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WxxVz3ryqz4vLY; Mon, 2 Sep 2024 05:04:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725253451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yY0dcuRZQjpV11lSlSA4U4QUEd4tAIwPmZLrrgGCPXo=; b=M96DLlo+rgVhThG6np6IDPgvhqbcgKRqFKAoOBtVhORcLiZDfBQsOJRS3Oi+MiJnstq0P8 RQcC3VG+MI0f8OLrkdt9GDQxlDUGKfQbFbeEG4aA6zH9Vvb9URxJYcA8GB9y98Ibbsnoic 0h1zZ+2ibOxQfK8q7Smm8sAa1a4AHbBlbwg08OS7xNVOBO9JL6uJPipI1eTkxxaXF0oa4h 7ia07m2u93R0iF638VpPasRg29Xp/CaCb13tnNPgN2wNnrymREdsjK1Dm85AXCn46ZQ1pN xO/BSikcP+B8ppcCpvPoNzJ+MTqy4XP+28xmeQI3TA7tTQtyht9WIzZs5JlLpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725253451; a=rsa-sha256; cv=none; b=mNJz7YdQEe9KYI73KuClHXwYBRJvksx8vvPQIYKJVoXrml+YSW7wsXyS6LkpNNPa4k8DWa b/d1nu6t9WDu01S85ULhzOZRZg9Hzgdmt36Ah0AU/X/zKWmQFPTILAKnQrnsz0a9E4/saz J00jb+TUUxsEZ3LF2gZdDB/f2AwvTKCBJ4y/F/+avgIpljuwNPKec/REYPvbq3+DcycOPr kEK8cOl2NAEKpvydw7nqkxaQiBM15yklvGInNXISmhZs4gPNYKrdCfPaNok2PDevGm2/Gg pzXjBAfahOUTq4f7IH+vXrMASk9q4uTcbeL0kV/ZfryE6jGdMAdjqvta3b4t3w== 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=1725253451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yY0dcuRZQjpV11lSlSA4U4QUEd4tAIwPmZLrrgGCPXo=; b=k2ZLh2OqC+OLKLtDyeiu+/B5spUC/MpmQ7aJSi9o9C5i/k1OCeM4iV0ZqCSmyEs6ZByT64 63XKIjDmJ+yZE3XfeXP4FdABgeObCmjml0xzOZ0LMypgdbHsDOwNcBLkRgvBrLpXrc/H/U TWnRhpz9jqya1rbkhlO8a2e6Vb8/OmiN8t+gg/hFM0AdXB74AuX4lND3Rkzjof6OUauRe8 LndOzdIUSWLMwt0GCCARecPRmgaajQ4v9I5DVVUXTX0cnsd5HjA0psA7SqJJfGFKH8iT/q SHg9fLj/SLBYsk9c9EeFw0AgFxEtkP1Ly2cieV+dFcYXlvtOLbmE4qpXLbiagQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WxxVz3SRhz1085; Mon, 2 Sep 2024 05:04:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48254BGc024555; Mon, 2 Sep 2024 05:04:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48254BOf024552; Mon, 2 Sep 2024 05:04:11 GMT (envelope-from git) Date: Mon, 2 Sep 2024 05:04:11 GMT Message-Id: <202409020504.48254BOf024552@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 38ffc3f3194f - stable/13 - kern: Align the declaration of kernconfstring with its definition 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 38ffc3f3194f048bbfec9b2389b975ef359d896e Auto-Submitted: auto-generated The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=38ffc3f3194f048bbfec9b2389b975ef359d896e commit 38ffc3f3194f048bbfec9b2389b975ef359d896e Author: Zhenlei Huang AuthorDate: 2024-08-22 10:00:34 +0000 Commit: Zhenlei Huang CommitDate: 2024-09-02 05:03:41 +0000 kern: Align the declaration of kernconfstring with its definition It is defined as const char[] in config.c which is auto generated by usr.sbin/config/kernconf.tmpl . While here prefer macro SYSCTL_CONST_STRING to avoid casting. MFC after: 1 week (cherry picked from commit 0f64fc6a3486454ad708f517633f930e611fd6d2) (cherry picked from commit d6271b6507b2404bd03f21f76a4e8394e083ae80) --- sys/kern/kern_mib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index aa4798a5a956..b2e9e06f5793 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -451,10 +451,10 @@ SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, #ifdef INCLUDE_CONFIG_FILE /* Actual kernel configuration options. */ -extern char kernconfstring[]; +extern const char kernconfstring[]; -SYSCTL_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD, - kernconfstring, 0, "Kernel configuration file"); +SYSCTL_CONST_STRING(_kern, OID_AUTO, conftxt, CTLFLAG_RD, + kernconfstring, "Kernel configuration file"); #endif static int From nobody Mon Sep 2 08:50:34 2024 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 4Wy2XB5kZ6z5MnSS; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XB5CFgz421b; Mon, 2 Sep 2024 08:50:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fYVYwuRpjjFGd1nw0c5y0/2PQgp4OfX4XslXi0YWrbg=; b=ce9G2C1l/WOK6izz0+ZARKMDHDuMH9+9xY7ETPGrPm+er+Pkx3k7Dh99LxYydB20G1W6UG j7jcZh3rDqoktW1OKvD3mhkKIFts7HUloyZWGduo0day9ZcMvGEnNdHuKNGlkRO9H9OArH EJyg43maBS5gxHiRKVcA17BFKgKzh8n3OMwtgNKDyoLn0+CXg/GMOJr5uLUcr7bea14dp7 IR9aTEhCsDEW5pk4KVKz+ALMzyU9GX87MkUXspeWWLme+6uct+QZTwXlUzHEkBtRLI4GCN AQTB+SJJ+/gEGW1ZDX1gjNqzXu9KVO9grkYE0TUGSYIITnU8CFQVXlV9q8HIiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267034; a=rsa-sha256; cv=none; b=K73BlaL0jVdWRjMG/B6XlEoJMXOgClz+Qi5ouzAP0xtdPwG8FbI2gppe1ybnzUrKxUTGT5 CI45j2lhTqLD904aFfueW+vjt3VdBpduxOH8HA1dMkCNxrHQD+mIRiEkUx+8Lpc0uyLFsh 7l+z5+EYu5nVa5Y2nIySDPXSMFesGMU5fng8tiBBuiQw6mRf/px4Db/2d0lCEoOUaHpCF7 c1aVoyPxcrbrynFFCY6Y/dLuh9y/mcLV6dWiNXWsvoDfBwA3OvoLU1hK6OHREoUUCgV4NG a3I9T4ygRrE4QBkcyY/8dY9eBbki2dtCllz6hpLF/8yiD5uPxQonjmcTCbaPPQ== 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=1725267034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fYVYwuRpjjFGd1nw0c5y0/2PQgp4OfX4XslXi0YWrbg=; b=CBYRKLabZKiN/AQ9R6zeYktM48c3jNxDl4S7fsTCCI23vDPZzJ3UULb8HLGA0+Entnx5E1 ynL6+Fm/ECHBobDICVAC4bLi1xrIhIHZoMfdwGHiTjNVYROi88SG4ccqk0N37ZatJJxf6Y E067Vq6PUKvaKx1WUw9vKC4zqd8aJyN2GGBH3yZVD/NT1s/G/xRo0g10UlHn8w5//AwCmA mZyKqENXmCP0TqGl0BchSw7UZdQMoMzM9vjMVjgtUr6O/xFNacz8JocPNzx41KSSJfMGiF YlNbU0XktU6QGMMfYO6Pfj7ZkG739RKkaVEHflUkv3z0kfKR2flNSGwcTtkplw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XB4d35z158y; Mon, 2 Sep 2024 08:50:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oYX4006758; Mon, 2 Sep 2024 08:50:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oYTH006755; Mon, 2 Sep 2024 08:50:34 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:34 GMT Message-Id: <202409020850.4828oYTH006755@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 3736b79f0fa7 - stable/14 - vm: Use vmem_xalloc in kva_alloc 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3736b79f0fa7655288f922d085b90eb5e0347067 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=3736b79f0fa7655288f922d085b90eb5e0347067 commit 3736b79f0fa7655288f922d085b90eb5e0347067 Author: Andrew Turner AuthorDate: 2023-11-29 12:11:37 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:43:01 +0000 vm: Use vmem_xalloc in kva_alloc The kernel_arena used in kva_alloc has the qcache disabled. vmem_alloc will first try to use the qcache before falling back to vmem_xalloc. Rather than trying to use the qcache in vmem_alloc just call vmem_xalloc directly. Reviewed by: alc, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42831 (cherry picked from commit 8daee410d2c13b4e8530b00e7877eeecf30bb064) --- sys/vm/vm_kern.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index f94200d77c47..35dbae20449f 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -149,7 +149,8 @@ kva_alloc(vm_size_t size) TSENTER(); size = round_page(size); - if (vmem_alloc(kernel_arena, size, M_BESTFIT | M_NOWAIT, &addr)) + if (vmem_xalloc(kernel_arena, size, 0, 0, 0, VMEM_ADDR_MIN, + VMEM_ADDR_MAX, M_BESTFIT | M_NOWAIT, &addr)) return (0); TSEXIT(); @@ -170,7 +171,7 @@ kva_free(vm_offset_t addr, vm_size_t size) { size = round_page(size); - vmem_free(kernel_arena, addr, size); + vmem_xfree(kernel_arena, addr, size); } /* From nobody Mon Sep 2 08:50:35 2024 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 4Wy2XC6DRhz5MnqY; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XC5YWBz421c; Mon, 2 Sep 2024 08:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wZ+TyEe0i75FreZwL9xORTfDOdomffbl5Wm7TAYtUPI=; b=O67F+DHd30Ag5dJFRGrMOAgYauomVpOeqd/m5v7FeO3w4zGF9rgUN4eUhLvWwwyvgxYKgx eOdXLWgXhOAu/8pWw9antyhsrZnkyMBfnCoybr7tli7gEO7rRgrGlXHzOLotF3c6kBjrjV alTCEjVHsHDD9atV6twwmCzOdfTHTUIk3jTPeMChs0k/FUjAJi78LuTSnBbEWAQbWmTSeD nPTy/OcHJM+QJCy4eOREJVsZHgIIZXt3McNlzpb5tOXDGolcxVNd68Z2orz5uRJiVPBzhS e3romfLxwuxHD1GwESTF1D06meeLDGrSVUIsH5l3z4becThXnAGKtMWZRjCsWA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267035; a=rsa-sha256; cv=none; b=xWk2hOPpGo050tPVVcW7jwoF0eh1lBW1sx6lRaQv5cHseC97z4edoHdbVQR7blgnhcpPSA lNivUmXbPrSVWYL7zYuiyzPoKakGIEzhGAIODqUmiZg/uzVWAoGtdagVoDUF0XrBEJHSyZ EWmdbsanvH2XRvqMvk+TiGQkYpGQbLDBq0w/lrqVFxa9QJoMbwkhCcdntLN1xoAqg8rZOW ePhmTp7Hhvae0dSRCG5dH2kiMO+oSbOGvE+KXDP1s70gBqmdjrcMroC5kOrU/YqwXfO5D3 j5N4OMIPdfoXTRZyy+shqB2wYNx2DDSE9uYoR9HRK1UXqnC4OKU8+Qx6kONqRA== 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=1725267035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wZ+TyEe0i75FreZwL9xORTfDOdomffbl5Wm7TAYtUPI=; b=vsS7Wy5ZCauObQcyZ/tnL5eS+qfbEOgQAlqhfLeJW6hNpUvrVcD2WDQ6LNsYuJMcXFygy1 QGLI9/i2qR1Mt13L7g1p1KWhRQqFPOF0EZMvx+ndZIZyZxxX298LJuLGGdrzMl3nZ5dX6m Ggs9iACh0Iix7hT2TlmqOA6HZKNzdUhEAguMtVetcBSBNzxDsUvDgVAKc9+my8TrXS6ca2 YDDpiJNDDHjXrlY1FHNUnZ2wrlSbDsFA2o08IyB9DFTWXRTfA1XO/j++fwbeMdoNS1WU+9 t5UHKsJYLwArAtDn10iabN5Ngp1Hd5+Ts7uSwCQ86IC872fWg3zs8a1IDUXpoQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XC4zC6z156d; Mon, 2 Sep 2024 08:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oZsA006798; Mon, 2 Sep 2024 08:50:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oZal006795; Mon, 2 Sep 2024 08:50:35 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:35 GMT Message-Id: <202409020850.4828oZal006795@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: bdbb0be0436a - stable/14 - vm: Add kva_alloc_aligned 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bdbb0be0436a6db70c043a3cd8710de59b497e88 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bdbb0be0436a6db70c043a3cd8710de59b497e88 commit bdbb0be0436a6db70c043a3cd8710de59b497e88 Author: Andrew Turner AuthorDate: 2023-11-29 12:54:49 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:43:18 +0000 vm: Add kva_alloc_aligned Add a function like kva_alloc that allows us to specify the alignment of the virtual address space returned. Reviewed by: alc, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42788 (cherry picked from commit 839999e7efdc980d5ada92ea93719c7e29765809) --- sys/vm/vm_extern.h | 1 + sys/vm/vm_kern.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index 4bcd8ac601ae..566c837aab7e 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -49,6 +49,7 @@ struct domainset; /* These operate on kernel virtual addresses only. */ vm_offset_t kva_alloc(vm_size_t); +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. */ diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 35dbae20449f..387d73d2e46e 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -157,6 +157,27 @@ kva_alloc(vm_size_t size) return (addr); } +/* + * kva_alloc_aligned: + * + * Allocate a virtual address range as in kva_alloc where the base + * address is aligned to align. + */ +vm_offset_t +kva_alloc_aligned(vm_size_t size, vm_size_t align) +{ + vm_offset_t addr; + + TSENTER(); + size = round_page(size); + if (vmem_xalloc(kernel_arena, size, align, 0, 0, VMEM_ADDR_MIN, + VMEM_ADDR_MAX, M_BESTFIT | M_NOWAIT, &addr)) + return (0); + TSEXIT(); + + return (addr); +} + /* * kva_free: * From nobody Mon Sep 2 08:50:36 2024 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 4Wy2XF2N9kz5MnlQ; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XD5tmXz428H; Mon, 2 Sep 2024 08:50:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vkuo2mZiVYRL2/tx9RNoNpiSdDA/ISRIOEdrJFh/ins=; b=r2tfVnr5ncwLCcUpepOUVVc2fBYMagVjwb0SMw+jQszhaaYt/0LVcuifeeIsB3+ysoSJ7+ N8M9rKGhh7Y+1uVcSc9SVEXzUZ0A4NeXR8UsUC2Qc0/3bM2SXbCJlbnB9Ba9hpPLs5e9Me Yd2li9JtYE0lH+n8Z5XtmFNOOmp/31N0cfzEX9vLpqKPWtzyEBbzPYwxI11Yjh8QNgj8MV z7FzxEqqBOI14bi0VIU9/RdBHHVGN5qRiQO1/YcwAucBREw7q7gFm6QYlPfGc/zz3JUbHn 1l3iDBdt51W8KqT48IdA+xidW/dU85l5krlLjWUEsmx90noUNSrVvFogT4xXtg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267036; a=rsa-sha256; cv=none; b=WOFHRpWep6q33opu+Tc7miMd9Yj+aOek2nECW9dpBir1uBeY7+zvIMSm4SXWZrAhmVE+Og RnF3GW7X8HdENGUHxhGmtzqHCVddH1B4sLLdQS2nZSuUmif8sH768VAsRZkK7JIxinPpSE E/5lz63cFJb1z/lHBY1MVbtzWVe3zX/PD/AU7NyzSexlCCN42w0LqPHHaekPsw3R8UktB7 bNzj/1N0BkeH8mTubDv8w3E3YjK8ezz84SSPofxFHTyjCvN9xwS0BNGavnLh6ProQAZazq A5f/6ZZgTw5bG1ojfVl+wMyxYTq5EgTG6FgVEI7RiOHTCffmZuwmx9/ybR71XA== 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=1725267036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vkuo2mZiVYRL2/tx9RNoNpiSdDA/ISRIOEdrJFh/ins=; b=B37eKo0eWItJTkVWx5riQ9WxPCr+FvEEZs2vpQzE7Zl5aGjgHOJ2q8q+gN8gHP0Qdse3D7 HoUxlueIgC+HKnqh6LZYisRwpVs4pnzhGIu3Jh3yeTWoMTi05zbHbQiZyaBXFWsssm95wn +AvnyRhD2XJwHeN3ghYsiK40QkSCzv9xISg4CjELdAQAJtVJOIkOJ1ofC4ic659w/+Q0Ib tm+weyI/wDxmbar8laIMGiW3t4i3z5qjV4nsaMgZkTsyePPU7/VE+IJHE30d5iD0oyLBwo IJvWpq4XvTzY2Dh1Ksu3W/B5YZ/aGUZkFEJn5JlUfvbawIQBi3tQBmjArD6JFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XD5Q9qz14qK; Mon, 2 Sep 2024 08:50:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oahC006856; Mon, 2 Sep 2024 08:50:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oao9006853; Mon, 2 Sep 2024 08:50:36 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:36 GMT Message-Id: <202409020850.4828oao9006853@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: f48bd7527bba - stable/14 - uart: Split out initilisation of the acpi devinfo 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f48bd7527bba62d4d8019fd4bbdb966aecdbac0b Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=f48bd7527bba62d4d8019fd4bbdb966aecdbac0b commit f48bd7527bba62d4d8019fd4bbdb966aecdbac0b Author: Andrew Turner AuthorDate: 2024-03-12 18:06:18 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:43:42 +0000 uart: Split out initilisation of the acpi devinfo Split out the common parts of building the uart devinfo from ACPI tables from the SPCR parser. This will be used when we support the DBG2 table to find the debug uart to be used by the kernel gdb stub. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44357 (cherry picked from commit 473c0b44ae8c51b2aebc51887714b2ed14de50bf) --- sys/dev/uart/uart_cpu_acpi.c | 86 +++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/sys/dev/uart/uart_cpu_acpi.c b/sys/dev/uart/uart_cpu_acpi.c index a0534c7af230..6805d187cb99 100644 --- a/sys/dev/uart/uart_cpu_acpi.c +++ b/sys/dev/uart/uart_cpu_acpi.c @@ -70,35 +70,10 @@ uart_cpu_acpi_scan(uint8_t interface_type) return (NULL); } -int -uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) +static int +uart_cpu_acpi_init_devinfo(struct uart_devinfo *di, struct uart_class *class, + ACPI_GENERIC_ADDRESS *addr) { - vm_paddr_t spcr_physaddr; - ACPI_TABLE_SPCR *spcr; - struct acpi_uart_compat_data *cd; - struct uart_class *class; - int error = ENXIO; - - /* SPCR only tells us about consoles. */ - if (devtype != UART_DEV_CONSOLE) - return (error); - - /* Look for the SPCR table. */ - spcr_physaddr = acpi_find_table(ACPI_SIG_SPCR); - if (spcr_physaddr == 0) - return (error); - spcr = acpi_map_table(spcr_physaddr, ACPI_SIG_SPCR); - if (spcr == NULL) { - printf("Unable to map the SPCR table!\n"); - return (error); - } - - /* Search for information about this SPCR interface type. */ - cd = uart_cpu_acpi_scan(spcr->InterfaceType); - if (cd == NULL) - goto out; - class = cd->cd_class; - /* Fill in some fixed details. */ di->bas.chan = 0; di->bas.rclk = 0; @@ -108,7 +83,7 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) di->ops = uart_getops(class); /* Fill in details from SPCR table. */ - switch (spcr->SerialPort.SpaceId) { + switch (addr->SpaceId) { case 0: di->bas.bst = uart_bus_space_mem; break; @@ -117,10 +92,10 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART in unrecognized address space: %d!\n", - (int)spcr->SerialPort.SpaceId); - goto out; + (int)addr->SpaceId); + return (ENXIO); } - switch (spcr->SerialPort.AccessWidth) { + switch (addr->AccessWidth) { case 0: /* EFI_ACPI_6_0_UNDEFINED */ /* FALLTHROUGH */ case 1: /* EFI_ACPI_6_0_BYTE */ @@ -137,10 +112,10 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART unsupported access width: %d!\n", - (int)spcr->SerialPort.AccessWidth); - goto out; + (int)addr->AccessWidth); + return (ENXIO); } - switch (spcr->SerialPort.BitWidth) { + switch (addr->BitWidth) { case 0: /* FALLTHROUGH */ case 8: @@ -157,9 +132,46 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART unsupported bit width: %d!\n", - (int)spcr->SerialPort.BitWidth); - goto out; + (int)addr->BitWidth); + return (ENXIO); } + + return (0); +} + +int +uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) +{ + vm_paddr_t spcr_physaddr; + ACPI_TABLE_SPCR *spcr; + struct acpi_uart_compat_data *cd; + struct uart_class *class; + int error = ENXIO; + + /* SPCR only tells us about consoles. */ + if (devtype != UART_DEV_CONSOLE) + return (error); + + /* Look for the SPCR table. */ + spcr_physaddr = acpi_find_table(ACPI_SIG_SPCR); + if (spcr_physaddr == 0) + return (error); + spcr = acpi_map_table(spcr_physaddr, ACPI_SIG_SPCR); + if (spcr == NULL) { + printf("Unable to map the SPCR table!\n"); + return (error); + } + + /* Search for information about this SPCR interface type. */ + cd = uart_cpu_acpi_scan(spcr->InterfaceType); + if (cd == NULL) + goto out; + class = cd->cd_class; + + error = uart_cpu_acpi_init_devinfo(di, class, &spcr->SerialPort); + if (error != 0) + goto out; + switch (spcr->BaudRate) { case 0: /* Special value; means "keep current value unchanged". */ From nobody Mon Sep 2 08:50:37 2024 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 4Wy2XG3FMLz5Mnnf; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XF6vh1z428W; Mon, 2 Sep 2024 08:50:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IeW3xNlzfzes12auYJumS40hCPATrVQc/Tp5aRmV6qU=; b=bB2k7iFGC/BAyUIqKcmH1T5a493OukXvqHpMGpx6Dp0b7N5Iu5KMAim1bsS8xXD2sNj2vm 8GiE/xwMcwviirr495ZhI3C1c8wFoyE/GQxZrKEnpzhMt5kv0q0xWnTVVGRlG9XOnwJ+Ug pUJtYp7GuAgBHfKxHba5uPrtaSB9Xw/OTvNAgroz+PAapyReJj8/m+QKQPheRwBIZGqK7C FzoYGqzV2sD9lFlhLS8+buJ8UDJezwPFR6utYZkvo8TxoJ0qCRaXZWJ7ydkiKOZadSqr9D iW6R/HFELZpYhEo9McVVKfNmLMA0BwfSkbcIGtq03e9ib7aQ83nOsudpJesrzQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267038; a=rsa-sha256; cv=none; b=OR2tcjlUKwL8ee+oZ3FfApUUOV3rvgDccqu3uj2LFMGWFRry1d1biFg+6sm0Ir02wawbkp Sfxa8YdsljsaraZ9UuRccP38XPb4eqzE+yLfsIme2CvEucbO+NGS4UXDO8E92o6yXeL0uj iDV1ZS+eWZ2vWZqVuzB1JZjWJ3kJRRStR/7G03oTdaebYCQmPRxOPDnbh/OMjSi0QD7+sG wwZvIVUYYvqWRIbRoccLyv2pMv7KK7x0Etg6ueLiKDihLwNj4vxBXxleJZkPPbaRTxn8Av K9jYB+mqimXNevH344SGTrQ8Gq92UOkljCx39OK2vsIXVa9X+VtpczwbL1GdEA== 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=1725267038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IeW3xNlzfzes12auYJumS40hCPATrVQc/Tp5aRmV6qU=; b=QQYSpmlbFmjjv6q5QFpJg3Qsa3TJrvT8zkgq+NaeWSd3vb8srAGfJqn8gi41wxc/ooSjC+ a7hmQ9N08IzYebWQkU2odqXhkoOR52z+83+byeNedGsxr5KOHyUIxh0x0/GymAW3wFuDdf jvNHI/GwEkWgKJBKP5+y3IKvwEUt49ask3QgOnNOJiAZhsL5F/hq7Em/mUV+Jfuy1SjTbH dbsKsgetDntbPzvBKehFQ/AQU4V4tyq7W/BiBVMTKLOsPGcBf9v0KiCGVkSo90jpZ8u4gG IA1POeGqVkN21fnF1kNlHh63Fy1w32zorWgWtfKq5DEcEswAwxJJSqQyWnOo9A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XF678bz156f; Mon, 2 Sep 2024 08:50:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828obAR006910; Mon, 2 Sep 2024 08:50:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828obmq006907; Mon, 2 Sep 2024 08:50:37 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:37 GMT Message-Id: <202409020850.4828obmq006907@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 254d54f0733f - stable/14 - arm64: Support passing more registers to signals 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 254d54f0733fe139108cb576cf37f16102659181 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=254d54f0733fe139108cb576cf37f16102659181 commit 254d54f0733fe139108cb576cf37f16102659181 Author: Andrew Turner AuthorDate: 2024-03-21 10:13:16 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:44:19 +0000 arm64: Support passing more registers to signals To support recent extensions to the Arm architecture we may need to store more or larger registers when sending a signal. To support this create a list of these extra registers. Userspace that needs to access a register in the signal handler can then walk the list to find the correct register struct and read/write its contents. Reviewed by: kib, markj (earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43302 (cherry picked from commit 7e6437c08415ade75403f1ecad75167257e8ea3c) --- sys/arm64/arm64/exec_machdep.c | 85 +++++++++++++++++++++++++++++++++++++++--- sys/arm64/include/ucontext.h | 16 +++++++- 2 files changed, 94 insertions(+), 7 deletions(-) diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c index 4efa3ceaae40..bc4ee178db23 100644 --- a/sys/arm64/arm64/exec_machdep.c +++ b/sys/arm64/arm64/exec_machdep.c @@ -462,8 +462,12 @@ int set_mcontext(struct thread *td, mcontext_t *mcp) { #define PSR_13_MASK 0xfffffffful + struct arm64_reg_context ctx; struct trapframe *tf = td->td_frame; uint64_t spsr; + vm_offset_t addr; + int error; + bool done; spsr = mcp->mc_gpregs.gp_spsr; #ifdef COMPAT_FREEBSD13 @@ -502,8 +506,35 @@ set_mcontext(struct thread *td, mcontext_t *mcp) READ_SPECIALREG(mdscr_el1) | MDSCR_SS); isb(); } + set_fpcontext(td, mcp); + /* Read any register contexts we find */ + if (mcp->mc_ptr != 0) { + addr = mcp->mc_ptr; + + done = false; + do { + if (!__is_aligned(addr, + _Alignof(struct arm64_reg_context))) + return (EINVAL); + + error = copyin((const void *)addr, &ctx, sizeof(ctx)); + if (error != 0) + return (error); + + switch (ctx.ctx_id) { + case ARM64_CTX_END: + done = true; + break; + default: + return (EINVAL); + } + + addr += ctx.ctx_size; + } while (!done); + } + return (0); #undef PSR_13_MASK } @@ -586,6 +617,31 @@ sys_sigreturn(struct thread *td, struct sigreturn_args *uap) return (EJUSTRETURN); } +static bool +sendsig_ctx_end(struct thread *td, vm_offset_t *addrp) +{ + struct arm64_reg_context end_ctx; + vm_offset_t ctx_addr; + + *addrp -= sizeof(end_ctx); + ctx_addr = *addrp; + + memset(&end_ctx, 0, sizeof(end_ctx)); + end_ctx.ctx_id = ARM64_CTX_END; + end_ctx.ctx_size = sizeof(end_ctx); + + if (copyout(&end_ctx, (void *)ctx_addr, sizeof(end_ctx)) != 0) + return (false); + + return (true); +} + +typedef bool(*ctx_func)(struct thread *, vm_offset_t *); +static const ctx_func ctx_funcs[] = { + sendsig_ctx_end, /* Must be first to end the linked list */ + NULL, +}; + void sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) { @@ -594,6 +650,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) struct trapframe *tf; struct sigframe *fp, frame; struct sigacts *psp; + vm_offset_t addr; int onstack, sig; td = curthread; @@ -613,19 +670,15 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) /* Allocate and validate space for the signal handler context. */ if ((td->td_pflags & TDP_ALTSTACK) != 0 && !onstack && SIGISMEMBER(psp->ps_sigonstack, sig)) { - fp = (struct sigframe *)((uintptr_t)td->td_sigstk.ss_sp + + addr = ((uintptr_t)td->td_sigstk.ss_sp + td->td_sigstk.ss_size); #if defined(COMPAT_43) td->td_sigstk.ss_flags |= SS_ONSTACK; #endif } else { - fp = (struct sigframe *)td->td_frame->tf_sp; + addr = td->td_frame->tf_sp; } - /* Make room, keeping the stack aligned */ - fp--; - fp = (struct sigframe *)STACKALIGN(fp); - /* Fill in the frame to copy out */ bzero(&frame, sizeof(frame)); get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); @@ -637,6 +690,26 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) mtx_unlock(&psp->ps_mtx); PROC_UNLOCK(td->td_proc); + for (int i = 0; ctx_funcs[i] != NULL; i++) { + if (!ctx_funcs[i](td, &addr)) { + /* Process has trashed its stack. Kill it. */ + CTR4(KTR_SIG, + "sendsig: frame sigexit td=%p fp=%#lx func[%d]=%p", + td, addr, i, ctx_funcs[i]); + PROC_LOCK(p); + sigexit(td, SIGILL); + /* NOTREACHED */ + } + } + + /* Point at the first context */ + frame.sf_uc.uc_mcontext.mc_ptr = addr; + + /* Make room, keeping the stack aligned */ + fp = (struct sigframe *)addr; + fp--; + fp = (struct sigframe *)STACKALIGN(fp); + /* Copy the sigframe out to the user's stack. */ if (copyout(&frame, fp, sizeof(*fp)) != 0) { /* Process has trashed its stack. Kill it. */ diff --git a/sys/arm64/include/ucontext.h b/sys/arm64/include/ucontext.h index e9b914315a19..dedbd061ec6b 100644 --- a/sys/arm64/include/ucontext.h +++ b/sys/arm64/include/ucontext.h @@ -51,15 +51,29 @@ struct fpregs { int fp_pad; }; +/* + * Support for registers that don't fit into gpregs or fpregs, e.g. SVE. + * There are some registers that have been added so are optional. To support + * these create an array of headers that point at the register data. + */ +struct arm64_reg_context { + __uint32_t ctx_id; + __uint32_t ctx_size; +}; + +#define ARM64_CTX_END 0xa5a5a5a5 + struct __mcontext { struct gpregs mc_gpregs; struct fpregs mc_fpregs; int mc_flags; #define _MC_FP_VALID 0x1 /* Set when mc_fpregs has valid data */ int mc_pad; /* Padding */ - __uint64_t mc_spare[8]; /* Space for expansion, set to zero */ + __uint64_t mc_ptr; /* Address of extra_regs struct */ + __uint64_t mc_spare[7]; /* Space for expansion, set to zero */ }; + typedef struct __mcontext mcontext_t; #ifdef COMPAT_FREEBSD32 From nobody Mon Sep 2 08:50:38 2024 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 4Wy2XH3YHFz5MnlW; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XH0KDYz424P; Mon, 2 Sep 2024 08:50:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6HSaR5Ag5KQ05MxtTGyGmZmELXvIqfeF376/5Y7Tubk=; b=OAjsPNaTgNx0sMqD3ZWbKiuwEQVNlwEcxVc3FQhbjj6W0CKz3y+QhbDQowmrPtuOLIHDWp ip2vOpJd0wY8gKWK6M1yH4CF+H9cRopJ4osfibnfsUxhnJu7wfdqly2/sXlWy6IHJBPy2y lGMVctE+XKj47637uspfiWT8qeiYxB510A+8qWs1Ose9pTL8hduB0+ae9h7LZPKwJ/R6Yg Z8dk7rCNmb3N5BCOXoS01ADby7zFnpohw0AYuxlt+qRvhYRYzbFipZZ0IrZItZc5gqfhzr QrV6AV1Ntu9CwLqBy6/TLLoO2APVmzKROg3BdK+7AZhscVpNuwyW4hca9RfArQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267039; a=rsa-sha256; cv=none; b=vlbC6vHeuARI5lOe8ftjL0XA4jcnvIxbLqxFeebBOtdfD0ShlIh25Lr/WH3eIFBTHbDAj0 aLwE3ymdjnYgOI4eSaKOZlVTBUoVUvbHznE6Jvf/MqUD3C5PHKoCcj+IknH8IHTDSkMspR A5Qghhuaa/GLILc9oRtuDPtXyzScr4LBFQcqDL5uxBk/77CLRXnBDWSG3b9eUv4rmfjWp/ vooflLWt4nzzpIbL5jA4Ju5CaHPG0gsuCBEsiqXOVP4a+7mXkuURzQB/82OGz+T3S3aaod f0dYGZRxSL3IejlyoH0yH37JblxltDAbgNSK8HsyhUEZvbm1ZGFkoljdDzhnIQ== 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=1725267039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6HSaR5Ag5KQ05MxtTGyGmZmELXvIqfeF376/5Y7Tubk=; b=vbaToSH09vv9FqO40m2PnmWT07cCnXs4pFNQCsu9+2K2S/rKLcGKGG7AGFmn1Qh8LQVnuK 8dCWSLt/LGZgqxqoO8Df7qwq91iqp6IVTlUS9EXWPXg4Cync8rlUUNLbrhyrBg91KsYcdt fG3V+wlml39t/ZQ1OGfH1bwYMCaS1UK4FFffmBI01j4qkNXIXqIRrWl0m9EzOXf391IMZE sUUedP+lCsDnDQdaLGlZIq3bQl/pnA5H6WYV4ExSxPz5u+8LUGrNIFDmzJwFcHlR13wYZr kf4nhGKTYrIr95x6HHJy0bmX5xuBe/dHUOwiqjM+nROifj5VChXKjmYXl2LwQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XG716Lz1590; Mon, 2 Sep 2024 08:50:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ocdx006953; Mon, 2 Sep 2024 08:50:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ocVY006950; Mon, 2 Sep 2024 08:50:38 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:38 GMT Message-Id: <202409020850.4828ocVY006950@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: fd443b71fa2e - stable/14 - libc/aarch64: Copy the trivial getcontextx 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fd443b71fa2eda2a125856acb446dd3cc72e053c Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=fd443b71fa2eda2a125856acb446dd3cc72e053c commit fd443b71fa2eda2a125856acb446dd3cc72e053c Author: Andrew Turner AuthorDate: 2024-02-28 16:09:17 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:44:29 +0000 libc/aarch64: Copy the trivial getcontextx This will be used as the base of a non-trivial implementation. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44254 (cherry picked from commit fd6b1cc34e4175c1e223f42540debb74cfe3c3e6) --- lib/libc/aarch64/gen/Makefile.inc | 4 +-- lib/libc/aarch64/gen/getcontextx.c | 73 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/lib/libc/aarch64/gen/Makefile.inc b/lib/libc/aarch64/gen/Makefile.inc index 5e4fccf143e4..4f4fb3d199bf 100644 --- a/lib/libc/aarch64/gen/Makefile.inc +++ b/lib/libc/aarch64/gen/Makefile.inc @@ -6,10 +6,10 @@ SRCS+= _ctx_start.S \ flt_rounds.c \ fpgetmask.c \ fpsetmask.c \ + getcontextx.c \ infinity.c \ ldexp.c \ makecontext.c \ _setjmp.S \ setjmp.S \ - sigsetjmp.S \ - trivial-getcontextx.c + sigsetjmp.S diff --git a/lib/libc/aarch64/gen/getcontextx.c b/lib/libc/aarch64/gen/getcontextx.c new file mode 100644 index 000000000000..b9d4522d96ee --- /dev/null +++ b/lib/libc/aarch64/gen/getcontextx.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2011 Konstantin Belousov + * All rights reserved. + * + * 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 ``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 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 + +int +__getcontextx_size(void) +{ + + return (sizeof(ucontext_t)); +} + +int +__fillcontextx2(char *ctx) +{ + + return (0); +} + +int +__fillcontextx(char *ctx) +{ + ucontext_t *ucp; + + ucp = (ucontext_t *)ctx; + return (getcontext(ucp)); +} + +__weak_reference(__getcontextx, getcontextx); + +ucontext_t * +__getcontextx(void) +{ + char *ctx; + int error; + + ctx = malloc(__getcontextx_size()); + if (ctx == NULL) + return (NULL); + if (__fillcontextx(ctx) == -1) { + error = errno; + free(ctx); + errno = error; + return (NULL); + } + return ((ucontext_t *)ctx); +} From nobody Mon Sep 2 08:50:40 2024 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 4Wy2XJ4Bj7z5MnlX; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XJ1v72z42Kc; Mon, 2 Sep 2024 08:50:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EDY6P4x/Yb+NUxWfGkFZP8Xp0o+4NERKtG9oGe/Ze5Y=; b=C3UuszD1hrYDag1hS4IG+RZFd5JqAdTqMx2ybvce8viBtHkJBluHIrynJLUVsSVZmYK+mT wmXmrm9LnVNVeEDHK24tvSSrhUVG4XvvqEKD/iVvtEzrxDQhBn+C6n8D1qcwaaCzr8AOWk nWnVh30BnlIbUMeC3YoEMOJbLDfnCQ7sEPxvPD55/cYrfIWr+VEUJIEuPqYbfT4QFiAm9w nqG3Gn5nhfQmohcDdyqgaSDhYBIsNOXY6RvShFqgVOOkNKYO2upC2Xd8MYkoLXuZ0pUvTL VRPHxfliRoLMeuArYM6Atgm1vwdRVXVKbxmgdHrGvBKjua8T0TLqY0lr3x5Gcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267040; a=rsa-sha256; cv=none; b=XqYvNaJs5edpxVCI+RIxYg80a/+RKSnIiwoq5K0Te80rCkTqKRQ+4/ahOdwhlfxY+NFf63 c8GHeh8gOKaMoU9B56mMCBwebxkvt5fwq1JmJB0ZRk+635Qclqrp9vRsLaRxXYBXE0QUg8 wgbrd2QzdwsK7hcqbHaVlI2fyvvRct9JTiCVYGskIcbCnHY7IVcSY6F5bSpvKUQUtlDuaK ZWZJvKWftQPF3/APb/SLM5ftM+dIO002R0fCBulW9mxptlUis/8FtzvOSfrUM/6IRfS4JW G21FI+UupnPvigmj+94l9TihSOu32XCEyzwvnTc/oAJ+08i+xXCWLpPwQtoXUA== 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=1725267040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EDY6P4x/Yb+NUxWfGkFZP8Xp0o+4NERKtG9oGe/Ze5Y=; b=Sfnr7s/jnKYNgZEm403DpvWRPlBc/ZYYBOfr0U+7+RJFI+XLWw5Gr0wPS6qXK5hqtTPHhv YYcP0Dvh2Qfj1FMLX++Auaez9kqH8ljJ0ttu5Oy+ITpMltL+HA34uQq7Jm2UBwFeirAQwk l/WR9l4gGiEey7JefJ3zALPQVPKw/OaJgJow2mOr37+CRim3BtLIPLrHSUn90MjR4gsSYK +ivoAeyZOYNlF1GnNdtsM6+zNUMV7lkpivFGSonyELhGpD0MWCpc7zxE5wpFOA5z14Mj2/ muBP5TkbgKB+c/uN8ltb/beDU4992s89ThaKovaeGtt7qT4HylAMwQ2bGbr/vQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XJ1BKDz15Nv; Mon, 2 Sep 2024 08:50:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oeDV006995; Mon, 2 Sep 2024 08:50:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oewO006992; Mon, 2 Sep 2024 08:50:40 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:40 GMT Message-Id: <202409020850.4828oewO006992@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 519141de7e66 - stable/14 - libc/aarch64: Add a non-trivial getcontextx 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 519141de7e6639e4df3485073d2521dc95b60207 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=519141de7e6639e4df3485073d2521dc95b60207 commit 519141de7e6639e4df3485073d2521dc95b60207 Author: Andrew Turner AuthorDate: 2024-03-06 12:51:18 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:44:40 +0000 libc/aarch64: Add a non-trivial getcontextx Add support for extra registers to the arm64 getcontextx. As no registers are defined this just adds the extra register list and an end context. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44255 (cherry picked from commit 5202ca77aaf552310bcbaccba750ee9f0888d0d8) --- lib/libc/aarch64/gen/getcontextx.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/libc/aarch64/gen/getcontextx.c b/lib/libc/aarch64/gen/getcontextx.c index b9d4522d96ee..9972d3208d08 100644 --- a/lib/libc/aarch64/gen/getcontextx.c +++ b/lib/libc/aarch64/gen/getcontextx.c @@ -32,13 +32,26 @@ int __getcontextx_size(void) { + size_t size; - return (sizeof(ucontext_t)); + size = sizeof(ucontext_t); + size += sizeof(struct arm64_reg_context); /* Space for ARM64_CTX_END */ + + return (size); } int __fillcontextx2(char *ctx) { + struct arm64_reg_context *reg_ctx; + ucontext_t *ucp; + + ucp = (ucontext_t *)ctx; + ucp->uc_mcontext.mc_ptr = (uint64_t)(ucp + 1); + + reg_ctx = (struct arm64_reg_context *)ucp->uc_mcontext.mc_ptr; + reg_ctx->ctx_id = ARM64_CTX_END; + reg_ctx->ctx_size = sizeof(struct arm64_reg_context); return (0); } @@ -49,7 +62,10 @@ __fillcontextx(char *ctx) ucontext_t *ucp; ucp = (ucontext_t *)ctx; - return (getcontext(ucp)); + if (getcontext(ucp) == -1) + return (-1); + __fillcontextx2(ctx); + return (0); } __weak_reference(__getcontextx, getcontextx); From nobody Mon Sep 2 08:50:41 2024 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 4Wy2XK5l54z5Mp3m; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XK2jGPz424w; Mon, 2 Sep 2024 08:50:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DvzGxf0KeIUfBWcGLutR39pbhhnJwz2VZnbxSKfj7aE=; b=vYT7ot9lthYzkJgiLBN12RYD+9l2C9r6nFX2hF0gMCpbF+NwxY5gKikHMJkBWaByQHW1FP 1OyP8/LhxiCtPQbQIicQORM+LUFypa3LrHApaDYyAiv5srbiiZzR+VhD3RQO8bkVgZY1Mt TBE86/4LfRY/UAX7IIoUEWG+2Nj7fVWHD3mGRt243yJcsW792IIqrxFgBarbXtoyxmhJT2 jdX6IXg/pqoj69cgndR0gOWimU36ldKDKk0ngxfCks8ePKLWR/ffC/P+i2a7NKVbYcfpt4 YRkYhIbezNLTzcjNEhigHZjKcIo/Ib1YAjBgwrVnoAoV6Wqj/HjfQ/QQEcMY4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267041; a=rsa-sha256; cv=none; b=RCdo3NfbcKWzQyYP0jUliOUEj9arJ1ojMEpvqXWSytrLKueiaqsmya3jQHU9Q3GrMLp2wm MiEi4FkEXAM/4nVY8WE1iWxD+0claMK/tvITiDt+j8soLIyRTI9Xee9yc0xfDud3PM0V4N Sv59IDBLda206bVgtf+S9aKmrY1CJq/Ur3ciIZtkRWbcfjJFVYhyEDZRk1H0hD7J9+lfsv gLFMiOXLp0XIdA7ZdF0XF4DmtrTJi10lOzasgspQpal0UHyIKUWFRJ8JTS0/ww6NPI0lWz 9emJbQClf2RfNOBaekAotciIRwoyttwZIVP0yCeaCu/632oA57USIkJ+gqDNKQ== 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=1725267041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DvzGxf0KeIUfBWcGLutR39pbhhnJwz2VZnbxSKfj7aE=; b=Wyk3oXpum2Ubh28jN2XEAAg6olhcDS7d3KPx6YJ6Kl6HKSxpM/A1KOBtWIdSQwC8IZb6SO EeYWHhB0AB9kolHeuJljtlLlqpCe+Smm4B8mqcr5QT2chrkaoLZi+pwiv/mdgqpFsfpl36 UoTPJClcqCcRkVjySArcFua7dVFOxvO+MufL27K8asgEs/FCgZnXa7RVabAu2AJO1UatfH yhe9C6cNhxr9WKBReGsCcPdBMkV0uVe/LgnVIqz+6sdFzRf/HAR4ztdHt9EiaWCSOWxENj xCwu7gcZTQ+4zL8r1WzWwJD4hgSr2Zn5wSaRsteEHcjLsa21l8jpaNJaVXcCFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XK2Gvbz1594; Mon, 2 Sep 2024 08:50:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ofCP007034; Mon, 2 Sep 2024 08:50:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ofhn007031; Mon, 2 Sep 2024 08:50:41 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:41 GMT Message-Id: <202409020850.4828ofhn007031@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 4047cec13239 - stable/14 - scmi: Implement scmi_clknode_recalc_freq method 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4047cec13239e2bfa5b4fbd98de56bdb214e15bc Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=4047cec13239e2bfa5b4fbd98de56bdb214e15bc commit 4047cec13239e2bfa5b4fbd98de56bdb214e15bc Author: Cristian Marussi AuthorDate: 2023-12-10 22:14:21 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:46:27 +0000 scmi: Implement scmi_clknode_recalc_freq method Allow the SCMI clock frequency to be queried back, useful for testing the IRQ path via sysctl access. Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43038 (cherry picked from commit ecd8cc84dcee7d08be8663f721f0502dc5b65808) --- sys/dev/firmware/arm/scmi_clk.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sys/dev/firmware/arm/scmi_clk.c b/sys/dev/firmware/arm/scmi_clk.c index 30d630c8ef57..48259d81a60a 100644 --- a/sys/dev/firmware/arm/scmi_clk.c +++ b/sys/dev/firmware/arm/scmi_clk.c @@ -56,7 +56,7 @@ struct scmi_clknode_softc { int clock_id; }; -static int __unused +static int scmi_clk_get_rate(struct scmi_clk_softc *sc, int clk_id, uint64_t *rate) { struct scmi_clk_rate_get_out out; @@ -155,8 +155,18 @@ scmi_clknode_init(struct clknode *clk, device_t dev) static int scmi_clknode_recalc_freq(struct clknode *clk, uint64_t *freq) { + struct scmi_clknode_softc *clk_sc; + struct scmi_clk_softc *sc; + uint64_t rate; + int ret; - return (0); + clk_sc = clknode_get_softc(clk); + sc = device_get_softc(clk_sc->dev); + ret = scmi_clk_get_rate(sc, clk_sc->clock_id, &rate); + if (ret == 0) + *freq = rate; + + return (ret); } static int From nobody Mon Sep 2 08:50:42 2024 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 4Wy2XL5RPSz5Mnnt; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XL3jb1z42L9; Mon, 2 Sep 2024 08:50:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TalzPi+Y9E54oyc59D48F/9Rk1KWE7myB1BvpzhijHM=; b=U7sWgBU6tSHO/I470kfyZ2grnFa7MoSJg02QWlZaYsSSfHaL+9Z14j8MyoiLwuUHCHcxu1 zUCc3CF9lHDejKBnZV1jcjSO9J903wIRsNfn29PTh3wGHrxqO+wngYgkZd7xDnIpYc7g7G ZWXHgHBXsmqVJDOjI12+fZIkyvs+prXbiipWYpF4WNhtnue8dhPXgqult17wdl8nrF5OOD uizf9LDv+pLO8kLiNl3aIbROMgRTbkkHJw1zoJFDPp/1/1ja4wlkd+oPfEd5hs16V25cUY PHzjW66fHg7M+A/LjvIl+kXlSEi1t0Uya7UCW+j+XYm8B3ZAO6e22N8Dd4+K9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267042; a=rsa-sha256; cv=none; b=ez8RIbDF09JJVX7Wvqtw3mFT503cZaUP1F6kid4cjaD66p2ei51X9ic5iSYXVHs+CMFrWS HaZ+zCfBB8DflQrWhILgbXAoDSUmnmM+Yf7tkjORbzzrgCHJF0rROvlflYp9zQoXCUdUm2 gZIEJsJ3Lxt+S3FjnYQ4p6+/jMXiAmx0DbJLopd+L49i4Pa/fJYIDWg37cpvlso+As1J9y rrQ3212fGz6cLJfqH4V4Fcf9SvMGYDZ35DoNoVc6lCsu52wvW8NWHlnVzPigmvSJ31kau+ n5TBp1xAiYvR5tamdj5eRw8CzsZFdF8wcFTkk9YaTkjpib9xF+C1D6xJw1Q6eg== 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=1725267042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TalzPi+Y9E54oyc59D48F/9Rk1KWE7myB1BvpzhijHM=; b=Zr3QOXN+IctPTbI7nV03WE9iQKODgOy0JT5rJ3atlLqWu1JrBYLAcy0ipGFCSEI0xigWmU WJ4T3vIij5VDQr2/3ZVD1/28XAnUvx4oX3Z2bmLIFUtouXAZ/pIRXPNNHRcSch/UuUfcMP VDxQJd3qD0XiGq0/jKnsxyiORbSftTVz+BigAi5tPQsEOvh40N3q5UzHr4/9DZJO6t8s2A RibYKnQfS3q6sjC/u3oRjt3hhW5qU6CBmozzScUb+48RBOBJkuTVH25aOmy1rGdA+061nf Bc1vZhS2XI6mQKQOS/iEJ3hI/WeUQerUuLn/B+u65xEAhIwdlmhNm19/1kD/ug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XL3CmDz15YG; Mon, 2 Sep 2024 08:50:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ogrQ007094; Mon, 2 Sep 2024 08:50:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ogxM007091; Mon, 2 Sep 2024 08:50:42 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:42 GMT Message-Id: <202409020850.4828ogxM007091@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: d5e29c62e923 - stable/14 - linux64: Fix the build on arm64 with bti checking 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d5e29c62e923bd8e7a7355a0d3c5e4767c869ddf Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d5e29c62e923bd8e7a7355a0d3c5e4767c869ddf commit d5e29c62e923bd8e7a7355a0d3c5e4767c869ddf Author: Andrew Turner AuthorDate: 2024-06-04 12:47:52 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:10 +0000 linux64: Fix the build on arm64 with bti checking When we enable checking for BTI on arm64 we need to include an ELF note in all object files linked into a module. As using objcopy from a binary to an ELF object file doesn't add the note switch to using .incbin from an assembly file. This allows us to add the needed note without affecting the included object. Reviewed by: imp, kib, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45468 (cherry picked from commit bed65d85c631c3a8e60a81a15a5a745c8ef92fbe) (cherry picked from commit ec69d230933f82c7c142b053882255aa57475463) --- sys/arm64/linux/linux_support.S | 4 ++++ sys/compat/linux/linux_vdso_inc.S | 39 +++++++++++++++++++++++++++++++++++++++ sys/modules/linux64/Makefile | 17 +++-------------- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/sys/arm64/linux/linux_support.S b/sys/arm64/linux/linux_support.S index 151ede7e1c19..3b16583e9d54 100644 --- a/sys/arm64/linux/linux_support.S +++ b/sys/arm64/linux/linux_support.S @@ -26,6 +26,8 @@ * SUCH DAMAGE. */ +#include + #include #include #include @@ -172,3 +174,5 @@ ENTRY(futex_xorl) str w4, [x2] ret END(futex_xorl) + +GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL) diff --git a/sys/compat/linux/linux_vdso_inc.S b/sys/compat/linux/linux_vdso_inc.S new file mode 100644 index 000000000000..44cc357b4a4a --- /dev/null +++ b/sys/compat/linux/linux_vdso_inc.S @@ -0,0 +1,39 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (C) 2020 Arm Ltd + * + * 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. + */ + + .section .data + .globl _binary_linux_vdso_so_o_start +_binary_linux_vdso_so_o_start: + .incbin "linux_vdso.so.o" + .globl _binary_linux_vdso_so_o_end +_binary_linux_vdso_so_o_end: + +#if defined(__aarch64__) +#include +#include +GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL) +#endif diff --git a/sys/modules/linux64/Makefile b/sys/modules/linux64/Makefile index 05fe76ba6a51..5d0174aa8e9b 100644 --- a/sys/modules/linux64/Makefile +++ b/sys/modules/linux64/Makefile @@ -35,7 +35,8 @@ SRCS= linux_dummy_machdep.c \ bus_if.h \ device_if.h \ vnode_if.h \ - linux_support.S + linux_support.S \ + linux_vdso_inc.S .if ${MACHINE_CPUARCH} == "amd64" SRCS+= linux_dummy_x86.c .endif @@ -47,7 +48,6 @@ SRCS+= opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h CLEANFILES= linux_assym.h linux_genassym.o linux_locore.o \ genassym.o linux_vdso_gtod.o linux_vdso.so.o -OBJS= linux_vdso.so linux_assym.h: linux_genassym.o sh ${SYSDIR}/kern/genassym.sh linux_genassym.o > ${.TARGET} @@ -83,18 +83,7 @@ linux_vdso.so.o: linux_locore.o linux_vdso_gtod.o -T${SRCTOP}/sys/${MACHINE}/linux/linux_vdso.lds.s \ -o ${.TARGET} ${.ALLSRC:M*.o} -.if ${MACHINE_CPUARCH} == "aarch64" -OBJCOPY_TARGET=--output-target elf64-littleaarch64 --binary-architecture aarch64 -.elif ${MACHINE_CPUARCH} == "amd64" -OBJCOPY_TARGET=--output-target elf64-x86-64 --binary-architecture i386:x86-64 -.else -.error ${MACHINE_CPUARCH} not yet supported by linux64 -.endif - -linux_vdso.so: linux_vdso.so.o - ${OBJCOPY} --input-target binary ${OBJCOPY_TARGET} \ - linux_vdso.so.o ${.TARGET} - ${STRIPBIN} -N _binary_linux_vdso_so_o_size ${.TARGET} +linux_vdso_inc.o: linux_vdso.so.o linux_support.o: linux_support.S assym.inc linux_assym.h ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \ From nobody Mon Sep 2 08:50:43 2024 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 4Wy2XN3x06z5MnyS; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XM4rNwz42DN; Mon, 2 Sep 2024 08:50:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+MgTWGISPQAg78jF3GPeFxZViEd3cmy2wUuvX549J5o=; b=tksKXnkD3jSg0utWvDfOGmGBJKzje6dQ7xdDvpeH7ZaYRcp+RLmL/cM+uVRMoZDgJWg8qw IYwg72t0RVcOX0mXfgZ5R+7w212Muyn/WcTLP/vdyNKGDe1iLgYyYs6C1AKaDMbp8t+Try wnyvR4tXn3R4W3WdTOuS4TbyRY+V82g2CCxmepN9S0G7lfEE/07KHvGh/FhQqtozy1Qmja jxHGit7/M650dv6uNRXogs7Z6Q3NS+uTUlJC5zk3HmOA0d6gDmAhppO7PWAmY9DPfGQt6k tBPS3aGVFrXaXdrublZ2nxamT0YmPx90qOEBtX2vxmdphKCbwC50lZGkhkazVA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267043; a=rsa-sha256; cv=none; b=b5BRulIm4NjRI8LlTDmrrA1UDpJkHyUrIxJDsq2wLz3qos3cDXQrOuJ4S3HbPCpbDxHmWi 2pfJ2JYGFuYYTEqL4SI370ly6jKtcPnICe2UeONpyRHBpUBm5Oa8gL1jKkbZXtX1eh0ukQ cxtv0k7BSg05axY6CcX0jm+vaQBit9LmROTt/AwtwkEES39YTzGE+pd1AVVBYEaBmEeIy5 oEiogJA3FKnkfjd7G19kGHuUCq3yPkUGnlgl7GBKpIlCIPxdF1+Q4tJnl75IVAZhypwD+k F/F6uCajaAOES63OWR9puvzEjWJpSFY6lrBwPGaXSt6jw+Wsh1qDJpXB/ZCWig== 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=1725267043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+MgTWGISPQAg78jF3GPeFxZViEd3cmy2wUuvX549J5o=; b=A7cr9AzgJGNZ+ragnNJCl0hqsK9RopPVq7KiCQ7xLK1/0FEusOXrhtrGBuEZQfP3T9Xsg8 OslgaTq4kjzrhZs3T1ZONMRkddWCK9I2IcqdM/wapVmrGRG5mosYINX38S2ah5j+sp/W+q WJfCkJVYJCLdWYlDK2GL+R1zxYt3bwCh6pg8BU+vJeXe2nrckMnwgSjhghC1KxGuR51OXS RWKpVjCD0pkJ2uE1qu7PTl8qhGqiK6L0zbOe8SSBXSszBKSc40mVf3nmV6konL+hXQYzgL QMG9nm5g8RJjefWVhhqb6KwKPpyRdYmqLxb4qLEJ5pKIh5XdTI+s764xQJpZeA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XM4Pnbz1595; Mon, 2 Sep 2024 08:50:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ohcb007153; Mon, 2 Sep 2024 08:50:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oha5007150; Mon, 2 Sep 2024 08:50:43 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:43 GMT Message-Id: <202409020850.4828oha5007150@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 8b9f8a7e763d - stable/14 - arm64: Clear td_frame when returning to userspace 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8b9f8a7e763dfc533ce2abd5b48d1ba9f54165e2 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=8b9f8a7e763dfc533ce2abd5b48d1ba9f54165e2 commit 8b9f8a7e763dfc533ce2abd5b48d1ba9f54165e2 Author: Andrew Turner AuthorDate: 2024-06-12 13:08:13 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:17 +0000 arm64: Clear td_frame when returning to userspace When returning from an exception to userspace clear the saved td_frame. On the next exception this should point to the frame, however this is not guaranteed. To ensure the trap frame pointer is either valid or NULL clear it before returning to userspace in the EL0 synchronous exception handler. Reviewed by: kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44807 (cherry picked from commit 4eec584d79c1e8375d863c7eec7229ac7ec3f13b) --- sys/arm64/arm64/exception.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/arm64/arm64/exception.S b/sys/arm64/arm64/exception.S index b1990fc71281..0df440863632 100644 --- a/sys/arm64/arm64/exception.S +++ b/sys/arm64/arm64/exception.S @@ -214,9 +214,11 @@ ENTRY(handle_el0_sync) save_registers 0 ldr x0, [x18, #PC_CURTHREAD] mov x1, sp + mov x22, x0 str x1, [x0, #TD_FRAME] bl do_el0_sync do_ast + str xzr, [x22, #TD_FRAME] restore_registers 0 ERET END(handle_el0_sync) From nobody Mon Sep 2 08:50:44 2024 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 4Wy2XP12VMz5Mp6S; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XN5sJWz429t; Mon, 2 Sep 2024 08:50:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eV6CQl0VlKdI9NT4xTJ1rGq5g3zFe/FrM2aG96E0gt0=; b=pGOO2+FCtp1DH8fLMZueLR/CwFILZB1j5sEXLkm6hSlZSCL34k80Z+W+6ObeT0X+WZWPnM PzhNES9qIRDorwSIhRpLxiEprk998M1GBGHb51rW/Wv9aWWpcDcbkNQ4DWskE3WdDJcvw4 6DEDz4RwGZWaMiatQHPg6tNo4jCkzX8NFN0jSZY3SJf5rbgRSGTyYpIgCxjvxXMzqbXuNh 46/I2kwsPg24gPdlh6689Qfick9EPq3tBVCYmBJ1XwQG70trwMyKkGUuDWQF78exHtVus7 knReOxFLrdNjBhbw9IyPIENc4VF2CHYbHFuB+Lug/EzwfSTYpQOUfvjA1oCBow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267044; a=rsa-sha256; cv=none; b=LQF3gPjrBMoQ0XkYRyneZhZnzGIVncSWq4dSno0N5+qrrpfwrTVjCOw1lbrNwjY4RpRJjm qckT5o0F71ZvZSycKCJ20pq45t47KLDjjnkFCgXcQIBfWf5+aLa8E5oVlA2GTBOzSWkujC 1MMhN5xk9MHccEH8FNrkKmdR50KW1VuulRYNu6sn0wDKoT025CrU9xvyK8tEUUQMsqdv+A IrXeyQWjO1NGRktDfQ70631lcZY9aNIacwZfB9L3S5MZITq7jDoTgOczRIy/bjNQVUUuy6 XxvfGWZNG32USOMV/KdNeMZlTrSKq4THyrk3aAWXeVeFpkztUqjrHQ8jRP78HA== 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=1725267044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eV6CQl0VlKdI9NT4xTJ1rGq5g3zFe/FrM2aG96E0gt0=; b=D+Mu98VL8U/zEaHuS1ATKJ3Q24DQImDLIU4UQJe6NRI3uRbutR2LEwSV96GGxboubl13u6 rumcT2fuagBce170yzD+/7+OATz5WVSy8hfgaWgmuao+3Kjh27zUAvlUh/BoAQ2JOy9Vp3 ZZu5PGn8NQHHRG5UWgYEPUy/zYYh5jQeensdCH6QtTp+/IrhE4czLFo9ywtyAed1Gm6arh IvzI0u/xwHmEHJ3NeMl+jm9cfUfpy7b+sjqLbWHv0wQkJkDtBKln5Dzdi7hAbDznjuZdOK qBupbrG0/8Y0BxvccWdM3W0DfZzQo/vJRrLAa2FydJrsoMWP6nJk5CztP7bT3w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XN5Bgqz153X; Mon, 2 Sep 2024 08:50:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oivR007199; Mon, 2 Sep 2024 08:50:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oioQ007196; Mon, 2 Sep 2024 08:50:44 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:44 GMT Message-Id: <202409020850.4828oioQ007196@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 570fae59a8bf - stable/14 - arm64: Support counter access with E2H 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 570fae59a8bf9ded19c4de9bf001ee0fa2cf7229 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=570fae59a8bf9ded19c4de9bf001ee0fa2cf7229 commit 570fae59a8bf9ded19c4de9bf001ee0fa2cf7229 Author: Andrew Turner AuthorDate: 2024-07-23 09:18:00 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:25 +0000 arm64: Support counter access with E2H When entering the kernel with the E2H field set the layout of the cnthctl_el2 register changes. Use the correct field locations to enable access to the counter and timer registers from EL1. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45529 (cherry picked from commit 997511dffe651e1d2d708f37f2ced430a6ab3349) --- sys/arm64/arm64/locore.S | 6 ++++-- sys/arm64/include/hypervisor.h | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index 9f3739c85534..e637749b1321 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -317,8 +317,10 @@ LENTRY(enter_kernel_el) msr hstr_el2, xzr /* Enable access to the physical timers at EL1 */ - mrs x2, cnthctl_el2 - orr x2, x2, #(CNTHCTL_EL1PCTEN | CNTHCTL_EL1PCEN) + tst x4, #HCR_E2H + ldr x3, =(CNTHCTL_EL1PCTEN | CNTHCTL_EL1PCEN) + ldr x5, =(CNTHCTL_E2H_EL1PCTEN | CNTHCTL_E2H_EL1PTEN) + csel x2, x3, x5, eq msr cnthctl_el2, x2 /* Set the counter offset to a known value */ diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 85ac5cda7037..418047cb22f2 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -37,10 +37,15 @@ /* CNTHCTL_EL2 - Counter-timer Hypervisor Control register */ #define CNTHCTL_EVNTI_MASK (0xf << 4) /* Bit to trigger event stream */ +/* Valid if HCR_EL2.E2H == 0 */ +#define CNTHCTL_EL1PCTEN (1 << 0) /* Allow physical counter access */ +#define CNTHCTL_EL1PCEN (1 << 1) /* Allow physical timer access */ +/* Valid if HCR_EL2.E2H == 1 */ +#define CNTHCTL_E2H_EL1PCTEN (1 << 10) /* Allow physical counter access */ +#define CNTHCTL_E2H_EL1PTEN (1 << 11) /* Allow physical timer access */ +/* Unconditionally valid */ #define CNTHCTL_EVNTDIR (1 << 3) /* Control transition trigger bit */ #define CNTHCTL_EVNTEN (1 << 2) /* Enable event stream */ -#define CNTHCTL_EL1PCEN (1 << 1) /* Allow EL0/1 physical timer access */ -#define CNTHCTL_EL1PCTEN (1 << 0) /*Allow EL0/1 physical counter access*/ /* CPTR_EL2 - Architecture feature trap register */ /* Valid if HCR_EL2.E2H == 0 */ From nobody Mon Sep 2 08:50:46 2024 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 4Wy2XR1xgwz5MnyV; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XR0P31z42X2; Mon, 2 Sep 2024 08:50:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eX+P5vB1w52SG91CuMGNxRvOHgT6O/Fs6LjPcPz1/+E=; b=jyk5/23aShPdH5MSFmo1dcoI+W+aKgRsd96RIapBfk0lRgkL2smQ5gEGBj/RKZT2ePhdKf AW8czTFzcWo2jMok+r+wuIr5gs8M7SqEG7m7XCI/rqqw39LeBUV4Xz81IknJ5DroZ7xjkb jMaYUGvGMmaRUN9m1P0y/fb5qj1g7rSq/9p4REAZq+gzUhTuhRQ7ONVAtNshMpRU8NpMOp qmxprECq5WV0+HzF/5WDtPJ33YnZo9MgBBDQTjZ9IozrD+wYQLq7oAhEibp+oNG+lOMYx5 gbdG7Yxen3+af5ZgQGpMRhh5XqDlxsm7cc6R6pEq9QVaHrHeJ2wf6HCrWtpwkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267047; a=rsa-sha256; cv=none; b=h007sTa/hPlEzepZAS7G5D1C4FcyLEuBaXAlG1Mg1gT8LI8HGjq6CTTmIsHX/w1l6xiG1A CQhiLRts00MRiicN2HNicVm9j9uf6aMpqZ+0Qz7uPkyKmWHWKARaQjk0zSPSdeyfhX5DAq VEOg4yloLDdP+NPTJHydm/DRqc+kXOtV1dOUOLyOkcpxPCidx5QpIh3T/YSrfNQtdD+Lyw hs3oBpAw+v2TuZ57EeFH7rHFcj5oM3LR0lPO/HP4JeR2sM0NJMD5x8idXd//yYGmzfE8bb DYYevC1yC6BGsZlVZIbyFSYCxE4b3LesCFFXvyWElMeWwJsvFG1L5CQwKnEXUg== 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=1725267047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eX+P5vB1w52SG91CuMGNxRvOHgT6O/Fs6LjPcPz1/+E=; b=X7+NXsaGjlM6yWx6xdHd/hgcagIqngvGBzUNa6pNU34YHYX5Uk5P0ip31Ws5/CCE2pitwS L8/HhqFXnf/IIUqGLw4eRez5D1AztpmXLGQ81zlSgYgPtHAmhRBt4KsXfTOUgaaJX7wdh3 he5j0ZBx42rzD0t+FqARo5O6mSOZQqkTVF5NiGn2nAx6CXJlXOzXjgowo8E5pmWK5qxbRO cPPvKUvOuYLWjwnYi1VViNCsrraM4APeuM0vs6AJtdp05lCvMCNEljUCZGjMTA/bkBEoQd U8xNwN1iSfcls59HVr6G8cC+6thRKu+YekZZr9L4ZCMci4znDP9x6dxSjC0RgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XQ74PMz14qM; Mon, 2 Sep 2024 08:50:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828okE7007304; Mon, 2 Sep 2024 08:50:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ok16007301; Mon, 2 Sep 2024 08:50:46 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:46 GMT Message-Id: <202409020850.4828ok16007301@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 0fbb9df20dd8 - stable/14 - arm64: Ensure sctlr and pstate are in known states 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0fbb9df20dd88ba448ea622cf40b3855959653fe Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=0fbb9df20dd88ba448ea622cf40b3855959653fe commit 0fbb9df20dd88ba448ea622cf40b3855959653fe Author: Andrew Turner AuthorDate: 2024-07-23 09:18:24 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:43 +0000 arm64: Ensure sctlr and pstate are in known states Before entering the kernel exception level ensure sctlr_el2 and sctlr_el1 are in a known state. The EOS flag needs to be set to ensure an eret instruction is a context synchronization event. Set spcr_el1 when entering the kernel from EL1 and use an eret instruction to return to the caller. This ensures the CPU pstate is consistent with the value in spcr_el1 as it is the only way to set it directly. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45528 (cherry picked from commit 034c83fd7d85f57193850a73cc0ac957a211f725) --- sys/arm64/arm64/locore.S | 52 ++++++++++++++++++++++-------------------- sys/arm64/include/hypervisor.h | 4 ++++ 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index debfb90e74e2..3db1d3025967 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -65,19 +65,6 @@ ENTRY(_start) /* Enter the kernel exception level */ bl enter_kernel_el - /* - * Disable the MMU. We may have entered the kernel with it on and - * will need to update the tables later. If this has been set up - * with anything other than a VA == PA map then this will fail, - * but in this case the code to find where we are running from - * would have also failed. - */ - dsb sy - mrs x2, sctlr_el1 - bic x2, x2, SCTLR_M - msr sctlr_el1, x2 - isb - /* Set the context id */ msr contextidr_el1, xzr @@ -266,19 +253,37 @@ END(mpentry) * registers and drop to EL1. */ LENTRY(enter_kernel_el) +#define INIT_SCTLR_EL1 (SCTLR_LSMAOE | SCTLR_nTLSMD | SCTLR_EIS | \ + SCTLR_TSCXT | SCTLR_EOS) mrs x23, CurrentEL lsr x23, x23, #2 cmp x23, #0x2 b.eq 1f - ret + + ldr x2, =INIT_SCTLR_EL1 + msr sctlr_el1, x2 + /* SCTLR_EOS is set so eret is a context synchronizing event so we + * need an isb here to ensure it's observed by later instructions, + * but don't need it in the eret below. + */ + isb + + /* Ensure SPSR_EL1 and pstate are in sync. The only wat to set the + * latter is to set the former and return from an exception with eret. + */ + mov x2, #(PSR_DAIF | PSR_M_EL1h) + msr spsr_el1, x2 + msr elr_el1, lr + eret + 1: + dsb sy /* - * Disable the MMU. If the HCR_EL2.E2H field is set we will clear it - * which may break address translation. + * Set just the reserved bits in sctlr_el2. This will disable the + * MMU which may have broken the kernel if we enter the kernel in + * EL2, e.g. when using VHE. */ - dsb sy - mrs x2, sctlr_el2 - bic x2, x2, SCTLR_M + ldr x2, =(SCTLR_EL2_RES1 | SCTLR_EL2_EIS | SCTLR_EL2_EOS) msr sctlr_el2, x2 isb @@ -298,8 +303,8 @@ LENTRY(enter_kernel_el) mrs x2, mpidr_el1 msr vmpidr_el2, x2 - /* Set the bits that need to be 1 in sctlr_el1 */ - ldr x2, .Lsctlr_res1 + /* Set the initial sctlr_el1 */ + ldr x2, =INIT_SCTLR_EL1 msr sctlr_el1, x2 /* @@ -355,10 +360,7 @@ LENTRY(enter_kernel_el) isb eret - - .align 3 -.Lsctlr_res1: - .quad SCTLR_RES1 +#undef INIT_SCTLR_EL1 LEND(enter_kernel_el) /* diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 418047cb22f2..011f86e83fdf 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -148,10 +148,14 @@ #define SCTLR_EL2_C (0x1UL << SCTLR_EL2_C_SHIFT) #define SCTLR_EL2_SA_SHIFT 3 #define SCTLR_EL2_SA (0x1UL << SCTLR_EL2_SA_SHIFT) +#define SCTLR_EL2_EOS_SHIFT 11 +#define SCTLR_EL2_EOS (0x1UL << SCTLR_EL2_EOS_SHIFT) #define SCTLR_EL2_I_SHIFT 12 #define SCTLR_EL2_I (0x1UL << SCTLR_EL2_I_SHIFT) #define SCTLR_EL2_WXN_SHIFT 19 #define SCTLR_EL2_WXN (0x1UL << SCTLR_EL2_WXN_SHIFT) +#define SCTLR_EL2_EIS_SHIFT 22 +#define SCTLR_EL2_EIS (0x1UL << SCTLR_EL2_EIS_SHIFT) #define SCTLR_EL2_EE_SHIFT 25 #define SCTLR_EL2_EE (0x1UL << SCTLR_EL2_EE_SHIFT) From nobody Mon Sep 2 08:50:45 2024 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 4Wy2XQ0Hxpz5Mnqp; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XP6CWgz42GQ; Mon, 2 Sep 2024 08:50:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L19UTrLolykX/oC8EaP7So2K1coaVyD+GA2CBYUhPGc=; b=GVvjW+LnRZHd8uTJJp5NyyuNUNydBfg4S2CNIk4x87GKlpcQ36LI4nTPziVFrcyt9Ne6t6 lkDwk/bn6HOuZdu4R/B7tr6UlIKnqVGZgAYLJ/tAjS3yZy8MV7zS2OiWAsYG7Xq7Z1jItp 7hwuOArdqz6uZWKYgrgiuzQSbl1nZuOrxUiuVdvkcSJ7nv1qBQrjV+xfK3xu8xxFDMPLCu sG4zjYtgJ+TrgTHu1LqM/j9wkjha0F4Clov9Sn/CkT6Ll8JRp/YHAZRCo3pakgRhIZZRNn B6RrwQO2CLJVch571JVGOP55TLKnrz9EHW8Lt84CAhiUaNkSpKJz+ZKKVc2avw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267045; a=rsa-sha256; cv=none; b=q9z038jGZ/nWgUvhuhGA3wHx4fts/+O7hpqh7pi2H90yhtS7yrLMzG4IaubnIdzpJCcucL WQ+jcqrKvR1q/ggDRaqUz/aP/tLxZaCH3j6JrzFxeW9Nq41tOGeVMg1Opwrgumfr/JAkxM UkI2iu3ICathjIER2imE+q6246YMl39ywTA42T0Y3XgZHeXiuEf8/ampRt7VBkSv+o6OfU mgM8NiwFTzNDxlh5vkbDGDRnDaCDo49hfX7oyLlpnwAdjvHkS8K9Q3PpD24Vhi02hNya/r E336tfCnVZ51jbTdy5Xw69OBW2WEFBtAlsbcteF3aA4+VUsLsWMn1NaB7jFFwg== 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=1725267045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L19UTrLolykX/oC8EaP7So2K1coaVyD+GA2CBYUhPGc=; b=S+O/dBQ7CmKLFbG019MNcJ0AP+/TZvoxZBV0zJb3+uuQv40/XdIrLAZieCkbEfKT0cusI0 9HgpeEZvmwEmcRFvzuHXMUF3H8yYf7oGNZ9+0JP8ITfpV2lsBe3Vcmdd1ZdFmuN7MdRE9w 4j/3YyA0YD8kGDCEmsKlRZElngQ1cHao/wID0JhGbz7lTsXkNFbHSJQqz1qUXLx72Ptwgc bv0l6/zd9Fsm+uURN6wUsu40HspyyHs1ANC9pyg7E3vPiylkfcFM90G9W1Nt4UKfHbDwKx +ITvWb+5piqSyefA4xe3p5sGyvloAW1D/iye6q4l6x4rqLH6op4n+AabX5R7lA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XP5qctz15Ny; Mon, 2 Sep 2024 08:50:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ojVF007248; Mon, 2 Sep 2024 08:50:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oj71007245; Mon, 2 Sep 2024 08:50:45 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:45 GMT Message-Id: <202409020850.4828oj71007245@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 94865825c014 - stable/14 - arm64: Fix the gicv3 check in locore.S 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 94865825c014dfaab300ea785b8cb7013d23187c Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=94865825c014dfaab300ea785b8cb7013d23187c commit 94865825c014dfaab300ea785b8cb7013d23187c Author: Andrew Turner AuthorDate: 2024-07-23 09:18:08 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:32 +0000 arm64: Fix the gicv3 check in locore.S In locore.S we need to configure access to the GICv3. To check if it's available we read the id_aa64pfr0_el1 register, however we then only check if a GICv3.0 or 4.0 is present. If the system has a GICv4.1 this check would fail. Move to checking if the GICV3+ is not absent so this will still work if the field is updated again. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45530 (cherry picked from commit 57ef7935eb114e98e7e554c5ffbded68fd038c04) --- sys/arm64/arm64/locore.S | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index e637749b1321..debfb90e74e2 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -341,9 +341,8 @@ LENTRY(enter_kernel_el) mrs x2, id_aa64pfr0_el1 /* Extract GIC bits from the register */ ubfx x2, x2, #ID_AA64PFR0_GIC_SHIFT, #ID_AA64PFR0_GIC_BITS - /* GIC[3:0] == 0001 - GIC CPU interface via special regs. supported */ - cmp x2, #(ID_AA64PFR0_GIC_CPUIF_EN >> ID_AA64PFR0_GIC_SHIFT) - b.ne 2f + /* GIC[3:0] != 0000 - GIC CPU interface via special regs. supported */ + cbz x2, 2f mrs x2, icc_sre_el2 orr x2, x2, #ICC_SRE_EL2_EN /* Enable access from insecure EL1 */ From nobody Mon Sep 2 08:50:47 2024 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 4Wy2XS3rZNz5Mp3r; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XS28BVz42Zq; Mon, 2 Sep 2024 08:50:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgJcqG5v6czXF0pSWYl9EyXDB00l1sVwfW3xz27MFCY=; b=AEarLXJYWmv6YR97ARO/KiKEx/+L5iU6G4/czsBJW6aEpuY1dKOs8WVz92555mTGRljgdz c2rBKr9qhJvUToLuNU30+yxbtlD9Xfg+C/rV08jLWb0zCbKWxEHRKTrSY0Pcq0XvR4lcc+ zeag3cKVR+6FxXbE1CnyaokZWplKsXKTVnip/VRtKNH6vkqhIAqrT176R45CeVbG4AnOBF hPLB6q/BvWFzpXL0Oc4RUb+g+LN92yTpYHT8lUQ+Y5P4M/VUxuusP2CUOymYlsRq0pMgjk leKpiRc8vpVv6K5LwMk+qCwo/ttIujjdMaUBsBC9ivAiEwmX93YwEEiJU/28eg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267048; a=rsa-sha256; cv=none; b=On3mEb2v3m+mMePJ+He6XZmd6Goi8//UeFc9dxc14B1/Diay0ZeTHtrGWZ2sh/fMQqZ+MM NN5v7hYPN0JakrcWD96wKYdP7YEO5q+kZcVPWrLbm5CZF+SJMXpw/dQFUiRgI/2y0hq9gL Pjaf09TS/kGkgKBEGDZn23xOmWwXJ7NNic1wd06WHOIKYlLkAQRoaaDXqKAIUEE3sE3XGX 9en47Q/1ZbbO96ABivpySO8PXoz1mUBzaJ+4vcy0p7IFhq6rC4KIhR8lj+xOuZuW/vaqXH h/EU5e6I0ZVdgZNFu8cb25pJdJw/vtgCQjs6p/6INNuG1VXXpeCPveRiQTtIZA== 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=1725267048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgJcqG5v6czXF0pSWYl9EyXDB00l1sVwfW3xz27MFCY=; b=L6/TdVDjkshErYqYfgAIxb2SifY/1FulE2Ol1P9zNrIfBp2bdeW/uEpxA0sId4u0D6KSow A2psU5fz8GbkvbLpwwzvQtvHPeVp+xI6x0zyJBjqojS2cJIHj1U6OUORM/58nTu9Xu1X1w xTu+y+dp+V2cAsZtir7i62T08PKym5mS7UTVZoEUSBXLP1dbYXLG4vzuaQ32+T+sdED+ix R8OxB/K77IFqmNWd8DdQRVD1Z3JGQq5a8cr+6Lt6YSYqKdREIxMkx5vmnlmSc8qq67fSmj OIHhEHWRMKeRuxXbFNJCPgaASOZ9+VcO36mEb3TnItMcW54k0Daz4Ey8/sV8oA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XS0RQVz153Z; Mon, 2 Sep 2024 08:50:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ol7Q007370; Mon, 2 Sep 2024 08:50:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ol46007366; Mon, 2 Sep 2024 08:50:47 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:47 GMT Message-Id: <202409020850.4828ol46007366@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 75861a57b6fd - stable/14 - dev/uart: Add APMC0D08 as found in the Intel E2100 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 75861a57b6fd721e47c8a7cb43c4882c200cca1d Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=75861a57b6fd721e47c8a7cb43c4882c200cca1d commit 75861a57b6fd721e47c8a7cb43c4882c200cca1d Author: Andrew Turner AuthorDate: 2024-07-23 09:18:36 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:48:54 +0000 dev/uart: Add APMC0D08 as found in the Intel E2100 This uart has the requirement for 32-bit sized and aligned memory accesses. It is also described in the Serial Port Console Redirection Table (SPCR) with a different interface type value. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45834 (cherry picked from commit 9840598aa31f2a89272f5bef6545e316f254f0c6) --- sys/dev/uart/uart_dev_ns8250.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/uart/uart_dev_ns8250.c b/sys/dev/uart/uart_dev_ns8250.c index a49215218830..ced3b44b5749 100644 --- a/sys/dev/uart/uart_dev_ns8250.c +++ b/sys/dev/uart/uart_dev_ns8250.c @@ -447,6 +447,7 @@ struct uart_class uart_ns8250_class = { static struct acpi_uart_compat_data acpi_compat_data[] = { {"AMD0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, {"AMDI0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, + {"APMC0D08", &uart_ns8250_class, ACPI_DBG2_16550_COMPATIBLE, 2, 4, 0, 0, "APM compatible UART"}, {"MRVL0001", &uart_ns8250_class, ACPI_DBG2_16550_SUBSET, 2, 0, 200000000, UART_F_BUSY_DETECT, "Marvell / Synopsys Designware UART"}, {"SCX0006", &uart_ns8250_class, 0, 2, 0, 62500000, UART_F_BUSY_DETECT, "SynQuacer / Synopsys Designware UART"}, {"HISI0031", &uart_ns8250_class, 0, 2, 0, 200000000, UART_F_BUSY_DETECT, "HiSilicon / Synopsys Designware UART"}, From nobody Mon Sep 2 08:50:49 2024 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 4Wy2XT6lR7z5Mp6d; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XT1v2pz42MY; Mon, 2 Sep 2024 08:50:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SpT5rEju7Ew++r/DNDb2jrNqM3ebjua9OoVHfLc7JXg=; b=o/YunXOcHnJGThmj2fUgTymiLIoZ9Dv9fa+EJJd6mBwrbcUpV8P5ZBIQu0XfUOLeMgGU4a SZHyXfTlvwEz3XRss0o89CjVa2VQdsG6Scu6ZVuZy7wTcJa5Xms++U1T+Y30HaFSWUmp8X JGpfkQxYTJoiCwLwwAl05DQiXT26owBw+1c40qKNj6Cj9Zwjbk11L/kBbwucpMutt3YMP7 q6PrGAjvJqn7FSLXMi+3Bzh6PuTAAMQLIk5NqJrz8ZG+DKM5iZFBzML4OqgnYYQn25otd/ +qk5aJ4em673BSsAAUxcZDNiYYxayGauetlIEcjBNKy3bkvdAGYMDv+mDdC6SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267049; a=rsa-sha256; cv=none; b=QgRdXxcpW8fEZ27uQoUZOFjctdcePO8JAJwp49KQ7PDUCj2J4ZUIuGDpmCQ8vjmOE6bn2A kh9S3GDbCIA4X4K00Yu11vuP0pIq3WUwLs4UFaOZ7z509SKPL2k+Myu6/9IAa+MxV9IRIU 3OeHswUlY3ISv2tCTo+Rd7vv4M/5s1hiI6obNvH9YsPmfM2i1aohgDAtTYU9j+7/iVkofn 29OEHvAXeSR0arSebnZBFx9R2D98FiOI5yVtIG6gbq/oqDt+MV3gIFCBv7NOZd6Nq6y/M0 3P8xNdRCBOkGAh91PM6QV+btASPT4Qb4N0ARinvCBL+OxT5NDQdbydDguiVv2Q== 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=1725267049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SpT5rEju7Ew++r/DNDb2jrNqM3ebjua9OoVHfLc7JXg=; b=etm6+SGgdu0MGZ2ksuzYjYoXPun2cgFi36XOU+tRGmhAqrknrfT3mWs76XtUu1kQIEKYrb SXt6DJm+fkhgq6pPUMeJkmgtMuZ+TpaL2D9RWotjGCa1LMFulzNG85lUxc1MD/anObaQa8 /gt1h+1/Unzb2+7P/c+EBvBxrs+TK+UtCCgXNV7uyYU4rQJ4JNkt24EJWZInY0JB42/J2V SdYkmrRZMo+lU9Y5i4+Ta88OpzsVRvL0XXcfv4/wEgj9LLYwVPUjwdaAgkFImOWCbiZPYK XxhrcFEv4vySseVg+Ijnd/uYx/4zqn/J1wbVQWNf6w9WMwveEqS+V/1njwVYZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XT1TJpz1597; Mon, 2 Sep 2024 08:50:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828on55007411; Mon, 2 Sep 2024 08:50:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828on7K007408; Mon, 2 Sep 2024 08:50:49 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:49 GMT Message-Id: <202409020850.4828on7K007408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: be3d6ab9e147 - stable/14 - buf_ring: Remove PREFETCH_DEFINED 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: be3d6ab9e14790848e9331db27d48f92d6160bef Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=be3d6ab9e14790848e9331db27d48f92d6160bef commit be3d6ab9e14790848e9331db27d48f92d6160bef Author: Andrew Turner AuthorDate: 2024-07-29 10:28:15 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Remove PREFETCH_DEFINED I'm not able to find anything in the tree that ever defined it. Remove as it's unused so is untested. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46148 (cherry picked from commit 5048308bdb76f40e88c9133658fc61d82158ded2) --- sys/sys/buf_ring.h | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index cb18175c3a75..6bd3b91dcd04 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -165,9 +165,6 @@ static __inline void * buf_ring_dequeue_sc(struct buf_ring *br) { uint32_t cons_head, cons_next; -#ifdef PREFETCH_DEFINED - uint32_t cons_next_next; -#endif uint32_t prod_tail; void *buf; @@ -204,20 +201,10 @@ buf_ring_dequeue_sc(struct buf_ring *br) prod_tail = atomic_load_acq_32(&br->br_prod_tail); cons_next = (cons_head + 1) & br->br_cons_mask; -#ifdef PREFETCH_DEFINED - cons_next_next = (cons_head + 2) & br->br_cons_mask; -#endif if (cons_head == prod_tail) return (NULL); -#ifdef PREFETCH_DEFINED - if (cons_next != prod_tail) { - prefetch(br->br_ring[cons_next]); - if (cons_next_next != prod_tail) - prefetch(br->br_ring[cons_next_next]); - } -#endif br->br_cons_head = cons_next; buf = br->br_ring[cons_head]; From nobody Mon Sep 2 08:50:50 2024 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 4Wy2XV50PXz5Mnyb; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XV30hwz42QF; Mon, 2 Sep 2024 08:50:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ek5YanpJxnukBV7V+v2Qwn/0+60xYAECF130XLZoC2A=; b=EZn9sd4i5H/Tw51vSRtx1YK3h7xCcLYTh5srX2qTTe2bnRtYTuNhtfgq/ZQSmLv1Ab4U8Y z3kG0acRA8JejPsD8a/MLj2rfMLeb2JqFYC3959jMwI2IBRMkrFLqOrXAP4cFaGkF32Bla eY+QNUCLsgbqtZkoK0eKZPqkdjHB+eJZkMTVCiLsUrPx60Kg0vkpyjS2SVv3m8cdA5Pljm FHIreNBsE8mV+6OHzv68o6SYiHpbkmEdLc2sWAiQ8mh0EQ8YL4QF83mRJ+DQ8Ysa0mRiyV heyzmj31kFmSYl6QymO36vvZ9c+A+73SlffSa00tYap3caRHs++fonJS/v5OCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267050; a=rsa-sha256; cv=none; b=xoKRKrZoy1038x7v5kvRm1tZCgTkF71RrmOzpWPZw2oIorxO+4evTOqFZ5oIWbNE4+Vc5h UuoGh1Y9NuNMP35W1irAxpVrl9D41UMjuLmPwL28v73IED4u0jJM4wHqHh/dEcor5B2vAE dS13NzT3HD6Qi/OYvKmtAsLeZZ78HDP1YLrBV9W7IxidBMujIjTbFW40p6DIHhuzN467Je hdB4F9BzPssB6FG5BQ78/qwKpADrfaP3BuWYPAZryLJtA0ryiKSDEIaLpJGzLIZOWuT1tz sOflVEEmPd2uUTCZWSvqNXnD1iEIO/7qyQyJsljgDUpFRBJS/BFKaS9StuQm6A== 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=1725267050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ek5YanpJxnukBV7V+v2Qwn/0+60xYAECF130XLZoC2A=; b=MsFwqx328bm7Qp8wgDuN/X9WKyqDHQcQnAWwvVe2ZnsbyQ6Zh6M5PQ/nYgiJuqV1S/xcwi bVidz6Mf7nDMkRAdaCU7WVxyv7gg5zo7MnHSWKvZ1x0IFkDXqc2YA/ApLJVx6zi6TG1+rA tGlPmsF9LeyQVGSR/njrKmxkQbKZbZwrINySejH0HpHRwZh2w413McD6Vjh2i/MkT3QsoT 14Hg7ycsQ+m4rhDcbGjSyXdugJ6AbvqBTOUPEOG4/pa96TDl5iMTGzpZOZ188nqjUVd2a3 IBuwAQWPPis0kCK4P4mlMYONfO0dchZouk6PM0RXmxfeHFSCY4/KCBe/AyPaeg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XV2D2sz15LW; Mon, 2 Sep 2024 08:50:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ooKm007463; Mon, 2 Sep 2024 08:50:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ooVJ007460; Mon, 2 Sep 2024 08:50:50 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:50 GMT Message-Id: <202409020850.4828ooVJ007460@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 8ecb8e1c38e8 - stable/14 - buf_ring: Support DEBUG_BUFRING in userspace 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8ecb8e1c38e80ec2aae73536522fe2932af65ee8 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=8ecb8e1c38e80ec2aae73536522fe2932af65ee8 commit 8ecb8e1c38e80ec2aae73536522fe2932af65ee8 Author: Andrew Turner AuthorDate: 2024-07-29 10:28:24 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Support DEBUG_BUFRING in userspace The only part of DEBUG_BUFRING we don't support in userspace is the mutex checks. Add _KERNEL checks around these so we can enable the extra debugging. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46149 (cherry picked from commit d3d34d56bee4222b3bf3ec26d7877998405115a3) --- sys/sys/buf_ring.h | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 6bd3b91dcd04..2d61f393712d 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -35,13 +35,9 @@ #include #include -#ifdef DEBUG_BUFRING -#ifdef _KERNEL +#if defined(DEBUG_BUFRING) && defined(_KERNEL) #include #include -#else -#error "DEBUG_BUFRING is only supported in kernel" -#endif #endif struct buf_ring { @@ -54,7 +50,7 @@ struct buf_ring { volatile uint32_t br_cons_tail; int br_cons_size; int br_cons_mask; -#ifdef DEBUG_BUFRING +#if defined(DEBUG_BUFRING) && defined(_KERNEL) struct mtx *br_lock; #endif void *br_ring[0] __aligned(CACHE_LINE_SIZE); @@ -210,8 +206,10 @@ buf_ring_dequeue_sc(struct buf_ring *br) #ifdef DEBUG_BUFRING br->br_ring[cons_head] = NULL; +#ifdef _KERNEL if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); +#endif if (br->br_cons_tail != cons_head) panic("inconsistent list cons_tail=%d cons_head=%d", br->br_cons_tail, cons_head); @@ -277,7 +275,7 @@ static __inline void * buf_ring_peek(struct buf_ring *br) { -#ifdef DEBUG_BUFRING +#if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif @@ -296,9 +294,9 @@ buf_ring_peek(struct buf_ring *br) static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { -#ifdef DEBUG_BUFRING void *ret; +#if defined(DEBUG_BUFRING) && defined(_KERNEL) if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif @@ -320,17 +318,15 @@ buf_ring_peek_clear_sc(struct buf_ring *br) atomic_thread_fence_acq(); #endif + ret = br->br_ring[br->br_cons_head]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - ret = br->br_ring[br->br_cons_head]; br->br_ring[br->br_cons_head] = NULL; - return (ret); -#else - return (br->br_ring[br->br_cons_head]); #endif + return (ret); } static __inline int From nobody Mon Sep 2 08:50:51 2024 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 4Wy2XW67hSz5Mp41; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XW43qxz42ST; Mon, 2 Sep 2024 08:50:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hz2dtQHA6NzTAvt5HdBvOxnt2tqmo1RHVMhwL8tCYvc=; b=Mi9podq6+a+94dOXrQ+6wOT4quar0+M5Njt/cbAdcAhs2u8y2HksJ5GcnyhJlui0p4gaJS iiluLF60WOVJfKTFtrVJjm2NGfB9CaCM9HJyuqqd8p1mjvTDPtEKDCjh2mELcMV7bO+HBx RrnpPp+BDvZ6jyqPQNejlv0NrHYU/iW00Mk7VF+vbFFubpxFHKfIRWHA3MvQMbvMvKA8h5 OnN/eh4lkQPZnda/ilW3G0Vf2lhiC+aG1HrDNqRB9xyclKkm/6mXEk/0POQXU1D9TtuMTJ kZnh6yawLZT7Ine3rSBkMyt9iWEyz6qRAhuKm2j5rpKZIM2rsUMYn9OXw0llUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267051; a=rsa-sha256; cv=none; b=CyW31pyKo8fh3RDOxS6Z1eoqB4/cLnf8SucJiVJNIb68k4v+QMulWCaYFYu9cstXKWcsDb 0lLn+XdT8T6DA6DwKH9AJDgO+GGqYhacSo2ZgkprFepZ1nnF0WwpB6oopwM6We8KMjKiyz C45SFnMKQbb1qwaBId7PZuBAWOYag2oNV3BT2jJiF+zY7RIOdNm1QgurO4vDxkZnlqlyA9 J4hrDUIxTKSUeYsBsylFW6EP8CHEWQUuAwIW+8heiz7dg9Yi9d4ns62rH4Vw6Ee5ksHVOU IHJF3+Ag+UyD7afDbqnvYa9Xs1xGlLUAN8oHnEkjRL/I5ReOlPd+XpROWgxpNQ== 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=1725267051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hz2dtQHA6NzTAvt5HdBvOxnt2tqmo1RHVMhwL8tCYvc=; b=XsXLyMXWSNs2rDJrjgpaLOY2JmfW/eLF4iwIYYYJCUbNfgKjI6OIFgUGOxvDdGBZlm8wvV X4gPA4BYQLebC14KZzzisJWGYcrgBqqMtVBvIN6oSVrvsVVo07SqYpwF9SfOKBILltiM1k 5oyg6V9gYOoDxmovUfah88ZUsxUXg9lI6r9RGVyPU7VFgNX3G9CAbIjEr/9DZNHsKfUGly 5oVUPiNEnB9HY7z0aTDC+h3Zj4Guge0ACJlQh7yOMq2WTKKuCl3J4EZ7VPIhXsWRV/H7t2 TNIC/JClalvgHmH8crSztpWZyxj3TVIORm78GIV9W+ggY/blQqSIz9TTThshYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XW3Wk5z15P0; Mon, 2 Sep 2024 08:50:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828opOp007503; Mon, 2 Sep 2024 08:50:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828op7D007500; Mon, 2 Sep 2024 08:50:51 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:51 GMT Message-Id: <202409020850.4828op7D007500@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: be17061faf3b - stable/14 - buf_ring: Consistently use atomic_*_32 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: be17061faf3b9811202b335cbf19b2b14aacfa01 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=be17061faf3b9811202b335cbf19b2b14aacfa01 commit be17061faf3b9811202b335cbf19b2b14aacfa01 Author: Andrew Turner AuthorDate: 2024-07-29 10:28:33 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Consistently use atomic_*_32 We are operating on uint32_t values, use uint32_t atomic functions. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46150 (cherry picked from commit 17a597bc13aa59ee90facaf9b8dada80f32eb52d) --- sys/sys/buf_ring.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 2d61f393712d..47ed04f570c1 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -94,7 +94,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) } continue; } - } while (!atomic_cmpset_acq_int(&br->br_prod_head, prod_head, prod_next)); + } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)); #ifdef DEBUG_BUFRING if (br->br_ring[prod_head] != NULL) panic("dangling value in enqueue"); @@ -108,7 +108,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) */ while (br->br_prod_tail != prod_head) cpu_spinwait(); - atomic_store_rel_int(&br->br_prod_tail, prod_next); + atomic_store_rel_32(&br->br_prod_tail, prod_next); critical_exit(); return (0); } @@ -132,7 +132,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) critical_exit(); return (NULL); } - } while (!atomic_cmpset_acq_int(&br->br_cons_head, cons_head, cons_next)); + } while (!atomic_cmpset_acq_32(&br->br_cons_head, cons_head, cons_next)); buf = br->br_ring[cons_head]; #ifdef DEBUG_BUFRING @@ -146,7 +146,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) while (br->br_cons_tail != cons_head) cpu_spinwait(); - atomic_store_rel_int(&br->br_cons_tail, cons_next); + atomic_store_rel_32(&br->br_cons_tail, cons_next); critical_exit(); return (buf); From nobody Mon Sep 2 08:50:53 2024 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 4Wy2XY6Xztz5Mnxg; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XY5QPqz42YJ; Mon, 2 Sep 2024 08:50:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/JLzZTw6sE3FhxkAikcxI9MLfHpGjV4cKMkYvL9LWLs=; b=RDsEzNthuIngbNQPiKLgK+kmnKZKAe3fRSdsPe4LjDSjadzfU+V9gUYdIHTAIZxc4oaTVr Tbwj6rEih+7XR8drqa/elAnX5nsmTLogSslyqwiMazXwULoT0K49OOfvWkIcJD0Pc8SEbc jDdsBSTvS44zjh/l5IqRAV+ETGu6jn6SYQPHSM7n5g9OdqXF93WacE/CGUEg82CZC7DzIJ 1Yh6cMJ3CYj6T0WKfcq7HCjOrvkfuuw/2wM8QT8XBnLX3tFnRPfMpPaAyU1h4w/D+4fyIM 0fV46t0ctOXWKZrQgb4gdQ6ZewcGFvvD6xZXNdn5v6VkuOdWzoKWyxrsvP56YA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267053; a=rsa-sha256; cv=none; b=bR8pZZxploI8Oz8Tn3hvln6oS0q5kDqWip54Dc+ja7ksyooUmMauKdF9vNy1ce1x3jDT8L TA8lZJbo1oKup+d3bhnKYbpQIQgWJmImmIoXcHtAC0UFyPkCmw3HQb/jRPL0SmsXYdkUoq x1kbeY+tkq1ePC4yg7YbTCIivTnHkOFc0l7uQtNMfeErq30kUB4GRsoOL2jw6nsQojs27t ekQmDRpTsjTQsQI62IprHid8biDmUIrYk+nJ36/gZJR9T26HUhhAJ4Ug/MDz7GFx6ehrYS rv/nvsnSFx2jDen1Uc12AeURVwYeMO11C/dYpNJXv5VMLD0MAXoLpS5pFORBEA== 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=1725267053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/JLzZTw6sE3FhxkAikcxI9MLfHpGjV4cKMkYvL9LWLs=; b=W0aqHQKGoyTGZ5wllbo3UgIaL22ul8l/p95chR1HGmZ+boWOh+lSViROCmOp6XHH6GXWwa a0GqZP+OrGHjf9DmKUZ9ZwonbVE3RKqOv0IzdXCGZ/3hiAaIstUIFMTJWg5SOG3AfSUWHV oHqRSBjL+yp0RgWLRkVgE6vSsvb60AEeriMHTlSJ6MQLFtyylGtqN9Zshr3+0kIbwBxabn dfiNnBXLNCh0+rAXQkApqeP/QKZqE5xo8KNa4t1vQDwEgBlQkqOHw2GeGvrlvtg4yHmDyX wUW8AFictI+sVcI3LQP4ptZrx3jIncdSwbl0BJp8qlHGIAvFhTy3K4YMOPZw5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XY52QLz15LZ; Mon, 2 Sep 2024 08:50:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828orZx007604; Mon, 2 Sep 2024 08:50:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828orij007601; Mon, 2 Sep 2024 08:50:53 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:53 GMT Message-Id: <202409020850.4828orij007601@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 80df53c7fb1c - stable/14 - buf_ring: Use atomic operations with br_cons_tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 80df53c7fb1cefffff419adbb0767f36a44c27d2 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=80df53c7fb1cefffff419adbb0767f36a44c27d2 commit 80df53c7fb1cefffff419adbb0767f36a44c27d2 Author: Andrew Turner AuthorDate: 2024-08-19 09:06:52 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Use atomic operations with br_cons_tail Use an atomic operation with a memory barrier loading br_cons_tail from the producer thread and storing to it in the consumer thread. On dequeue we need to read the pointer value from the buf_ring before moving the consumer tail as that indicates the entry is available to be used. The store release atomic operation guarantees this. In the enqueueing thread we then need to use a load acquire atomic operation to ensure writing to this entry can only happen after the tail has been read and checked. Reported by: Ali Saidi Co-developed by: Ali Saidi Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46152 (cherry picked from commit 44e1cfca417c5ef0db908f3836ec3ba704ef1de2) --- sys/sys/buf_ring.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index dec0f971ae44..9aeb5aa19fa8 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -91,7 +91,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) do { prod_head = br->br_prod_head; prod_next = prod_head + 1; - cons_tail = br->br_cons_tail; + cons_tail = atomic_load_acq_32(&br->br_cons_tail); if ((int32_t)(cons_tail + br->br_prod_size - prod_next) < 1) { rmb(); @@ -229,7 +229,7 @@ buf_ring_dequeue_sc(struct buf_ring *br) panic("inconsistent list cons_tail=%d cons_head=%d", br->br_cons_tail, cons_head); #endif - br->br_cons_tail = cons_next; + atomic_store_rel_32(&br->br_cons_tail, cons_next); return (buf); } @@ -257,7 +257,7 @@ buf_ring_advance_sc(struct buf_ring *br) #ifdef DEBUG_BUFRING br->br_ring[cons_head & mask] = NULL; #endif - br->br_cons_tail = cons_next; + atomic_store_rel_32(&br->br_cons_tail, cons_next); } /* From nobody Mon Sep 2 08:50:52 2024 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 4Wy2XY0cwwz5Mp21; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XX4XG2z42KY; Mon, 2 Sep 2024 08:50:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aOMO3ZOq0qcGEScm3ooxL+ZR68Fehsvhi+5f0Agj9dw=; b=iBTFBSPMQwmkQdfBQIfv/3mYK8cXFraZl73JvFDUvzV9bl6DIpcYV/3dwvL7NSeYQnLWJz EcjlevDBerXiU1EcCXCjLbmTPNDHF8l52IrZmT2Tcb+k60R2eqD6eL63TIS7eqgpJ99HeU tXMtiS6jhjAJKWjKzdaOO/xJpkuyT4jeIAIwe/Q54KM3ZSX3sCs6xRu3khvGqX+D2g0hGi 1EdSALog/kVK6Cork4fjJWDCf5VqffSYOjwiAc8AkxNFDei+f/M2ri30C78QKpANWYlx26 bKyCcr/aALbqN65Q/menBnd8C+w/iNC8javwnLggbXbmgl3nQSreNrMNJ2NVpw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267052; a=rsa-sha256; cv=none; b=xvKlR2zwcVsUskPiwEI/TvBU+kfGUV3gEqvllNGulRR3ejHJaLfmbLtRzrsiLVr3TDUZpS 8b9IaDYzWhh/rud2H+q28oTQv5kh2hYdkjYArol9vwyagDWepLV868BIiiYJhgCuLuzxpn KiD4rm9IxKKj6NlPOpkAs4sxRXxPLzFMVzujcz+GIIhcrQRzCYBTFMBeABYH4rvAaUuZl4 3nrXDcHDOJCN8T6lDrMxKfL9i5/lPV01UCbGXJ848vkgbf0zCB9U+RQNzO92BfisRw46BC 6Ur++zcnBQfsjfQrZTYKkiEgsa36Mrix4IQo4i4eUXCXlDjXFJjgTMn9UtF8Bg== 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=1725267052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aOMO3ZOq0qcGEScm3ooxL+ZR68Fehsvhi+5f0Agj9dw=; b=px9DjQ1OVrC4a0Hz4jhQzj+PkrKbk9bMSq2TnWi5sT/JQiQ8c3thQO4mnGZNvkaAfkq7Ba lXvjFd7gBR3JZXJ2IPvHKmF9oA253UjJNndI9ZZa8dfapSPivV6qK7tKyPoPOQN4v+N1e/ SAKB90aV5pQNTfuEe+sNS4baDy6iPTN02XMh5Prs6PKAxaloyZL1ldeMMTDJqb+MUWmttq F+7BD9LRm4GxQKLYLSPgf/l6c9ekzkU3Ddu4zQ/aupqO+1MDEl1jHM/vJTpO/kMU9Uiyku BMgNkLFt7/ugbPhyvsMSvacoR7myre+vyS3oUXxbo2HqqssNrmwOtMOF0Y1/Zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XX43gDz14qP; Mon, 2 Sep 2024 08:50:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oqlE007554; Mon, 2 Sep 2024 08:50:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oq8x007551; Mon, 2 Sep 2024 08:50:52 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:52 GMT Message-Id: <202409020850.4828oq8x007551@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 56e8c3ec5241 - stable/14 - buf_ring: Keep the full head and tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 56e8c3ec5241ec4747b8fdd42e0172325c7fc378 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=56e8c3ec5241ec4747b8fdd42e0172325c7fc378 commit 56e8c3ec5241ec4747b8fdd42e0172325c7fc378 Author: Andrew Turner AuthorDate: 2024-08-19 09:06:44 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Keep the full head and tail values If a thread reads the head but then sleeps for long enough that another thread fills the ring and leaves the new head with the expected value then the cmpset can pass when it should have failed. To work around this keep the full head and tail value and use the upper bits as a generation count. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46151 (cherry picked from commit 3cc603909e09c958e20dd5a8a341f62f29e33a07) --- sys/sys/buf_ring.h | 87 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 47ed04f570c1..dec0f971ae44 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -40,6 +40,15 @@ #include #endif +/* + * We only apply the mask to the head and tail values when calculating the + * index into br_ring to access. This means the upper bits can be used as + * epoch to reduce the chance the atomic_cmpset succeedes when it should + * fail, e.g. when the head wraps while the CPU is in an interrupt. This + * is a probablistic fix as there is still a very unlikely chance the + * value wraps back to the expected value. + * + */ struct buf_ring { volatile uint32_t br_prod_head; volatile uint32_t br_prod_tail; @@ -63,28 +72,28 @@ struct buf_ring { static __inline int buf_ring_enqueue(struct buf_ring *br, void *buf) { - uint32_t prod_head, prod_next, cons_tail; -#ifdef DEBUG_BUFRING - int i; + uint32_t prod_head, prod_next, prod_idx; + uint32_t cons_tail, mask; + mask = br->br_prod_mask; +#ifdef DEBUG_BUFRING /* * Note: It is possible to encounter an mbuf that was removed * via drbr_peek(), and then re-added via drbr_putback() and * trigger a spurious panic. */ - for (i = br->br_cons_head; i != br->br_prod_head; - i = ((i + 1) & br->br_cons_mask)) - if (br->br_ring[i] == buf) + for (uint32_t i = br->br_cons_head; i != br->br_prod_head; i++) + if (br->br_ring[i & mask] == buf) panic("buf=%p already enqueue at %d prod=%d cons=%d", buf, i, br->br_prod_tail, br->br_cons_tail); #endif critical_enter(); do { prod_head = br->br_prod_head; - prod_next = (prod_head + 1) & br->br_prod_mask; + prod_next = prod_head + 1; cons_tail = br->br_cons_tail; - if (prod_next == cons_tail) { + if ((int32_t)(cons_tail + br->br_prod_size - prod_next) < 1) { rmb(); if (prod_head == br->br_prod_head && cons_tail == br->br_cons_tail) { @@ -95,11 +104,12 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) continue; } } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)); + prod_idx = prod_head & mask; #ifdef DEBUG_BUFRING - if (br->br_ring[prod_head] != NULL) + if (br->br_ring[prod_idx] != NULL) panic("dangling value in enqueue"); #endif - br->br_ring[prod_head] = buf; + br->br_ring[prod_idx] = buf; /* * If there are other enqueues in progress @@ -120,23 +130,26 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) static __inline void * buf_ring_dequeue_mc(struct buf_ring *br) { - uint32_t cons_head, cons_next; + uint32_t cons_head, cons_next, cons_idx; + uint32_t mask; void *buf; critical_enter(); + mask = br->br_cons_mask; do { cons_head = br->br_cons_head; - cons_next = (cons_head + 1) & br->br_cons_mask; + cons_next = cons_head + 1; if (cons_head == br->br_prod_tail) { critical_exit(); return (NULL); } } while (!atomic_cmpset_acq_32(&br->br_cons_head, cons_head, cons_next)); + cons_idx = cons_head & mask; - buf = br->br_ring[cons_head]; + buf = br->br_ring[cons_idx]; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_idx] = NULL; #endif /* * If there are other dequeues in progress @@ -160,8 +173,8 @@ buf_ring_dequeue_mc(struct buf_ring *br) static __inline void * buf_ring_dequeue_sc(struct buf_ring *br) { - uint32_t cons_head, cons_next; - uint32_t prod_tail; + uint32_t cons_head, cons_next, cons_idx; + uint32_t prod_tail, mask; void *buf; /* @@ -189,6 +202,7 @@ buf_ring_dequeue_sc(struct buf_ring *br) * * <1> Load (on core 1) from br->br_ring[cons_head] can be reordered (speculative readed) by CPU. */ + mask = br->br_cons_mask; #if defined(__arm__) || defined(__aarch64__) cons_head = atomic_load_acq_32(&br->br_cons_head); #else @@ -196,16 +210,17 @@ buf_ring_dequeue_sc(struct buf_ring *br) #endif prod_tail = atomic_load_acq_32(&br->br_prod_tail); - cons_next = (cons_head + 1) & br->br_cons_mask; + cons_next = cons_head + 1; - if (cons_head == prod_tail) + if (cons_head == prod_tail) return (NULL); + cons_idx = cons_head & mask; br->br_cons_head = cons_next; - buf = br->br_ring[cons_head]; + buf = br->br_ring[cons_idx]; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_idx] = NULL; #ifdef _KERNEL if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); @@ -226,18 +241,21 @@ buf_ring_dequeue_sc(struct buf_ring *br) static __inline void buf_ring_advance_sc(struct buf_ring *br) { - uint32_t cons_head, cons_next; - uint32_t prod_tail; + uint32_t cons_head, cons_next, prod_tail; +#ifdef DEBUG_BUFRING + uint32_t mask; + mask = br->br_cons_mask; +#endif cons_head = br->br_cons_head; prod_tail = br->br_prod_tail; - cons_next = (cons_head + 1) & br->br_cons_mask; - if (cons_head == prod_tail) + cons_next = cons_head + 1; + if (cons_head == prod_tail) return; br->br_cons_head = cons_next; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_head & mask] = NULL; #endif br->br_cons_tail = cons_next; } @@ -261,9 +279,12 @@ buf_ring_advance_sc(struct buf_ring *br) static __inline void buf_ring_putback_sc(struct buf_ring *br, void *new) { - KASSERT(br->br_cons_head != br->br_prod_tail, + uint32_t mask; + + mask = br->br_cons_mask; + KASSERT((br->br_cons_head & mask) != (br->br_prod_tail & mask), ("Buf-Ring has none in putback")) ; - br->br_ring[br->br_cons_head] = new; + br->br_ring[br->br_cons_head & mask] = new; } /* @@ -274,11 +295,13 @@ buf_ring_putback_sc(struct buf_ring *br, void *new) static __inline void * buf_ring_peek(struct buf_ring *br) { + uint32_t mask; #if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif + mask = br->br_cons_mask; /* * I believe it is safe to not have a memory barrier * here because we control cons and tail is worst case @@ -288,12 +311,13 @@ buf_ring_peek(struct buf_ring *br) if (br->br_cons_head == br->br_prod_tail) return (NULL); - return (br->br_ring[br->br_cons_head]); + return (br->br_ring[br->br_cons_head & mask]); } static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { + uint32_t mask; void *ret; #if defined(DEBUG_BUFRING) && defined(_KERNEL) @@ -301,6 +325,7 @@ buf_ring_peek_clear_sc(struct buf_ring *br) panic("lock not held on single consumer dequeue"); #endif + mask = br->br_cons_mask; if (br->br_cons_head == br->br_prod_tail) return (NULL); @@ -318,13 +343,13 @@ buf_ring_peek_clear_sc(struct buf_ring *br) atomic_thread_fence_acq(); #endif - ret = br->br_ring[br->br_cons_head]; + ret = br->br_ring[br->br_cons_head & mask]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - br->br_ring[br->br_cons_head] = NULL; + br->br_ring[br->br_cons_head & mask] = NULL; #endif return (ret); } @@ -333,7 +358,7 @@ static __inline int buf_ring_full(struct buf_ring *br) { - return (((br->br_prod_head + 1) & br->br_prod_mask) == br->br_cons_tail); + return (br->br_prod_head == br->br_cons_tail + br->br_cons_size - 1); } static __inline int From nobody Mon Sep 2 08:50:54 2024 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 4Wy2Xb0LhJz5Mp6m; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2XZ6cMtz42md; Mon, 2 Sep 2024 08:50:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eGPJKDw7lpWixfg75LaM//VdNbJnlrPut6do6exlhnM=; b=VFwTiqzeavU+8mQ0US5A8D3pEREp0tR++l7Tah8CpDOHCV/CvOIMt33L8daGQNDvBHjS+V v9PAQfQRTjTx/HVLtjjK3ze1iFGQ9r9bgj9hBUxUoUt8NKyKT1sFpgPQb4bsTSOQjAGyc3 Se05bCC6kdjD42wLCuBBn2F523CwUVU6OYf4RljfOO3mo3AYsZ1HZ7P0/kxy+L/vgqSVrn SnGSsSijZFicrhT1GoZGRgivYJavwCz5nmqSInjDKfBPrX/6IOyJZ/qjVX44XCrhP7T9PE HqGZClnf5bTQ4TdNV4PdmpkRz2tYCLryLLM14wzz0K0ftN3V86wxxub7/C7LGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267054; a=rsa-sha256; cv=none; b=cjGfx2ne/WWGKDh82PspSj111hrjR60ciIf4BUTO/9nLFh5uyUYAFZABbCA9r4uxS2qSD6 U3bROBW9sIMQDg+0T6rCM5ItJDTD3iy5jo8vnnIcsp3qY1//FsnQmZGkhR0SbAD/4j6/wh Ex7/7N7S6/J9Itf0Ga8I1I5Cmohmm76zCX/7FU8/IgA0m2LEDBCsXnd0FG42MB33xonKDC PacN1E1lc7gEJzpJubphrtRAsnHUF/9Tuvzazi5XD6TZrcMmo2eR2YnelNF4kABqBntgOC 7mjkpU7A2cSgRc80wBUz7MVJnKL/KTyauhovhFczER0ogtb5TMh0oZF22rkPNg== 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=1725267054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eGPJKDw7lpWixfg75LaM//VdNbJnlrPut6do6exlhnM=; b=keMSXekhuy594DsQjC5pt2CCV+Dar2fNb3tYS2dJNFdoH75e7n4HqGWUjvLkQR4sI6bjBP 1GoVyB94msjtxiF8b3NzxiqDR84tCF6f5ie3ucYkqeV59IjstfSLluW/SeKi3akG4BMYXv n6cD72WcU3BsFqxoyk6wD88TG7O4JbHN6LPkHocaYKLfGyInxyyFwrBQ1N2FtZg5Kk1o9h LpQ2SLEgmZRsOaZ650uF0r3X5thnQVSlWlSgSPMvaYNcfhvwPLedSsmf0VQqeINnyrvGC9 diRDnKCuVBD5jUMw8HfjSffmHf+Zv6YE/s2XoNlwjPf1Ah0LEM9c99YTwN8Dew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2XZ69pPz14qQ; Mon, 2 Sep 2024 08:50:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828osa4007653; Mon, 2 Sep 2024 08:50:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828os6C007650; Mon, 2 Sep 2024 08:50:54 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:54 GMT Message-Id: <202409020850.4828os6C007650@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 14c779e5caf0 - stable/14 - buf_ring: Remove old arm-only dequeue 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 14c779e5caf09746a0e098378c2c09b897f0e177 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=14c779e5caf09746a0e098378c2c09b897f0e177 commit 14c779e5caf09746a0e098378c2c09b897f0e177 Author: Andrew Turner AuthorDate: 2024-08-19 09:07:10 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Remove old arm-only dequeue code In the single consumer dequeue the consumer thread controls br_cons_head. As such no ordering between this and other data are required. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46153 (cherry picked from commit 7eb0fffc7792bc294d6b86546a3923e2e2f83f8a) --- sys/sys/buf_ring.h | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 9aeb5aa19fa8..ad463fba27cb 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -177,37 +177,8 @@ buf_ring_dequeue_sc(struct buf_ring *br) uint32_t prod_tail, mask; void *buf; - /* - * This is a workaround to allow using buf_ring on ARM and ARM64. - * ARM64TODO: Fix buf_ring in a generic way. - * REMARKS: It is suspected that br_cons_head does not require - * load_acq operation, but this change was extensively tested - * and confirmed it's working. To be reviewed once again in - * FreeBSD-12. - * - * Preventing following situation: - - * Core(0) - buf_ring_enqueue() Core(1) - buf_ring_dequeue_sc() - * ----------------------------------------- ---------------------------------------------- - * - * cons_head = br->br_cons_head; - * atomic_cmpset_acq_32(&br->br_prod_head, ...)); - * buf = br->br_ring[cons_head]; > - * br->br_ring[prod_head] = buf; - * atomic_store_rel_32(&br->br_prod_tail, ...); - * prod_tail = br->br_prod_tail; - * if (cons_head == prod_tail) - * return (NULL); - * ` - * - * <1> Load (on core 1) from br->br_ring[cons_head] can be reordered (speculative readed) by CPU. - */ mask = br->br_cons_mask; -#if defined(__arm__) || defined(__aarch64__) - cons_head = atomic_load_acq_32(&br->br_cons_head); -#else cons_head = br->br_cons_head; -#endif prod_tail = atomic_load_acq_32(&br->br_prod_tail); cons_next = cons_head + 1; From nobody Mon Sep 2 08:50:55 2024 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 4Wy2Xc2xWKz5Mntn; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xc06lnz42my; Mon, 2 Sep 2024 08:50:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s0nqLoe2cv9W6NRXOvb9hMHqHPvanWKX4/kPjk1jgDs=; b=Tk1pGjcDagf+NKe1rZCwuKq1uXK/Kc80BqHHqYVbxjgVLP5l/cX6PBQ9gFxPOZao8Ady14 UBJCMbTM96M+sN4vULyNI98YQw4e2A8uxSQesdlFyY8x6S0h28uvW9cBHL6jdpi+5H64or a8Su1MwrOluVME/Bt25H6Xhsf0+KJR3X+U8u8xxSV4faj9Qb1XdiIdSGkI2VT7KkH8abd/ JPE9YjoSt+yJUrTfaObfpsWf8Wb+s4VfSXEbLgVo4EYzIdp4rY/ysUr6jaLN6lGynj07R4 OzJzys8GLcIC4Us1GUoATUxywErDrWu2z9n7G63oaT1I8KSzQQnZs7D8MRB66A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267056; a=rsa-sha256; cv=none; b=DXbgPMMVeKRw1+WJXRiy2KXtMn/wS0kUJBqPXWOsy0poAjnqYTFaLkCtipaqdmRiW9EoXf EQf0fXhs6IzpHrNs2I1BgBda6KsssPwMkYWKmV8ADN6ZTPTcqlcye+FR3St4VoN1/kB2hs poB8wPdJWI+qWT5hE1Q++4vzut9gT5yeqCCuCWrfJ3JsFfhM/1FVQg5VUBVqnB8MQumsrY D+KfkduhS27uXZm2lkIK1jyT1EwQiwrcHabPl72s5imFREIfSO8ZlZSBuvSeVqTiw48zsX F/ToU76rxyBA5/GcG9kuyo7mpkeXS/zFFR/5WFRFABkGdziEZBdrkSkfuAKWHw== 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=1725267056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s0nqLoe2cv9W6NRXOvb9hMHqHPvanWKX4/kPjk1jgDs=; b=tReBp6e72H7kun+0FTxnuS+Gq7AHL4XjUeWh2LTiQBZdT2jxNX9RHsvk/jhoHzBHgz3pgj 9dqSULsKRdl9/Ip4pTylIvZTWN7lIwZue/S1KfJygL71FNXhPsoiV1qzoAj0nDQzWu36vH X5ZLeraCFJWnZ0HktVLB/yVr8Yzie90ia7Lzy7XHszMy7CbiGYAmQN2DQXbNNiD0rK2qUG 5bOJ9n6aAcPDE2jP0nperzxSpqDaAtDf6HtEV6GRVQqQSUsdqXnOuNXsX2+2NMeRLzrKHK VqoJaRLFothJMKUuXLn59EPaUFAjmxmGD+zBVzEtADkMHaI0jHiV422s237gkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xb6mJqz156h; Mon, 2 Sep 2024 08:50:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828otVC007698; Mon, 2 Sep 2024 08:50:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828otAI007695; Mon, 2 Sep 2024 08:50:55 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:55 GMT Message-Id: <202409020850.4828otAI007695@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: bfd435bfe8e1 - stable/14 - buf_ring: Use atomic operations with br_prod_tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bfd435bfe8e1b740d932355831b8a3cc644c14ed Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bfd435bfe8e1b740d932355831b8a3cc644c14ed commit bfd435bfe8e1b740d932355831b8a3cc644c14ed Author: Andrew Turner AuthorDate: 2024-08-19 09:07:19 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Use atomic operations with br_prod_tail As with br_cons_tail use an atomic load acquire to read br_prod_tail in buf_ring_dequeue_mc and buf_ring_peek*. On dequeue we need to ensure we don't read the entry from the buf_ring until it is available and prod_tail has updated. There is already an appropriate store in the enqueue path and an appropriate load in the single consumer dequeue, we just need one in the other functions that read from the buf_ring. Reviewed by: imp, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46154 (cherry picked from commit 947754af55edc217c10e3456d97558c4eb6d0f99) --- sys/sys/buf_ring.h | 45 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index ad463fba27cb..66e1e55bc5e9 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -131,7 +131,7 @@ static __inline void * buf_ring_dequeue_mc(struct buf_ring *br) { uint32_t cons_head, cons_next, cons_idx; - uint32_t mask; + uint32_t prod_tail, mask; void *buf; critical_enter(); @@ -139,8 +139,9 @@ buf_ring_dequeue_mc(struct buf_ring *br) do { cons_head = br->br_cons_head; cons_next = cons_head + 1; + prod_tail = atomic_load_acq_32(&br->br_prod_tail); - if (cons_head == br->br_prod_tail) { + if (cons_head == prod_tail) { critical_exit(); return (NULL); } @@ -266,29 +267,26 @@ buf_ring_putback_sc(struct buf_ring *br, void *new) static __inline void * buf_ring_peek(struct buf_ring *br) { - uint32_t mask; + uint32_t cons_head, prod_tail, mask; #if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif mask = br->br_cons_mask; - /* - * I believe it is safe to not have a memory barrier - * here because we control cons and tail is worst case - * a lagging indicator so we worst case we might - * return NULL immediately after a buffer has been enqueued - */ - if (br->br_cons_head == br->br_prod_tail) + prod_tail = atomic_load_acq_32(&br->br_prod_tail); + cons_head = br->br_cons_head; + + if (cons_head == prod_tail) return (NULL); - return (br->br_ring[br->br_cons_head & mask]); + return (br->br_ring[cons_head & mask]); } static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { - uint32_t mask; + uint32_t cons_head, prod_tail, mask; void *ret; #if defined(DEBUG_BUFRING) && defined(_KERNEL) @@ -297,30 +295,19 @@ buf_ring_peek_clear_sc(struct buf_ring *br) #endif mask = br->br_cons_mask; - if (br->br_cons_head == br->br_prod_tail) - return (NULL); + prod_tail = atomic_load_acq_32(&br->br_prod_tail); + cons_head = br->br_cons_head; -#if defined(__arm__) || defined(__aarch64__) - /* - * The barrier is required there on ARM and ARM64 to ensure, that - * br->br_ring[br->br_cons_head] will not be fetched before the above - * condition is checked. - * Without the barrier, it is possible, that buffer will be fetched - * before the enqueue will put mbuf into br, then, in the meantime, the - * enqueue will update the array and the br_prod_tail, and the - * conditional check will be true, so we will return previously fetched - * (and invalid) buffer. - */ - atomic_thread_fence_acq(); -#endif + if (cons_head == prod_tail) + return (NULL); - ret = br->br_ring[br->br_cons_head & mask]; + ret = br->br_ring[cons_head & mask]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - br->br_ring[br->br_cons_head & mask] = NULL; + br->br_ring[cons_head & mask] = NULL; #endif return (ret); } From nobody Mon Sep 2 08:50:56 2024 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 4Wy2Xd2kKCz5Mp28; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xd13T4z42kh; Mon, 2 Sep 2024 08:50:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oJuNjRykyiwxYjF4cNlOksA57NMun+Ae4V9GKDzrCKo=; b=qk5fN2cGFJuxtn1LPsDW0Myy4ZMQqneCPqk8Vk7AQi/uM8OvcYWuEWJWy0BX8BFoI0TaBB yL81vUHk4NxFqNPVgFx8IkR8bAlL/RQJeM2F8Vtdf+HCeGyNZRMGBEzbnlAkRD4eATNBZn SpT1sV3sKzVpxK/i+f04bYgLt8I5zl6Een4ImoOB5Kx5SPgdoCPb1AlldlNe+lMkyevah9 op/7sE1J848wBlcrqn4+jQ60CFk/OGp97F5jx+1aVxAU7NapWzzRuwBXZW8N3ullMebQ41 XjhgVsCrdQym28fPMmdccSAHNZ6KQHw/DAhJ9WRTF3sM/+bOuOtXZ3QXykDGrQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267057; a=rsa-sha256; cv=none; b=FCuJCl42VK0r5n14Rglc5/7v0R19IAdWq1kW57d3NDgcwpgNnsioiZGUcB0A44LzPpza5J 3Osn4hs25KBg22fiNmyyoOOlPSEwJkiQTPxqAMYrJ8uK4WoBMOtbaxr4JZNGjOzc8DmzxM KrRt1zSJmuq98ySN1sRq/YI2JckGixpiXIC5DcWkjUa/5OsSX1DNyQq+bcKJGoMkKWjIH5 8OaZ27WgXr1IXM0a1I21pz1yjm/lwv+m3F00GcJrs2iaQRZuUH2n94OsIHZ4Ei1g/+IKxc 2oX9lwDIEJUzmoHB32+FhAPZzwI9k8xCrBJxZd4h8d2nyHn/uvi/y5YMAc75Kg== 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=1725267057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oJuNjRykyiwxYjF4cNlOksA57NMun+Ae4V9GKDzrCKo=; b=AnwVF3Dos6pSrdRogty5lV571acDKAzZeaYKAgqjl9et4jNT/gT94hvhUsw8xs7e4jFuM6 pabOUJVQ9EI/RSzhNxpFG+MWQnMZEkUTIv0mf/muMo3faxriJ6w3Yp9jibU3TYlxzSTX1N VM0KSNrijT0aGkx2TxiH6ntCLlJBhllf1gmrsLo856K1R8ZAwFR4MeKfL3Vbxu6jidy0wC BVjx2vAMExUzgnHGxtjYEJ4ueFOa3c3qyspb8AXjAWqDjX0dvFsMpJ2O+GRC5a1OE+iUSI quvexz5/xOYi5XS3i1d9fy1B+6quijVcRPtKK0ztklz8HXx9ucrtx9IK1r94Qw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xd0c9fz153d; Mon, 2 Sep 2024 08:50:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828ourP007743; Mon, 2 Sep 2024 08:50:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828ouWI007740; Mon, 2 Sep 2024 08:50:56 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:56 GMT Message-Id: <202409020850.4828ouWI007740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 72ac0bd83df9 - stable/14 - buf_ring: Ensure correct ordering of loads 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 72ac0bd83df93437d39bad7c4c3f196a398d40f0 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=72ac0bd83df93437d39bad7c4c3f196a398d40f0 commit 72ac0bd83df93437d39bad7c4c3f196a398d40f0 Author: Andrew Turner AuthorDate: 2024-08-19 09:07:26 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Ensure correct ordering of loads When enqueueing on an architecture with a weak memory model ensure loading br->br_prod_head and br->br_cons_tail are ordered correctly. If br_cons_tail is loaded first then other threads may perform a dequeue and enqueue before br_prod_head is loaded. This will mean the tail is one less than it should be and the code under the prod_next == cons_tail check could incorrectly be skipped. buf_ring_dequeue_mc has the same issue with br->br_prod_tail and br->br_cons_head so needs the same fix. Reported by: Ali Saidi Co-developed by: Ali Saidi Reviewed by: imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46155 (cherry picked from commit fe2445f47d027c73aa7266669e7d94b70d3949a4) --- sys/sys/buf_ring.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 66e1e55bc5e9..512f20dc13e2 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -89,7 +89,17 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) #endif critical_enter(); do { - prod_head = br->br_prod_head; + /* + * br->br_prod_head needs to be read before br->br_cons_tail. + * If not then we could perform the dequeue and enqueue + * between reading br_cons_tail and reading br_prod_head. This + * could give us values where br_cons_head == br_prod_tail + * (after masking). + * + * To work around this us a load acquire. This is just to + * ensure ordering within this thread. + */ + prod_head = atomic_load_acq_32(&br->br_prod_head); prod_next = prod_head + 1; cons_tail = atomic_load_acq_32(&br->br_cons_tail); @@ -137,7 +147,12 @@ buf_ring_dequeue_mc(struct buf_ring *br) critical_enter(); mask = br->br_cons_mask; do { - cons_head = br->br_cons_head; + /* + * As with buf_ring_enqueue ensure we read the head before + * the tail. If we read them in the wrong order we may + * think the bug_ring is full when it is empty. + */ + cons_head = atomic_load_acq_32(&br->br_cons_head); cons_next = cons_head + 1; prod_tail = atomic_load_acq_32(&br->br_prod_tail); From nobody Mon Sep 2 08:50:58 2024 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 4Wy2Xf3pXSz5Mp6s; Mon, 02 Sep 2024 08:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xf29SSz42kp; Mon, 2 Sep 2024 08:50:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RzrB+M7EIGIiJvIjKLpQ3iKqmhkaK+LbhtXPBUrNd5g=; b=MMlobEqlHVpEv/NDzUBmxVrRnq/ZyVIUlqP5oPUzjI6GXjIVPbWfHQQEyOcb//kk4B/xgM J11zKeIucHdvn7OrKoLlSzsnr4exCiAVeizxOsvKyKl2WwkaM6ODPmYpZNUL4Rr/HnMIy+ 6X6lIATHt+ZlGMAwlzko1dex66andqvWUSsv9/OAfhafeMutNJz7tGRomTOlxGqGeCJvZt QVGZLDFj7JY/LdlhSwrcaz6WNKh01qbh9isDt6V09XWyoNdJqX82rnNcHGh3+B8b3VPism U9UJ96ltOSj0/jGH1GO7d+oC7GTvgV5c3OAuC29VNWUWehjQvQlwM3oP2Ock0g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267058; a=rsa-sha256; cv=none; b=C+4P3xBZMT69BC74aeT2g7a3Og2rWRu6SDu9QefbYd24Js8/NGmIhknckduEcaftp7iJ6J raC35tbt3KyjrD8Q6ZiH4Ck6WVAxbM4jR8RZlRlNQIpy7S7Z5rIsZDnPqlzHLzMPf63Zgv ihTIIkj2jF2+D6TqWauDQA7nu8ng/hbq1ALf/a3ryVa/lGyGVMyLaqMTCuNKRQuY6hRyGv bPiacRfZTV2NwDFobQSJqBRAksqgSbZrMlJKtOcxnTlf9TChEUbQnoxboqf5ZDKn9+GqF3 rOWEdfXM1n6fGxFkwEwmSo596mquR5J0ZnPC+uHI0eF/M9lqDNiubY6Myd8D1A== 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=1725267058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RzrB+M7EIGIiJvIjKLpQ3iKqmhkaK+LbhtXPBUrNd5g=; b=TK3JJuTkhoINmRla5hoWC13K9XFwcaEFOwD2ftQDf74hcuYGeXyVYtU1OimYpsdtXhxrs7 HQP+gdpUjtqBWxPxZ7Mj+0z+j15b8sV/QKXO3FePCLGGEovqJYBudEwxjzXEcd+bkhvckF BVNkd18DXaREIx0/VtpDAzRfqfkpTwpquO+aUcK9/VAWsM+tCU12gEPGmG+HoNFBO7OKol 6T25oW9NsnBZeLNW7PuIvOMdyeqhYpFDWRw5L1KEi3Slb0ot1k9BdwovDzq1wd2DAcntvs t4DKw0DqDc/rPnRK+NnI0AhT1PcCsvx0jlBpM0UH7FOmFi6ybfGqygplWDATDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xf1cb9z14d7; Mon, 2 Sep 2024 08:50:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828owSZ007785; Mon, 2 Sep 2024 08:50:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828owKG007782; Mon, 2 Sep 2024 08:50:58 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:58 GMT Message-Id: <202409020850.4828owKG007782@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 0a5e9d280303 - stable/14 - buf_ring: Add an Arm copyright 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0a5e9d280303254f325d1530fcd9d60286056715 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=0a5e9d280303254f325d1530fcd9d60286056715 commit 0a5e9d280303254f325d1530fcd9d60286056715 Author: Andrew Turner AuthorDate: 2024-08-19 09:08:20 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 buf_ring: Add an Arm copyright I've change enough of this file to add Arm as a copyright holder. Add it after the "All rights reserved" line as that's not needed. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46157 (cherry picked from commit 87940d2b331c2575f96fbff2600d8da35191157b) --- sys/sys/buf_ring.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 512f20dc13e2..c99cf81d8b6d 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -3,6 +3,7 @@ * * Copyright (c) 2007-2009 Kip Macy * All rights reserved. + * Copyright (c) 2024 Arm Ltd * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From nobody Mon Sep 2 08:50:59 2024 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 4Wy2Xh11gBz5MpCM; Mon, 02 Sep 2024 08:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xg39wxz42ym; Mon, 2 Sep 2024 08:50:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2WSLc3pBXEV04PopHmurE7O56SSSkQZXe7r4k9kWRt0=; b=b5Q0N19CgyL1EdL2qZ0qOul7WOblRqy7WO9OTE2CDtcgjBwBx8Of2dBG/9Hj2rn3KzHqsK IH6hNCH/Jnm62iou9XGcI24yFcZEVNaMsL7wKgXNNPMNOg6uGab4AwE/lNDzIBes2y4Yft lyMypE+T9djMJxxIvtJJItfynoTr3/DsNGgrEQiK4uhf/CmWcW5c3YNxj9DnIp0+iHY1eD NO+EVhrM8rZCBB2WfnYJJ1pn7OGkTizR0kgR5VC/Kpy5B3srnNCNecbjJEGE9Eil5qXq1X YgPdiwDTrnGzxtSKv3oyHoSiVBQWoAXHFkjgD6OrtY0JUjmhny3lQMC6vNLBfw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267059; a=rsa-sha256; cv=none; b=LoymgZwX/4DrFt7t8gnZNq3pzmgQFdHwvy13Z0OqoWlYHEheEx08wRSF+O02IPp7/lc9b9 rUADR6B7M8CprKufG2mB6yILqooH6Fiy12d4+LfdEvMVy3nG1zmVcSK68twqa1u+tbEqwx S8oYI248WHnps5ZTib6mNvjVyQjEhaCrmf7Zj9oxe+dXWCe4xtU+bEQWd0vd1M3L8jNs0U M+AjSSGcIMKjNIgm88up7I0/vs/WHFB387T4K5H5hKKo9UmM0AydGhj1bvVXfmpmfBU6Q1 JgyoKIQkYg0FuTO5Fn3WNKyM5KnRJ/4JVc8MV8LvYT9ElwMGBRaffdnWLZ7dYg== 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=1725267059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2WSLc3pBXEV04PopHmurE7O56SSSkQZXe7r4k9kWRt0=; b=icVvZVoKWwECyBwYjmLa999jB+OZZSsfL1ELtG4gwGh6427dlIJHQiLjI4hTC760//bucz Vi5n67bktChAO4CGo+2RKfxOyeuNI0kZgn7l+vm4CWDCVCdVN7e0kjt9DdDw4BRN0ZIJt0 /4iySpyVX9v22+oiC1L4R2aIFfVrwtr7aCGUMHurNNSV2V2v8xSkrCs7azrZE1nFnuDyQA FIJq1xuowBFB/N+KWQr81Jh9fSbbCsag+lnnENMG9HRrhH4wQmjp8SzqFma78QQZSpMHRX 96zk6jGdWOBUf+hT7RnjM2VOBWleFOjLlpccGU4v/izNjx944BKOkRkKD4aeqg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xg2hk9z156k; Mon, 2 Sep 2024 08:50:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828oxNQ007834; Mon, 2 Sep 2024 08:50:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828oxZW007831; Mon, 2 Sep 2024 08:50:59 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:50:59 GMT Message-Id: <202409020850.4828oxZW007831@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: e95c22c4135a - stable/14 - arm64: Expand the use of Armv8.1-A atomics 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e95c22c4135afe54f4f04949553e7f55bd3cb6cb Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=e95c22c4135afe54f4f04949553e7f55bd3cb6cb commit e95c22c4135afe54f4f04949553e7f55bd3cb6cb Author: Andrew Turner AuthorDate: 2024-07-30 09:26:21 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 arm64: Expand the use of Armv8.1-A atomics When targeting Armv8.1 we can assume FEAT_LSE is available and can use the atomic instructions this provides without needing to check for support first. Reviewed by: imp, markj, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46159 (cherry picked from commit 7a345763f96d86eee9ab578e64311bf452e58900) --- sys/arm64/include/atomic.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/arm64/include/atomic.h b/sys/arm64/include/atomic.h index 76ca951678d4..c7aaa76d9de9 100644 --- a/sys/arm64/include/atomic.h +++ b/sys/arm64/include/atomic.h @@ -65,8 +65,9 @@ extern _Bool lse_supported; #include -#ifdef _KERNEL - +#if defined(__ARM_FEATURE_ATOMICS) +#define _ATOMIC_LSE_SUPPORTED 1 +#elif defined(_KERNEL) #ifdef LSE_ATOMICS #define _ATOMIC_LSE_SUPPORTED 1 #else From nobody Mon Sep 2 08:51:00 2024 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 4Wy2Xh65l4z5MpCk; Mon, 02 Sep 2024 08:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xh4C3Dz42tL; Mon, 2 Sep 2024 08:51:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ee7pwLI0NUefWebC6ju0uOEU1aj9RUtMclYzbyaRVco=; b=EsjFePOD6zReDDpF9ilM7sS4iBt4xHvqr1FeSqxL8H9O3s+lOA9FPiO4eaaj7U1CiOv3/b 2d1qd9G1TyKFzF7YPy8imTkBgTDsOHXuL0OxxHqkLMjWwjrCZ0mXkx22CcK0WaVk7Puv6g QWOT6IX25NBpephplXk72zU8IGoWWf+0S4VjyTIJRvfaHaLZxjwNTxA3NEkbLLvRi/dXUq hKdHLEcVeve7PaGOiXNKp2fXuCpr1abDivq2RWiY5vq2aIEjTo4EzPWjJ713FiBpiBni03 OlCQzC0ZrrLvFPzsDG+SF8EMoM/d3ZRMsDdhFMrPNGXLSCbwO7UUP5G0UZ0xCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267060; a=rsa-sha256; cv=none; b=l6dXc+CC520nEUnw2mJWDQ6M6XYEBmYCLMdTkoymkWuO31pdAcJy/WlQWgrHxJsLnYD4Ad MBNARbFTmDy1r63HoGeTmWnVrepq4m+Vzaj34L7CllvamEMUW1R8gikuUUSIX+RfWZanM1 dLwHKDvNW/l3JwWxiimxEyOdW/xO4kBmnjJV9u+Y1NHqY/3NPrmhy47QH9K1PaCNRQp0BQ VV0tHATEMlU641HabHQC6IIBqpgvVDIo+x0q7UUdrpB2SaRjqhmBUW9GHSMc6ArTmKg/t+ aFSCb0BMGo5B/BtvuGMoqy+7OjC7UMy0z77PenzJVqjhB+rR+eaQNW2p/7lSrg== 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=1725267060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ee7pwLI0NUefWebC6ju0uOEU1aj9RUtMclYzbyaRVco=; b=ESaeEExiN4OHrWJMvk3E7JRXUPJq22Rrv2pEXeH/BiJ5SQQC/BwLX1FBd1z/nxlzr/2eTI PlUiVxhtYsoUgFmAbvIsp7SlQrCKwDhbLHxL0uD7mEKdQeewhJbwOAUR43y3YQHNq3oPt/ p72Yo5PWLUXanJ9TtAFrvxoJg2FXXy7Pr+QkIbjo4X2kez1aDBO3Gq7qaycQngpaSC1AHo CK0FrEynpxenU6MWXpTawleJedJHy2LjzVK3ta8YZq3elBa/jET2xstACBjwtzppVM1GCW 6FunW2FKVXAVQ+CvLMek5N4W1Owyx3HnyXe+YYvBVIRxpsliUOCoz43f1SUMDA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xh3qYTz15P2; Mon, 2 Sep 2024 08:51:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828p0vo007897; Mon, 2 Sep 2024 08:51:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828p0tc007894; Mon, 2 Sep 2024 08:51:00 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:51:00 GMT Message-Id: <202409020851.4828p0tc007894@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: a194eabe088b - stable/14 - arm64: Use store-pair to zero the kernel bss 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a194eabe088bcc33ee07eefe3aace2aa3e2a3d25 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=a194eabe088bcc33ee07eefe3aace2aa3e2a3d25 commit a194eabe088bcc33ee07eefe3aace2aa3e2a3d25 Author: Andrew Turner AuthorDate: 2024-08-20 17:14:28 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:38 +0000 arm64: Use store-pair to zero the kernel bss While this won't be noticed by most users the time to zero the bss while using instruction tracing in the Arm FVP models (simulators) is noticeable. Reduce this time by using a store-pair instruction to double the size of memory we zero on each iteration of the loop. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42733 (cherry picked from commit f1bc3750cf9a6623b0c0861984ef2a8ac966a4e3) --- sys/arm64/arm64/locore.S | 2 +- sys/conf/ldscript.arm64 | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index 3db1d3025967..d448f06b2580 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -109,7 +109,7 @@ virtdone: ldr x15, .Lbss ldr x14, .Lend 1: - str xzr, [x15], #8 + stp xzr, xzr, [x15], #16 cmp x15, x14 b.lo 1b diff --git a/sys/conf/ldscript.arm64 b/sys/conf/ldscript.arm64 index 185b4485e07a..21c7dc35d9b7 100644 --- a/sys/conf/ldscript.arm64 +++ b/sys/conf/ldscript.arm64 @@ -119,6 +119,7 @@ SECTIONS .sdata : { *(.sdata) } _edata = .; PROVIDE (edata = .); + . = ALIGN(16); __bss_start = .; .sbss : { *(.sbss) *(.scommon) } .bss : @@ -126,7 +127,7 @@ SECTIONS *(.dynbss) *(.bss) *(COMMON) - . = ALIGN(8); + . = ALIGN(16); __bss_end = .; /* A section for the initial page table, it doesn't need to be in the kernel file, however unlike normal .bss entries should not be zeroed From nobody Mon Sep 2 08:51:01 2024 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 4Wy2Xk1GbLz5MpD3; Mon, 02 Sep 2024 08:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy2Xj59QBz42rc; Mon, 2 Sep 2024 08:51:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725267061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uDF5dq05NFFjo4apkRzuUqy6/rIB+u9xL5CwQKDXN9w=; b=sfa+IdzMql8ELXEtnj6BhC2n8vzmm5Ce7F4vUMf+h3vfHkRkMuoENpm4dQaxoLa/lkBPo4 JHA7Dyyim8E95Y2tQScYBzJ4rSFVY6e0WX1ecFm//m581+Vkgb8OFqNI1NLX2/X5wIamzC gc56sVDMYc5PKs04lzU7BAERerCoU+ZH6tgqU1pxyLUpEpXHDNyGtgR7IgI8LVkYtY/MiO 9B1tmubii63C5harXJ3QQbLA6Io+REXmIQ8LxMI/mlRYHprid8ndQ91ZYgvhP0Eqbt8HdX /nTU+CTexQ/1vktF8+XyArSLJq45PZo4UlBZuJ6gEIFz3ZJyhCvHQeU5QMlsdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725267061; a=rsa-sha256; cv=none; b=sn5+1dBP9uTzpk6KOljtAS+CatgbEwy/o7kDIEgeAcIW332IijWX5K9soCHZzO81jmzZ5g ekskYGalx4gd7pIHzJqNxopGGweQTZ+s08vEQZ8WSVHI8Dt4scz/LK26H6pL/GMoE3bIdo PARVKeVa869am0gzrbBHEhhYQBVFKQTVFuzMwwj9Eex6X+x8ochJdaLXwpcPkwdB/HanF8 SedJRwITAghKsNchi1OtxDHlaKJ8XQFxOcYbDsk/D/T4di6n+NF6vfyh3hW+EhYEI16oCz iOaB3rtbdi2lLuCgOWVBGcy9SXveSa7ZUi0Uo5Sr/IyIov1bQVQsRqKla+2A5A== 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=1725267061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uDF5dq05NFFjo4apkRzuUqy6/rIB+u9xL5CwQKDXN9w=; b=FNpHvL2QKiSaleJmCRepmZ1ZuIpCyYLSk+IKGW+LstmOlfw2brMMvMqynXLCiEokZJreJH THo/neKmVr3J+VtfmdqJ0Cerh103bTDCgR3AoCKSA5ZZU/414M/FcqRSdX/RUPe9UjlPJE kD2a+C6nxgJA8GkoTD7/KHcspY9aI2X6djdMQo5MMKYZ4gO70lUukkf0BZ4MTdmQrNwuSw ckE/ESE0Lb7sDvyd/4Y1U7xSbTBBY05w3/Fv1r+ZUcZ0TQjv9KhxMSMs5hwB8k/6uonbM5 ONqOLfKPfF/BzhETdfggARhWhLT3vOxRptYEWLFQTmQyFteoAl+6ljsGfrFCVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy2Xj4mljz15Lb; Mon, 2 Sep 2024 08:51:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4828p1Oh007943; Mon, 2 Sep 2024 08:51:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4828p1GR007940; Mon, 2 Sep 2024 08:51:01 GMT (envelope-from git) Date: Mon, 2 Sep 2024 08:51:01 GMT Message-Id: <202409020851.4828p1GR007940@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: ca84f1ed4d3c - stable/14 - libc/aarch64: Remove an unneeded weak symbol 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ca84f1ed4d3c585b9b4eaed40ef012d757d68114 Auto-Submitted: auto-generated The branch stable/14 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=ca84f1ed4d3c585b9b4eaed40ef012d757d68114 commit ca84f1ed4d3c585b9b4eaed40ef012d757d68114 Author: Andrew Turner AuthorDate: 2024-01-02 16:32:08 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 08:49:39 +0000 libc/aarch64: Remove an unneeded weak symbol The index symbol doesn't belong in memcpy.S as it is already in strchr.S where it belongs. Sponsored by: Arm Ltd (cherry picked from commit 024248c933c5741a21c17eda63092f330dd98337) --- lib/libc/aarch64/string/memcpy.S | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/libc/aarch64/string/memcpy.S b/lib/libc/aarch64/string/memcpy.S index ac4fbe8d6175..f403dd2e42a8 100644 --- a/lib/libc/aarch64/string/memcpy.S +++ b/lib/libc/aarch64/string/memcpy.S @@ -1,6 +1,3 @@ #define __memcpy_aarch64 memcpy #define __memmove_aarch64 memmove #include "aarch64/memcpy.S" - -.weak index -.equ index, strchr From nobody Mon Sep 2 09:12:32 2024 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 4Wy31Y1ZM2z5MqlL; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31Y0chBz4Brj; Mon, 2 Sep 2024 09:12:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ET+uhm/4Qr2LbiY4KDrJvfXHB0jXjxO7JlzlYZVZ3s4=; b=rDtzpFdAe/UlqHdHFEUB8B+KcU8tw6aQ/poZhDKeF8W0ljNzTA8oWucpYFKGQef8QAfIgE 21tcMKx2YQ+0DV2Ce0I56xp0hzVq0Hi1hjPFvqW9oTGh+qruw5u71z/1quuFPu0LeOhM5a JhTIaq9WkO8eguc5UjcZgy926I8nhJFHJb+OUrhNsL5/taJKUwfcpDYGX0BqXwqIlIaNtP qDgBpcaS5xzFx2V9F6zk6WeDFDNmtws+drVTeFlGI2uxRA1HlgvkrZkQfbZ47FCbP+H7SH LkfpBWO2foZshVrjBz/DqtKMRpEk6p4TIZNxNUSLyFAQBm/Wsyhve4e1nbKpaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268353; a=rsa-sha256; cv=none; b=wVPSq1w1GhY3L2iSJskM6jFLqjZqpUj9Tg3aeoVSqi1ZvXMcdbh1o7S9+ZJOE3MDNkq8iO 3zFRcs/MNNcSuL+/2n0HxdWbCXAXrvnbdjGtiY1bKTD6joMpAv9eIjWPgMfauEja06Acwj rbGKVEbJQXVeMRj2A7YW+n09yw3/CoAjID8McA8DkXVKSj4lEzqQ0Ir5vQ97pJW4q4zvXW /SMWi8Vp9RmM/ifolNrbXq7Jq+4p2/668oxFYJ6TZY8EC3jpOOkxjUBHhQ9Bl/22jb/ZxH jfllGAM7eYKoFSD/W/6NiP8F2NAI+lSI0iSpLEuki6s1IuMe+q3fPmQOPjwdNA== 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=1725268353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ET+uhm/4Qr2LbiY4KDrJvfXHB0jXjxO7JlzlYZVZ3s4=; b=lG70ZOuQD7Vjbhu3jUZZHstrVVJPSJB2lLwU8XQeMIHGMVd1JkKj8gdXZdN+YM3aIBLJP4 rInxUqNFWxb3S79ftvDGrleI9/93Rv766GJav3DPgy2+3fLCnL3pRIsobVLlEpQtskp9xa El7tu3XggO9JsNbcWGAyqhnH8W1L+UrqnU8hTI8QMA7liWtwbIhipwms9YQEjKh7AhIylP fZg13AAsb2vFzhZZBLmVfknS4DzgusFvBIs/sDN0qM8HKO5SAvwnq8w4CMtH+2SCrp1EgI aOldip8vZEjttATA0BGSwnA1EQXhpoxIjSgcEnhNh8wWmmuSJpa8GvBwZVVmEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31Y09Q2z16Dj; Mon, 2 Sep 2024 09:12:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CWIG049337; Mon, 2 Sep 2024 09:12:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CWDm049334; Mon, 2 Sep 2024 09:12:32 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:32 GMT Message-Id: <202409020912.4829CWDm049334@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: c603969fa9e3 - stable/13 - vm: Use vmem_xalloc in kva_alloc 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c603969fa9e38c9db488eae1bdadfbb2be62b6fa Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c603969fa9e38c9db488eae1bdadfbb2be62b6fa commit c603969fa9e38c9db488eae1bdadfbb2be62b6fa Author: Andrew Turner AuthorDate: 2023-11-29 12:11:37 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 vm: Use vmem_xalloc in kva_alloc The kernel_arena used in kva_alloc has the qcache disabled. vmem_alloc will first try to use the qcache before falling back to vmem_xalloc. Rather than trying to use the qcache in vmem_alloc just call vmem_xalloc directly. Reviewed by: alc, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42831 (cherry picked from commit 8daee410d2c13b4e8530b00e7877eeecf30bb064) --- sys/vm/vm_kern.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 2d5d20d931d3..ba3badf29c3b 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -147,7 +147,8 @@ kva_alloc(vm_size_t size) vm_offset_t addr; size = round_page(size); - if (vmem_alloc(kernel_arena, size, M_BESTFIT | M_NOWAIT, &addr)) + if (vmem_xalloc(kernel_arena, size, 0, 0, 0, VMEM_ADDR_MIN, + VMEM_ADDR_MAX, M_BESTFIT | M_NOWAIT, &addr)) return (0); return (addr); @@ -167,7 +168,7 @@ kva_free(vm_offset_t addr, vm_size_t size) { size = round_page(size); - vmem_free(kernel_arena, addr, size); + vmem_xfree(kernel_arena, addr, size); } static vm_page_t From nobody Mon Sep 2 09:12:34 2024 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 4Wy31Z2zrHz5Mqc7; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31Z1GV5z4CRQ; Mon, 2 Sep 2024 09:12:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jLEHXvnlEU6I86I7i0y3KxRoKfE2Vw/AhHLVJ/6BRqc=; b=gjpxgzupbHrwEQaT9ym2b7Ga0kWg4m49R7/IKGs9xEJbOyk0WjImAzw0N+eHidKl/I6CPZ YRZrKWXlBYslrTq4G+wDXUoCZvm5PDlZqFrKQ9fVdcIVjcPiu6AMAlb8AxcvQLizKp0act +ThQ9VKkggLHUTJIAE3w5HLcBV6dTHNM2me5WPvbWjybg57bZXUWkWE5+EF1BwvNytpDMp l6ZH4GhpHJEXn3MEYBlvOS01/D8fhbMjE9jF7q2cznJcgjAZ9NcHMKi8HugQT8u3RDbY09 WSRyPXtoTG1neYg2g12DIKG5/ScSSLq6Oi5Bf5uJX7v3nJGiPnegszzxiKioxQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268354; a=rsa-sha256; cv=none; b=tIOuJNathBoXHfqLyUHZbu7YEbbbM0Y6WrK6NNaZLbPettXc0/m5yAX+p3oSp3nsKP+2l+ gkKe51A5lA3qHB4L3RMtS+NKECOWHpiYl7wzBc+I57hGdw9mVPu9AftzVB2JGhSnMz+qn0 6yTWAsphg8Bxp6ADg95kcMUl+RvP4uXcnq5Brqo4b31oRoffAc89LjMtQP2XSrN4uXpvL4 /76ud7ifoa0DEoZo9icXVHysbDMSYlgpn27EbdrfQjg2vSfS0gARIWwnbRBjCr9XOxv+x6 ECJa5DLmlzUUbyPCdK8Eo6Fa8/x6jFdcE4V4J75z+3pKRveQdyxRBfO+zaXpNQ== 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=1725268354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jLEHXvnlEU6I86I7i0y3KxRoKfE2Vw/AhHLVJ/6BRqc=; b=epL7gRfu4An9U9dycj5WbnWecDfFlwA/GK3R1iOnexvme68a3zDvrlBaKIpG0uwDikiSTx iohnmNieuQ9BdtwW2VeBgoZRML30HxyetOfShNX0fjxOGiYInZAeBJtBFbU78TdySPU46z tOW02E8xfkehavSHKA3vyBWkOl2P63IaKJjvf//s6hldHu/keIxYdTJRX3wpOEeqU9tPXI zLS8RB3NHgAMBqnFOo9EZb2emhnSg8prxuy1/kzmOE3Ekr/aXvTCafusb1FJDy8wINNW7M scjqJ1bQP8p5qG+ujmHgYXK+2CHOEeKG9dB/uo764qQKpSb3VVFg3CvhB8Zr/w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31Z0qvTz167t; Mon, 2 Sep 2024 09:12:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CYf4049389; Mon, 2 Sep 2024 09:12:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CYrC049386; Mon, 2 Sep 2024 09:12:34 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:34 GMT Message-Id: <202409020912.4829CYrC049386@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 8876ff3c4aae - stable/13 - vm: Add kva_alloc_aligned 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8876ff3c4aae7713f57eceede0173732c73c01d6 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=8876ff3c4aae7713f57eceede0173732c73c01d6 commit 8876ff3c4aae7713f57eceede0173732c73c01d6 Author: Andrew Turner AuthorDate: 2023-11-29 12:54:49 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 vm: Add kva_alloc_aligned Add a function like kva_alloc that allows us to specify the alignment of the virtual address space returned. Reviewed by: alc, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42788 (cherry picked from commit 839999e7efdc980d5ada92ea93719c7e29765809) --- sys/vm/vm_extern.h | 1 + sys/vm/vm_kern.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index a1aba0ba5b26..c867d3c20eb2 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -49,6 +49,7 @@ struct domainset; /* These operate on kernel virtual addresses only. */ vm_offset_t kva_alloc(vm_size_t); +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. */ diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index ba3badf29c3b..defc862a4ac5 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -154,6 +154,27 @@ kva_alloc(vm_size_t size) return (addr); } +/* + * kva_alloc_aligned: + * + * Allocate a virtual address range as in kva_alloc where the base + * address is aligned to align. + */ +vm_offset_t +kva_alloc_aligned(vm_size_t size, vm_size_t align) +{ + vm_offset_t addr; + + TSENTER(); + size = round_page(size); + if (vmem_xalloc(kernel_arena, size, align, 0, 0, VMEM_ADDR_MIN, + VMEM_ADDR_MAX, M_BESTFIT | M_NOWAIT, &addr)) + return (0); + TSEXIT(); + + return (addr); +} + /* * kva_free: * From nobody Mon Sep 2 09:12:35 2024 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 4Wy31b52mHz5MqlQ; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31b2XnQz4C97; Mon, 2 Sep 2024 09:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pbJeV7QQL+rZGXA/RCMjdW6OjCvLQU9ZnNtlt49iqCE=; b=I0E8yVCdRsFwqmtyGgkjujPMD8UD9rMafWJEtnQkP4WRrieP9b1NrkgeNBAxlyDZKtGbB5 nZaGdLAB1U0jnbdoSznnTZTbB5hMtxRsR4X0ieDnaOL09Y5GgUYSMuv/LIlebuJ9/HEet4 48mFsFXXapOrcVh8XMcupkpDkBQEhz8GG6PktWjflOGF79k8CXa/IISPsyyYsdxpeXb66o YzgFB+Sspek1YCy/Cpr3QrTWkGxtgVYEYKfP7YGsqko0kxp4ZvSAMCROMFfGt4BQN6gPdm UFeKFnVwIPSdwRDUry8eyScXTnrVwg2KSGUNuzW3bIeC7UHBXZm14Awp8D/uSQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268355; a=rsa-sha256; cv=none; b=xFQXFseKyRIenkZoV3BQAMkskP4H8R3/MfpKSJDicCkzz/lfR6UyEheZTU2n/s90vOuGqY YEkvWbrMQxPNw0d7pTmkeDGC8trrXlEF1/ER9QS4U7TEJNvlOlufbUUK9l4rkY4/zy4+Ur q2G2gOsosTO3YrogKvM/PgNKRLgq0U9TFTfyv1OEl5EJiOsWGI5AM+CgmUcWuzemmYlToS ijDkXMtIijMknlOGgWRFtRS8bTSKVDN1zAl5Z2VGUVNQfc02sx9P2ucXEQ8YkFOa7/qMcQ fnOEucZa0OIe1ab1lz1yQgVmdFvcvAs9+Lp1aA4DEFmbXsfH+E/bIVacMPHDEA== 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=1725268355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pbJeV7QQL+rZGXA/RCMjdW6OjCvLQU9ZnNtlt49iqCE=; b=o+NnIfH7p+BUz91uPBmTwUBNTLH8VlKXpQcuECrrod7HoAzwepOI+k7/XtBMqzcBM4g6EF c/9s/UYjFFTOUYCX0FjiSIFrLl6BnCPvqXHTORU1vRkZt1HLSS5vvxCCCR07NyqOTQO8kL 4J4wDqR1I3u2aHY7EoF8xa2lSr5Jg7PXh8LBCQgl1CCAmgrGaZYDlDwHrfO8iNzy55lQMq /wt1xJGOjKu8vgV/sJg8oSZ1KySqED6Hv/P3h78v2sFTJRW34yj7afwwOxvdcC3aIk4T6y AdPvBgjbgistJ/3lz9nrNswTjLPeUp9weX5jx/ZeoWoXzwmjT5A+TyI8+TSGZw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31b1s1Jz167v; Mon, 2 Sep 2024 09:12:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CZ6J049440; Mon, 2 Sep 2024 09:12:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CZgP049437; Mon, 2 Sep 2024 09:12:35 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:35 GMT Message-Id: <202409020912.4829CZgP049437@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: e4f74109173e - stable/13 - uart: Split out initilisation of the acpi devinfo 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e4f74109173e64be6eaf2e24d0e6ef16da38b25c Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=e4f74109173e64be6eaf2e24d0e6ef16da38b25c commit e4f74109173e64be6eaf2e24d0e6ef16da38b25c Author: Andrew Turner AuthorDate: 2024-03-12 18:06:18 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 uart: Split out initilisation of the acpi devinfo Split out the common parts of building the uart devinfo from ACPI tables from the SPCR parser. This will be used when we support the DBG2 table to find the debug uart to be used by the kernel gdb stub. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44357 (cherry picked from commit 473c0b44ae8c51b2aebc51887714b2ed14de50bf) --- sys/dev/uart/uart_cpu_acpi.c | 86 +++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/sys/dev/uart/uart_cpu_acpi.c b/sys/dev/uart/uart_cpu_acpi.c index a0534c7af230..6805d187cb99 100644 --- a/sys/dev/uart/uart_cpu_acpi.c +++ b/sys/dev/uart/uart_cpu_acpi.c @@ -70,35 +70,10 @@ uart_cpu_acpi_scan(uint8_t interface_type) return (NULL); } -int -uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) +static int +uart_cpu_acpi_init_devinfo(struct uart_devinfo *di, struct uart_class *class, + ACPI_GENERIC_ADDRESS *addr) { - vm_paddr_t spcr_physaddr; - ACPI_TABLE_SPCR *spcr; - struct acpi_uart_compat_data *cd; - struct uart_class *class; - int error = ENXIO; - - /* SPCR only tells us about consoles. */ - if (devtype != UART_DEV_CONSOLE) - return (error); - - /* Look for the SPCR table. */ - spcr_physaddr = acpi_find_table(ACPI_SIG_SPCR); - if (spcr_physaddr == 0) - return (error); - spcr = acpi_map_table(spcr_physaddr, ACPI_SIG_SPCR); - if (spcr == NULL) { - printf("Unable to map the SPCR table!\n"); - return (error); - } - - /* Search for information about this SPCR interface type. */ - cd = uart_cpu_acpi_scan(spcr->InterfaceType); - if (cd == NULL) - goto out; - class = cd->cd_class; - /* Fill in some fixed details. */ di->bas.chan = 0; di->bas.rclk = 0; @@ -108,7 +83,7 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) di->ops = uart_getops(class); /* Fill in details from SPCR table. */ - switch (spcr->SerialPort.SpaceId) { + switch (addr->SpaceId) { case 0: di->bas.bst = uart_bus_space_mem; break; @@ -117,10 +92,10 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART in unrecognized address space: %d!\n", - (int)spcr->SerialPort.SpaceId); - goto out; + (int)addr->SpaceId); + return (ENXIO); } - switch (spcr->SerialPort.AccessWidth) { + switch (addr->AccessWidth) { case 0: /* EFI_ACPI_6_0_UNDEFINED */ /* FALLTHROUGH */ case 1: /* EFI_ACPI_6_0_BYTE */ @@ -137,10 +112,10 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART unsupported access width: %d!\n", - (int)spcr->SerialPort.AccessWidth); - goto out; + (int)addr->AccessWidth); + return (ENXIO); } - switch (spcr->SerialPort.BitWidth) { + switch (addr->BitWidth) { case 0: /* FALLTHROUGH */ case 8: @@ -157,9 +132,46 @@ uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) break; default: printf("UART unsupported bit width: %d!\n", - (int)spcr->SerialPort.BitWidth); - goto out; + (int)addr->BitWidth); + return (ENXIO); } + + return (0); +} + +int +uart_cpu_acpi_spcr(int devtype, struct uart_devinfo *di) +{ + vm_paddr_t spcr_physaddr; + ACPI_TABLE_SPCR *spcr; + struct acpi_uart_compat_data *cd; + struct uart_class *class; + int error = ENXIO; + + /* SPCR only tells us about consoles. */ + if (devtype != UART_DEV_CONSOLE) + return (error); + + /* Look for the SPCR table. */ + spcr_physaddr = acpi_find_table(ACPI_SIG_SPCR); + if (spcr_physaddr == 0) + return (error); + spcr = acpi_map_table(spcr_physaddr, ACPI_SIG_SPCR); + if (spcr == NULL) { + printf("Unable to map the SPCR table!\n"); + return (error); + } + + /* Search for information about this SPCR interface type. */ + cd = uart_cpu_acpi_scan(spcr->InterfaceType); + if (cd == NULL) + goto out; + class = cd->cd_class; + + error = uart_cpu_acpi_init_devinfo(di, class, &spcr->SerialPort); + if (error != 0) + goto out; + switch (spcr->BaudRate) { case 0: /* Special value; means "keep current value unchanged". */ From nobody Mon Sep 2 09:12:36 2024 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 4Wy31c6lLFz5MqYS; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31c3FHSz4C9l; Mon, 2 Sep 2024 09:12:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ynrU2FS91694aEVc1Q3rn0QXsOlZ3jsibjjRJYaENw4=; b=scmZwIa2F/NI79yHOtWxvCQiJfSR7qeVhP7TzLwAkQjmOixFhNbvQaKoDkUVOXVmTG2bNT s2djZ7iZJHhmrZBfU8okP40AvgsEUrNPBZm39Ld4XzHArmGYcXivyVfdIdFVXDx0dCw44g hJRUEb7q66d1g5ZqqZnmadaZQ5NEq4qHu9pNlgDwFX5xgwJWl2dzuEu4+vqr4bu+vPI+Tw E0XWupQRWbj/U4F2lLmxhNjMBH3bBjJj+FDRpATwrzmtR/y6GHu/yxLhTnl+d9zU/4fR1o lVV+HhjR/twkMyfOmd5Vu0aT0VYIRnw//IulT3Imcm/aR2L2/ogslD/4NMTOHQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268356; a=rsa-sha256; cv=none; b=FU+iB32trgBb6vprWe8A7j/+wLJVwLPrJszRf8tMrCv4JsJgefUdwEJsGnEl+dL94PmiOs tToMCbUbVIM8f9mqlWKhslYguFfMlrBtCzUJ75cGw2cv4wzPeDY7qf7RgkPVFkcm4fJ3SV t0AroFezRo/dnIkDvc8k2V8mh4N9RyDrqjJ7xEaMoAya18OnfUDBpRNpi6eNGVot9n9CNW iDaVSUg+/QvfaA+k2KLevgulinMrn+DNnr4qRmzWVwGG74sNiu7NY3keBKA4qXr84MQ1rY 4g2ejUf6DFFW9557uCYx5GGLLtyfCBDteqTXJBV9NsL0N63YfhHZFZJUwaFbwA== 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=1725268356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ynrU2FS91694aEVc1Q3rn0QXsOlZ3jsibjjRJYaENw4=; b=WqxpbGakwBkS7psXmHki5H3YLGyTivKr2sv2l/pYFnvmgBYNfJjlmwxqUTFUZeRnDXcG51 XriIBtzYYRYpzL1lWA1nVw83EW9Qtf9IpRmAgikNskolrdrNMc+W6se73ZoJfZZxi9Oqh0 aNHMu5rjFM+CqbChqYb8KhdLcsRfuLjb5s/E8rN7NzKsI8t2UuOwX28n4jG2TcEkQBwZ28 TrDfIwc/Jo5dH9WvRgwr/Aj7kZK2ENM9w3Dc4MMuLtEogGo07NfYzDoVAF0oBlDsG2qhXS sZT2rIBX8oYJ9Mim7GwRPQZSFzcCFPXcFTP6b3gDhNHgYDMgJTRUcpKmf8Of7g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31c2sYTz16GZ; Mon, 2 Sep 2024 09:12:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CaCQ049489; Mon, 2 Sep 2024 09:12:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829Cait049486; Mon, 2 Sep 2024 09:12:36 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:36 GMT Message-Id: <202409020912.4829Cait049486@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 10595e9b2f65 - stable/13 - arm64: Support counter access with E2H 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 10595e9b2f659693c4e3d486a577c18f1d2e7efe Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=10595e9b2f659693c4e3d486a577c18f1d2e7efe commit 10595e9b2f659693c4e3d486a577c18f1d2e7efe Author: Andrew Turner AuthorDate: 2024-07-23 09:18:00 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 arm64: Support counter access with E2H When entering the kernel with the E2H field set the layout of the cnthctl_el2 register changes. Use the correct field locations to enable access to the counter and timer registers from EL1. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45529 (cherry picked from commit 997511dffe651e1d2d708f37f2ced430a6ab3349) --- sys/arm64/arm64/locore.S | 6 ++++-- sys/arm64/include/hypervisor.h | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index 4bde1df945cb..007ffdcae513 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -273,8 +273,10 @@ LENTRY(enter_kernel_el) msr hstr_el2, xzr /* Enable access to the physical timers at EL1 */ - mrs x2, cnthctl_el2 - orr x2, x2, #(CNTHCTL_EL1PCTEN | CNTHCTL_EL1PCEN) + tst x4, #HCR_E2H + ldr x3, =(CNTHCTL_EL1PCTEN | CNTHCTL_EL1PCEN) + ldr x5, =(CNTHCTL_E2H_EL1PCTEN | CNTHCTL_E2H_EL1PTEN) + csel x2, x3, x5, eq msr cnthctl_el2, x2 /* Set the counter offset to a known value */ diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index ff6aff00e226..0ed21bf311c7 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -37,10 +37,15 @@ /* CNTHCTL_EL2 - Counter-timer Hypervisor Control register */ #define CNTHCTL_EVNTI_MASK (0xf << 4) /* Bit to trigger event stream */ +/* Valid if HCR_EL2.E2H == 0 */ +#define CNTHCTL_EL1PCTEN (1 << 0) /* Allow physical counter access */ +#define CNTHCTL_EL1PCEN (1 << 1) /* Allow physical timer access */ +/* Valid if HCR_EL2.E2H == 1 */ +#define CNTHCTL_E2H_EL1PCTEN (1 << 10) /* Allow physical counter access */ +#define CNTHCTL_E2H_EL1PTEN (1 << 11) /* Allow physical timer access */ +/* Unconditionally valid */ #define CNTHCTL_EVNTDIR (1 << 3) /* Control transition trigger bit */ #define CNTHCTL_EVNTEN (1 << 2) /* Enable event stream */ -#define CNTHCTL_EL1PCEN (1 << 1) /* Allow EL0/1 physical timer access */ -#define CNTHCTL_EL1PCTEN (1 << 0) /*Allow EL0/1 physical counter access*/ /* CPTR_EL2 - Architecture feature trap register */ #define CPTR_RES0 0x7fefc800 From nobody Mon Sep 2 09:12:37 2024 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 4Wy31d6B5gz5MqnM; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31d4Gv1z4CMm; Mon, 2 Sep 2024 09:12:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eWPtULs2XEKp84f9r0QJ3FE9hX/0Y4W4OcNb6/xNcU0=; b=lWUxFLc0JZmC1jCWXTXL3wEOA+dxQrAotdsBfIbgjVWYlLXrObpV8PsCyCcCYjOpo4/fpb 8uaOm+c1XzYy7oonMwoL6Z6F2K+CCLZcXdrJxdWS5EBzJUIlBB46wwfDhqmKT/Ae+FRHhq hWJ+XXt1eoOFxxaCC7um6xNqeOeuVoBhYJb3SHyztSypXbFFh5h5ATGQFIU4mrcaZPdOfd rB392OvLsud2H7PeUI9NxHCZV/1lo/ebUR3KauTC5ZRshJ0q4jwe/aERWiD+c6GRuhYv6p d4QxnTOGxsq1VuFx7HOyafWTeDhH0dHcBWRC0j0Dzk9YTOVGLXFJvNRXjYJ8sw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268357; a=rsa-sha256; cv=none; b=g8k/yQbPc9zbjh195HoTZcQDQMIkvg2ADC1/6NW5AcJMropj9Mx3C0NHr3Cb3ZBdwoEaiM Pt8nAifO6OmzK1D8uSzqPo14T0WZwb7Soj9QOUbWCiWCqJiD10sCiysnISplRvQaH1oRyX xsp6IDSTPW4wga6iuWyjxC8+hgTJme9L+a1/sDxlitD2NH7ZaAs6F4RF46MMDghOMXnd4/ 5uvVAFE/1yaZUu1fNzwhblqJnSgoWSkzVUsR+uYzBNMn9O6uGj/0/mp6Dy0Tr+uK/xKy0D eE9UUxyif/+IYJ1SjhKOFel2mwPOqOQJ9rz6GWlEFKtS+N+HilEOefpnwZ5sfg== 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=1725268357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eWPtULs2XEKp84f9r0QJ3FE9hX/0Y4W4OcNb6/xNcU0=; b=bMtrE2giPruFLS9Gf968q/aBtpuvLmItILFE+vwQZfrxMbUUquo2RO0+3QfrSXIPcoB2yN 6nNHsIZHsx/+odVbAMcuyefDnWlmqyCj7RZJDFp0bmO/VUhs/cqKnlZbAWRuRqdmFB2OsR fL1WoHs1CGJwuaS+Yf6k6dV4Gb/OwJsKLpKuU6a6B7eugQLyfN00nxvliKOxlgiysiIEmY UWHbNvnhXbyEE6jNe1lfmTGLdsvkhk8GpVx3hcK1PinkjxWLdIf1oLrs3DySdFX6f4JkxP eu1fEE47cX+JzqRQSPLRTIpNmmyOR4T4TE3MqWUmY7Y9vdYIivW2rKz9ro7oUQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31d3vBHz16Dk; Mon, 2 Sep 2024 09:12:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CbOG049544; Mon, 2 Sep 2024 09:12:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CbH4049541; Mon, 2 Sep 2024 09:12:37 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:37 GMT Message-Id: <202409020912.4829CbH4049541@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: af603143e873 - stable/13 - arm64: Fix the gicv3 check in locore.S 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: af603143e8732dc279e3ffda012e1b39cea32b96 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=af603143e8732dc279e3ffda012e1b39cea32b96 commit af603143e8732dc279e3ffda012e1b39cea32b96 Author: Andrew Turner AuthorDate: 2024-07-23 09:18:08 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 arm64: Fix the gicv3 check in locore.S In locore.S we need to configure access to the GICv3. To check if it's available we read the id_aa64pfr0_el1 register, however we then only check if a GICv3.0 or 4.0 is present. If the system has a GICv4.1 this check would fail. Move to checking if the GICV3+ is not absent so this will still work if the field is updated again. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45530 (cherry picked from commit 57ef7935eb114e98e7e554c5ffbded68fd038c04) --- sys/arm64/arm64/locore.S | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index 007ffdcae513..ada9c5b2e54f 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -297,9 +297,8 @@ LENTRY(enter_kernel_el) mrs x2, id_aa64pfr0_el1 /* Extract GIC bits from the register */ ubfx x2, x2, #ID_AA64PFR0_GIC_SHIFT, #ID_AA64PFR0_GIC_BITS - /* GIC[3:0] == 0001 - GIC CPU interface via special regs. supported */ - cmp x2, #(ID_AA64PFR0_GIC_CPUIF_EN >> ID_AA64PFR0_GIC_SHIFT) - b.ne 2f + /* GIC[3:0] != 0000 - GIC CPU interface via special regs. supported */ + cbz x2, 2f mrs x2, icc_sre_el2 orr x2, x2, #ICC_SRE_EL2_EN /* Enable access from insecure EL1 */ From nobody Mon Sep 2 09:12:38 2024 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 4Wy31g0ZDXz5MqnN; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31f5VqCz4CPv; Mon, 2 Sep 2024 09:12:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wI66D3pk4XbCjJ8ys40UNpRK6y1Utxc809O2Lpsf1LY=; b=Yxq75afNiSAcKUYkSAE4stcZB3ev+5IRxC1WMx3f+lReDIZvy2y89rM1rucEeA/XMiN/hQ 5vbbRDN9ijxaVl0IkF9sjXeV/J/KKwwAX1CaBcl3td5fjR/IGyxvsfMZ/N31clvGBenupq mrKixr4PY/P5633RAFjlzu1Ck7c6UMD3zbMvSaGE21NZs7PZrc1/DO2hZQ3x/1fOgjvy/7 Bbp6lpLA8C+JidV7JG9gtGSAhEBERxHttVoedtKUT8j8EJ49aQDJcS75PO4h0i/lOWfxu6 MGYw14kkqpnpAVk0F5/fKXtQN8wN1cuQsQFgvNw2xxTEZPIKAAxRg5fJBYAaMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268358; a=rsa-sha256; cv=none; b=uxBNfpR/rEGOrWesWZdbhBzkgfmw/YdNBc4iZrKvla/JCsOXM24TL1PDoEqON/LnKvLjhH MeVgZH4Hok2OQZYyapvE8yhI4X4NY95SG0NfXYJE4RHlE8JOdGO3TU3X9m59yAtgiU1ltw UpqlIqE8lxFiniwUNRGhFe+p9d0NjNmtWUhMTeSL8XJZ6FNSF0A1y4n9LlBUxY0ihDrnN0 pddNrl42G8uR3jKf7wtN/KNkR0PZZ90vizFDECc4atUz5CsYHOhyxcsLGQgZ7USms5YxpD e9E+BgCrV4EcXCX6jvxnb4wzlQj4gZVrGEfD5Qrw2dowN3FFUP6rl6wrjtKpxQ== 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=1725268358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wI66D3pk4XbCjJ8ys40UNpRK6y1Utxc809O2Lpsf1LY=; b=YAyaBSBOYwLOsOjBpHB/9VGFvMG6yE18Zv7baVuNxWzSVgF/kv/s74z/InaqAFmLITMoTG QZT+prq8RifbEE/TpDVg2fIrXur0rNyNbD/Rot2UBlHq5hFfCiAyt9qeJwVOeec56JE1SL Na2nEftMlpB+yyD9706zK5u1LaUjty9E/kDvi3BRLxsht03yU98u5vMmbtMuopfu343BdW nGPWAPWIsMEBfwjlGWG9YSFQAZFOrhLoMLsfPwNFdGR6fZ0CVewkX7cPmqp43N/bS6ZtnH wnRXLOyJ/Lw8v0SCW271Qh9afXWy7hUWjQJoCjqbLfTwJV9qcgtrQZxpG8mIUg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31f4zCxz167w; Mon, 2 Sep 2024 09:12:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CcGk049598; Mon, 2 Sep 2024 09:12:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CcXK049595; Mon, 2 Sep 2024 09:12:38 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:38 GMT Message-Id: <202409020912.4829CcXK049595@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: e70860e519df - stable/13 - arm64: Ensure sctlr and pstate are in known states 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e70860e519df08de336b92aaa0ae8b927fe13ad4 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=e70860e519df08de336b92aaa0ae8b927fe13ad4 commit e70860e519df08de336b92aaa0ae8b927fe13ad4 Author: Andrew Turner AuthorDate: 2024-07-23 09:18:24 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 arm64: Ensure sctlr and pstate are in known states Before entering the kernel exception level ensure sctlr_el2 and sctlr_el1 are in a known state. The EOS flag needs to be set to ensure an eret instruction is a context synchronization event. Set spcr_el1 when entering the kernel from EL1 and use an eret instruction to return to the caller. This ensures the CPU pstate is consistent with the value in spcr_el1 as it is the only way to set it directly. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45528 (cherry picked from commit 034c83fd7d85f57193850a73cc0ac957a211f725) --- sys/arm64/arm64/locore.S | 52 ++++++++++++++++++++++-------------------- sys/arm64/include/hypervisor.h | 4 ++++ 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index ada9c5b2e54f..20e1647a503d 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -52,19 +52,6 @@ ENTRY(_start) /* Enter the kernel exception level */ bl enter_kernel_el - /* - * Disable the MMU. We may have entered the kernel with it on and - * will need to update the tables later. If this has been set up - * with anything other than a VA == PA map then this will fail, - * but in this case the code to find where we are running from - * would have also failed. - */ - dsb sy - mrs x2, sctlr_el1 - bic x2, x2, SCTLR_M - msr sctlr_el1, x2 - isb - /* Set the context id */ msr contextidr_el1, xzr @@ -233,19 +220,37 @@ END(mpentry) * registers and drop to EL1. */ LENTRY(enter_kernel_el) +#define INIT_SCTLR_EL1 (SCTLR_LSMAOE | SCTLR_nTLSMD | SCTLR_EIS | \ + SCTLR_TSCXT | SCTLR_EOS) mrs x23, CurrentEL lsr x23, x23, #2 cmp x23, #0x2 b.eq 1f - ret + + ldr x2, =INIT_SCTLR_EL1 + msr sctlr_el1, x2 + /* SCTLR_EOS is set so eret is a context synchronizing event so we + * need an isb here to ensure it's observed by later instructions, + * but don't need it in the eret below. + */ + isb + + /* Ensure SPSR_EL1 and pstate are in sync. The only wat to set the + * latter is to set the former and return from an exception with eret. + */ + mov x2, #(PSR_DAIF | PSR_M_EL1h) + msr spsr_el1, x2 + msr elr_el1, lr + eret + 1: + dsb sy /* - * Disable the MMU. If the HCR_EL2.E2H field is set we will clear it - * which may break address translation. + * Set just the reserved bits in sctlr_el2. This will disable the + * MMU which may have broken the kernel if we enter the kernel in + * EL2, e.g. when using VHE. */ - dsb sy - mrs x2, sctlr_el2 - bic x2, x2, SCTLR_M + ldr x2, =(SCTLR_EL2_RES1 | SCTLR_EL2_EIS | SCTLR_EL2_EOS) msr sctlr_el2, x2 isb @@ -261,8 +266,8 @@ LENTRY(enter_kernel_el) mrs x2, mpidr_el1 msr vmpidr_el2, x2 - /* Set the bits that need to be 1 in sctlr_el1 */ - ldr x2, .Lsctlr_res1 + /* Set the initial sctlr_el1 */ + ldr x2, =INIT_SCTLR_EL1 msr sctlr_el1, x2 /* Don't trap to EL2 for exceptions */ @@ -311,10 +316,7 @@ LENTRY(enter_kernel_el) isb eret - - .align 3 -.Lsctlr_res1: - .quad SCTLR_RES1 +#undef INIT_SCTLR_EL1 LEND(enter_kernel_el) /* diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 0ed21bf311c7..92ec8ea84546 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -144,10 +144,14 @@ #define SCTLR_EL2_C (0x1UL << SCTLR_EL2_C_SHIFT) #define SCTLR_EL2_SA_SHIFT 3 #define SCTLR_EL2_SA (0x1UL << SCTLR_EL2_SA_SHIFT) +#define SCTLR_EL2_EOS_SHIFT 11 +#define SCTLR_EL2_EOS (0x1UL << SCTLR_EL2_EOS_SHIFT) #define SCTLR_EL2_I_SHIFT 12 #define SCTLR_EL2_I (0x1UL << SCTLR_EL2_I_SHIFT) #define SCTLR_EL2_WXN_SHIFT 19 #define SCTLR_EL2_WXN (0x1UL << SCTLR_EL2_WXN_SHIFT) +#define SCTLR_EL2_EIS_SHIFT 22 +#define SCTLR_EL2_EIS (0x1UL << SCTLR_EL2_EIS_SHIFT) #define SCTLR_EL2_EE_SHIFT 25 #define SCTLR_EL2_EE (0x1UL << SCTLR_EL2_EE_SHIFT) From nobody Mon Sep 2 09:12:39 2024 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 4Wy31h2skRz5Mr5R; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31g6vTcz4CMm; Mon, 2 Sep 2024 09:12:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2JV4eYNLGJMY0rvtGVuWrvBJFmvyxt894KOr/T8Cgmc=; b=jLNKMUhUgYIM50ysKLzpz+ZC8vVR5RsR5/aieSThObcdaeRqyW1ndkXHDXKMoJOqxmPlrm rM2L7chxDX89kXX/aM/t6GYyRh28Q5adgF3vQ6B2CY3LZeE3J/galvUbCrh/sPjHqydNLN LtCfdbinU0u+SJN2HWVb3MzFWIMMeFYu8xcLTuP3pRSx110nqg/lsDs9hhDD/aaIEzvV+j gErlyj7ThF8YeRa/Tqy3QdHWzD7ORn37XmJeegV1vKxxj7VoTAlsrNzmVPx24ltWUzDzcr 3N2kMqKNprCEMS6nksP4sexTNbZnZqWVjBoGJRN3hV3batYnuCttH0l+OZKDbg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268360; a=rsa-sha256; cv=none; b=t7AokBOGZ5SryySPFVxirIxVGTdX5E5GV8ryDMHJolBBXKOdA4HbMH4TqpX9aUxOUVtvXb 5kWmFCvZWU3By4SIAmz64K6c2Dgq50Zo07zUHIKl+aq1p/fD559BcgZnY4lVzqbFNDqDV1 08xKIoD2hGlqX6gLj8/DJJdz5oXYpJPojLpUF8rgYKIR2x8kDdN4vF06yewSR0iZohRJgr p+uZs6ox7oiHlSNauyN5oj6H/RQ+wLlfwdqmZR7uM5ArkZbQ/azsVD1/ybx5Szzi+i9Ljh RXPID5JXYmnpiqHIL760fe/YlfzrbeJClMFeudg13KrzyAPaagm2XBQNJi/B8Q== 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=1725268360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2JV4eYNLGJMY0rvtGVuWrvBJFmvyxt894KOr/T8Cgmc=; b=xoVaD8aIQxuL6d+eVKGeJG6ZPPSYfrfcvNx9ZcNPFtuHwJCKQYdwGXMYWezkfqKLKBqwv0 5AazM5TKVEctJnBZu118hasCw68RU38IB3BOaZ23iWpPt62KcKQp40nmcK5DgIVEy8BuCy ySEp7Sja79cyRQkTQQy3NOvcFdrXoO20Er0666qF29IbTG6oOTiz1QtEPX2pxLB76dMAP8 CTqm5EH26lJlDBBW920v6FiEW3bEs1SsxDdswUIibNy/7+VhesSH01vt7LghTnEfV5BjwP 7RlTaGPWc6Asrj2xP5bZJTKMifZbTquAu3+kKPcjYTFhtKhnbKGwi57pRFiMvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31g65x2z15lb; Mon, 2 Sep 2024 09:12:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CdcH049657; Mon, 2 Sep 2024 09:12:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CdBe049654; Mon, 2 Sep 2024 09:12:39 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:39 GMT Message-Id: <202409020912.4829CdBe049654@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 556739a53c92 - stable/13 - dev/uart: Add APMC0D08 as found in the Intel E2100 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 556739a53c924eb97253c95f777b61261e3d1b2e Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=556739a53c924eb97253c95f777b61261e3d1b2e commit 556739a53c924eb97253c95f777b61261e3d1b2e Author: Andrew Turner AuthorDate: 2024-07-23 09:18:36 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 dev/uart: Add APMC0D08 as found in the Intel E2100 This uart has the requirement for 32-bit sized and aligned memory accesses. It is also described in the Serial Port Console Redirection Table (SPCR) with a different interface type value. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D45834 (cherry picked from commit 9840598aa31f2a89272f5bef6545e316f254f0c6) --- sys/dev/uart/uart_dev_ns8250.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/uart/uart_dev_ns8250.c b/sys/dev/uart/uart_dev_ns8250.c index 879fe6e04a70..8b3ea502a8af 100644 --- a/sys/dev/uart/uart_dev_ns8250.c +++ b/sys/dev/uart/uart_dev_ns8250.c @@ -415,6 +415,7 @@ struct uart_class uart_ns8250_class = { static struct acpi_uart_compat_data acpi_compat_data[] = { {"AMD0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, {"AMDI0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, + {"APMC0D08", &uart_ns8250_class, ACPI_DBG2_16550_COMPATIBLE, 2, 4, 0, 0, "APM compatible UART"}, {"MRVL0001", &uart_ns8250_class, ACPI_DBG2_16550_SUBSET, 2, 0, 200000000, UART_F_BUSY_DETECT, "Marvell / Synopsys Designware UART"}, {"SCX0006", &uart_ns8250_class, 0, 2, 0, 62500000, UART_F_BUSY_DETECT, "SynQuacer / Synopsys Designware UART"}, {"HISI0031", &uart_ns8250_class, 0, 2, 0, 200000000, UART_F_BUSY_DETECT, "HiSilicon / Synopsys Designware UART"}, From nobody Mon Sep 2 09:12:40 2024 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 4Wy31j1sKMz5MqZQ; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31j0Ctsz4CS3; Mon, 2 Sep 2024 09:12:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vq6xW3F9wBub8udzyCx/ufr05U81bazozwnAYYK8KFo=; b=ksh7Ta1gvK6nFlcGjOhFpq9GAxsCCIWRU4ECRIQpuVW4xWlz3tPR+O8wekqtfPf08xZ3hl WE5+5VYRTH1Fcw3FD1VdlePMSBR528wz5nR9B+19adAmNxLqsBtNxbwrrQmwhCDm/vFJrs UAyqwLqMwtpDFt5py8rPlMustHw2fBUnKjxlexaZVi901lyHyOnEIBNj6QbNE624MUJLhk biMHR+2TqZ/I7wJMjQBFUnPkg0PeZQFw7J2QDLmUDnjsF34aVytntnaYzOZ7RE2U6nf5BN XhKKPmxTItqZ4m5nn06bNuoH8NwqN6vyIg2yXVtILcbzcb1ZQCWrnKQ/s7j/Pg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268361; a=rsa-sha256; cv=none; b=lfb4+FijMOjT45rqg60WVBtvPelK6TmoL75cyKm6oL02Xh0L4qfebAtH48SW+g/2p1n2Wr PHxJJ4cAq4Pm83/q2U6qeWSEViFXgFbiJEGeI4cBujATxLp1URicSR2MYYnNZ4Ia2Sqf7K GNsB5EHYs0pBAewS1NvVsjzP2089gSoVfvsfbIzV8z7yeSwGTBPCMjxL9lvGHav/o8UyzZ dl+gMK/fuw8frrkFgZDmErDL7NYRJBSlqH1exdT2MuA8jb8ib/f1iOgFDkGRCkZBJ8jmgC mSJ/Y+3y/SNU8BdxxMiaWYK3kXamUjF6hLRingEqFzzQB6jwm/LuEcf1Wyf35g== 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=1725268361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vq6xW3F9wBub8udzyCx/ufr05U81bazozwnAYYK8KFo=; b=BjwVN8Vi3YYX7cAlVbKMkkDpAsrotnvjb6YCoqQ5PO89WxLXQJJ1O4oXXMsCeXgp8BMMH3 ljvvVSl4S0t13554LaXO22BIcGMlrVdeKCo0ociepp88ambPk+DlxWJWX+ivDbNZj7z7TP IVav6qJQfGcwh0hen4W9gucE4ZzpPS1ea3ZY78JfV76rq9AfyuWlY+mr7em2IvRACqLbC3 sublELTTGO0MFZVWzde4uk4waAaqjhw9xv7RXQYaoK8lidDJJZTIvewI+vx7W5MtjHzzE9 vEw2U1VSZ2fMBwz27n6ZaZd8b6d5dlkDuewVXCwfozefSGuumwmMhS7Xt2naWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31h6yDqz160j; Mon, 2 Sep 2024 09:12:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829Cebm049707; Mon, 2 Sep 2024 09:12:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829Ce9t049704; Mon, 2 Sep 2024 09:12:40 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:40 GMT Message-Id: <202409020912.4829Ce9t049704@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 292b2f9c5d14 - stable/13 - buf_ring: Make buf_ring.h amenable to userspace compilation 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 292b2f9c5d141fbc4a9f7ef2df3e3950a467e69f Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=292b2f9c5d141fbc4a9f7ef2df3e3950a467e69f commit 292b2f9c5d141fbc4a9f7ef2df3e3950a467e69f Author: Mark Johnston AuthorDate: 2024-07-11 18:55:11 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Make buf_ring.h amenable to userspace compilation This will be useful for adding test cases. Reviewed by: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45869 (cherry picked from commit a161269b2451140a45de2d0cae0dad84f9e7b439) --- sys/sys/buf_ring.h | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 21e221220331..0645f97aa77c 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -30,11 +30,18 @@ #ifndef _SYS_BUF_RING_H_ #define _SYS_BUF_RING_H_ +#include +#include +#include #include #ifdef DEBUG_BUFRING +#ifdef _KERNEL #include #include +#else +#error "DEBUG_BUFRING is only supported in kernel" +#endif #endif struct buf_ring { @@ -361,8 +368,36 @@ buf_ring_count(struct buf_ring *br) & br->br_prod_mask); } +#ifdef _KERNEL struct buf_ring *buf_ring_alloc(int count, struct malloc_type *type, int flags, struct mtx *); void buf_ring_free(struct buf_ring *br, struct malloc_type *type); +#else -#endif +#include + +static inline struct buf_ring * +buf_ring_alloc(int count) +{ + struct buf_ring *br; + + KASSERT(powerof2(count), ("buf ring must be size power of 2")); + + br = calloc(1, sizeof(struct buf_ring) + count * sizeof(void *)); + if (br == NULL) + return (NULL); + br->br_prod_size = br->br_cons_size = count; + br->br_prod_mask = br->br_cons_mask = count - 1; + br->br_prod_head = br->br_cons_head = 0; + br->br_prod_tail = br->br_cons_tail = 0; + return (br); +} + +static inline void +buf_ring_free(struct buf_ring *br) +{ + free(br); +} + +#endif /* !_KERNEL */ +#endif /* _SYS_BUF_RING_H_ */ From nobody Mon Sep 2 09:12:42 2024 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 4Wy31k4J06z5MqZS; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31k1JLvz4CSl; Mon, 2 Sep 2024 09:12:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0lTnEKAp1/RMXWnO32ex32GHNi3sxSWJhEY+6mHle/8=; b=suyiKH96ctbaTP+V/AxlUzB6DDrsnKaiN1MnsctniHmAIiRWbxlTBwIM2Pvjxul/+ac8fs XDIdeVUy/huhuWTsSQyQd7qkANRztLp98ojek+bx9gf30+mcECv2YljIldL5XKxM8AkhJj 3leqTT9onBZ3DLLzLcJSvTIBESjL+VetPS0n1U6jcbu24X4bk4XiGObzmyX1ITgnjn8SD4 SeL/dsJw5fVUxpvHLeS9XgEYez6hG3DueXjuhaSfsccgKcEc89spb5MMup8d4iVXg+Afy+ PxCX45xK57pPeFsPTllRv4VtzeKHlWem3mC4GQf8G5WxPdyE09y9pFKI0mHzRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268362; a=rsa-sha256; cv=none; b=dnUaflfF7tTcbrIeZvNtbHj+n08bbLdcQLp+Yxn3Dv5btS0Q32I9G6LDmlsPq1kec6TkMR auxCrR5qq2Bh7Tldu+W9ACV2rSZQvg+gIbBw/56Dnb9TQAMLYv0vTQWKe8uxar8A0eKxCH dImdiWL2ZUVg+A0QiTYP64Oe5/unGw8fnoDVrgiBaLCKhHG1FRD5pth/WX4JkXXY/DyZb4 TayyYvzX5cVltZPR/jXL3wNDgw0EUX2sJgbc0tz2lQP1w8Fbl/sYfhVlTF2INq9QmN0fwz cm5ASsdnx7Y4y04EE5I7owcWmk1KnPYMv/Ev1J0tmnHzzUUvAnm3YTEWHeA/vw== 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=1725268362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0lTnEKAp1/RMXWnO32ex32GHNi3sxSWJhEY+6mHle/8=; b=EfVb+FjnIDX+/RUlgY3+CBuhNjGRrLSQSL1CXMmx2yqmzJ+AID53XHRtz3w6M4XWNukAZa 3I2VoYEJucsWpK8h+g0nIt4ZADDTMS4Sjz7e7kedIXhL8pou5CGHHZ64afdrCOjHS9qh8f +Akfrlb6cBMoQa17DQS/BtNT832ggghOtI8ZF/7eql/WJayntCNjfqvfRcGnffVEOnrYVF pEB9pJQKDx8BPClFWo6Xdyb0OHAZz4JEy9QxfoJE5COSIAJINZVrKfIafucCrtQQfeUpHC CfeXiY+7NrdtVhvZLXuZSkHZbfGsP541YHPbZl5RbsSc6AE+H2dTKwhQiZQu8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31k0vvYz160k; Mon, 2 Sep 2024 09:12:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CgF4049743; Mon, 2 Sep 2024 09:12:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829Cgcw049740; Mon, 2 Sep 2024 09:12:42 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:42 GMT Message-Id: <202409020912.4829Cgcw049740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 6793d9305bfc - stable/13 - buf_ring: Remove PREFETCH_DEFINED 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6793d9305bfc8b758f2308d9ea437e80fc02b3d7 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=6793d9305bfc8b758f2308d9ea437e80fc02b3d7 commit 6793d9305bfc8b758f2308d9ea437e80fc02b3d7 Author: Andrew Turner AuthorDate: 2024-07-29 10:28:15 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Remove PREFETCH_DEFINED I'm not able to find anything in the tree that ever defined it. Remove as it's unused so is untested. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46148 (cherry picked from commit 5048308bdb76f40e88c9133658fc61d82158ded2) --- sys/sys/buf_ring.h | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 0645f97aa77c..ad87a48bc695 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -165,9 +165,6 @@ static __inline void * buf_ring_dequeue_sc(struct buf_ring *br) { uint32_t cons_head, cons_next; -#ifdef PREFETCH_DEFINED - uint32_t cons_next_next; -#endif uint32_t prod_tail; void *buf; @@ -204,20 +201,10 @@ buf_ring_dequeue_sc(struct buf_ring *br) prod_tail = atomic_load_acq_32(&br->br_prod_tail); cons_next = (cons_head + 1) & br->br_cons_mask; -#ifdef PREFETCH_DEFINED - cons_next_next = (cons_head + 2) & br->br_cons_mask; -#endif if (cons_head == prod_tail) return (NULL); -#ifdef PREFETCH_DEFINED - if (cons_next != prod_tail) { - prefetch(br->br_ring[cons_next]); - if (cons_next_next != prod_tail) - prefetch(br->br_ring[cons_next_next]); - } -#endif br->br_cons_head = cons_next; buf = br->br_ring[cons_head]; From nobody Mon Sep 2 09:12:43 2024 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 4Wy31l5C49z5MqnY; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31l2S5Pz4Ck2; Mon, 2 Sep 2024 09:12:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OZoKY5JWkIzq9VlufBAFztJUjKx3rKjOdO/BzBB3KsA=; b=aKl7iekQ+QyaPfpx3iddOQku4LCqPZ7ND16hjJIdDGr2NvlMR9kWcqdm98D66RI+0FpWrP 3dL3u4jDIEtIAkH9vnEEMJWpIVg2TazZrUxYdt5Oa9IagvyFObA9oyE3dc6CaiZoQKW5Eo zjRRXGyDjA0dXpbiAL5Wlt0XvxlAyLXO1p9SNgrDVoWE89O0bAM87pVbVUPtFAU+dizLDT 30d+Ufvcq9B6GPAtNLtnnabqRlfB1mc3LN1BIEtq8FIe313To19g4921djBohy7IWrzQlm YyRNLYaMH6F2zJ9a3LKP9+oFJhU7AZliqWQS3ouEeg2RcnQo/JODRUoIsteiIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268363; a=rsa-sha256; cv=none; b=RbQpfrq6Uv+KXzYmvwpwxoITm38nYvuXBrPmzsZ6zDT5siF3SG5AHrSFccJgP5OLRDjqY/ liU2op0F7SXQSNMtHxU7WrrXlZN7XFOdhU6nvQi8ml7xTTWqsxT70jnEogGIx7An9EHLXD yxo4DehszXwaBHBi7w7dfdiDIMF47yuNJ/fnbHu7Kj7xtjGBywwJFiRlE2lW1/Y/c23f/C WfdbpcJ9K4yd19G8EquKNWVgpBQGAvOYEKoDLRc3SyqfxYUWQ2b5snKquRzgLkT4OFiXxR Yk4h8If9aQP8jzPPh+tRlefU37lQYTfWd1NbOEphnySlNdsdta4Jx3LH1hMuCw== 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=1725268363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OZoKY5JWkIzq9VlufBAFztJUjKx3rKjOdO/BzBB3KsA=; b=lW/+VRg+nhV8fuWTThIDViUH8ap7jnS9MDRhDUkYqNKwQHvM3yMjFJC+De3OyF93tNJmeU tJIBtszmDM0y90bkSaFD3R9XgCtYL1toy6DcyQeygEJjRTzkEPM2qn2Elh/l1ZtqVPZflj +5vZg94gLzaap8IXjQl6B9JsA/Q7CGzanPQz9jQcG8vPbJdv2/L83fcbEU8MHopUyar4w4 8I8K2CPTsL6gplPWlIwZYZwa6OT9qoI2sNDIRRP0O+hBfjeRjwDFIRnfr/SGutEEqnRxc2 mC0VPzfDSTfDFKppGNI7nFZYu/kff7UfqaM523UZL85rSUxdq+Sj+U5FVB1JCQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31l1w0Gz15lc; Mon, 2 Sep 2024 09:12:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829ChVh049791; Mon, 2 Sep 2024 09:12:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829ChIU049788; Mon, 2 Sep 2024 09:12:43 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:43 GMT Message-Id: <202409020912.4829ChIU049788@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 0f85e71ab563 - stable/13 - buf_ring: Support DEBUG_BUFRING in userspace 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0f85e71ab5636fd32482e3241cfce57015c99436 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=0f85e71ab5636fd32482e3241cfce57015c99436 commit 0f85e71ab5636fd32482e3241cfce57015c99436 Author: Andrew Turner AuthorDate: 2024-07-29 10:28:24 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Support DEBUG_BUFRING in userspace The only part of DEBUG_BUFRING we don't support in userspace is the mutex checks. Add _KERNEL checks around these so we can enable the extra debugging. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46149 (cherry picked from commit d3d34d56bee4222b3bf3ec26d7877998405115a3) --- sys/sys/buf_ring.h | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index ad87a48bc695..77a8e5ec65b8 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -35,13 +35,9 @@ #include #include -#ifdef DEBUG_BUFRING -#ifdef _KERNEL +#if defined(DEBUG_BUFRING) && defined(_KERNEL) #include #include -#else -#error "DEBUG_BUFRING is only supported in kernel" -#endif #endif struct buf_ring { @@ -54,7 +50,7 @@ struct buf_ring { volatile uint32_t br_cons_tail; int br_cons_size; int br_cons_mask; -#ifdef DEBUG_BUFRING +#if defined(DEBUG_BUFRING) && defined(_KERNEL) struct mtx *br_lock; #endif void *br_ring[0] __aligned(CACHE_LINE_SIZE); @@ -210,8 +206,10 @@ buf_ring_dequeue_sc(struct buf_ring *br) #ifdef DEBUG_BUFRING br->br_ring[cons_head] = NULL; +#ifdef _KERNEL if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); +#endif if (br->br_cons_tail != cons_head) panic("inconsistent list cons_tail=%d cons_head=%d", br->br_cons_tail, cons_head); @@ -277,7 +275,7 @@ static __inline void * buf_ring_peek(struct buf_ring *br) { -#ifdef DEBUG_BUFRING +#if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif @@ -296,9 +294,9 @@ buf_ring_peek(struct buf_ring *br) static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { -#ifdef DEBUG_BUFRING void *ret; +#if defined(DEBUG_BUFRING) && defined(_KERNEL) if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif @@ -320,17 +318,15 @@ buf_ring_peek_clear_sc(struct buf_ring *br) atomic_thread_fence_acq(); #endif + ret = br->br_ring[br->br_cons_head]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - ret = br->br_ring[br->br_cons_head]; br->br_ring[br->br_cons_head] = NULL; - return (ret); -#else - return (br->br_ring[br->br_cons_head]); #endif + return (ret); } static __inline int From nobody Mon Sep 2 09:12:44 2024 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 4Wy31m642Rz5Mqnc; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31m4gBxz4C9V; Mon, 2 Sep 2024 09:12:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p842QrH7MSB+dDRDRahjxr2EyYAYdoffVeBZ/mTVuIA=; b=P6pnON/AmcWaWv7PyACFYTPV+9JrU91d3Rw+Mua0wbaFiYBk/wzyFHTMGNb3bD1OFTbLzK wctxJ/QWWxTCjQFqxVLYPn+izfC76jSVnDuoPx4aABYATdCxvbX7Jc2+fTouwBlneinb6L 1s3tIm0E3CgeJk63Q+7cXicq3InttF+3VYwPL7CJCmrjkSSKdn3JD5n/R31K+UCWrXpcW1 1YDe3+1L3qIET5lcPNCDVDCMlMK1GylMjSUIXANfxDgWEASi6XRZSuEiH3WcIPcLN4iRcm Tkk7piqS4FaBwUFzRkrHpS4k5/nR7es3FPbLfQn6JijDp8URr/00eqOW9r8ugw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268364; a=rsa-sha256; cv=none; b=FQJ9txblGI/ehJcUAQqfMHYK8DzNIs7xLAUDyUat7sg1IvPL6GViGs60AGnv6b1EgZoUJ2 Nbwx2yzENDkLWW7CK1A6uxeFLmwwrQj2xrZoSMAYGKGin84cQOdeIMPorqjtIG/8PSg3Fu Toagah0304V8oG57Z2yI7FzzCTQ/sfGMjJdyhsW5Iq2i2umUjEBcDEu4u0fdvAyPY+RfDz uCG9ytZpa0CPe/tYy5ONOCoboefLVeteHS26x+eADslF/+20NipSDVmHzlijdw8gwtbh4r wqDXDvT/7idlpJ6NmacWYNKV+x/6e4B0wn9IoF8Iz5OtG52i29RIQ9Kx6435GQ== 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=1725268364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p842QrH7MSB+dDRDRahjxr2EyYAYdoffVeBZ/mTVuIA=; b=RnR18wmzHKo/sqFcK27EOkqzZj+Fe8iMB5/V3ALXtFQOxL2XYnX7dT3u1HRgdgjT2NNLL7 hzWpTUpsjbckY4DP4c9ueoG+LUtA7H9AVUuhfxTqRhZ7lXmwiF5LIh5nZ9T2k9cOsDccKz ZxaRDB4pUpdwoGhUoeSPtSnaexa/koAYWQfYTD+0MrxCdxF06bl1WKj3eHRgM6heM6VAYf kfSmKcfuH430Y/vmA0me4KRg1ZsPDNbq4/930w3lVzjjhTBm8/SrpM9nnl8dkRzwVjimdH wRYYp286FLWRYQgNiVJqxQN/harH4tgNnsDzTqaN4HIy8fc8ilSSVqOv6VoV5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31m2zdGz16Dl; Mon, 2 Sep 2024 09:12:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CiGP049832; Mon, 2 Sep 2024 09:12:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CiiI049829; Mon, 2 Sep 2024 09:12:44 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:44 GMT Message-Id: <202409020912.4829CiiI049829@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 351c7a18d429 - stable/13 - buf_ring: Consistently use atomic_*_32 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 351c7a18d429cc179238cf3ae65e98f95ec5b12f Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=351c7a18d429cc179238cf3ae65e98f95ec5b12f commit 351c7a18d429cc179238cf3ae65e98f95ec5b12f Author: Andrew Turner AuthorDate: 2024-07-29 10:28:33 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Consistently use atomic_*_32 We are operating on uint32_t values, use uint32_t atomic functions. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46150 (cherry picked from commit 17a597bc13aa59ee90facaf9b8dada80f32eb52d) --- sys/sys/buf_ring.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 77a8e5ec65b8..39c75dd5b09f 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -94,7 +94,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) } continue; } - } while (!atomic_cmpset_acq_int(&br->br_prod_head, prod_head, prod_next)); + } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)); #ifdef DEBUG_BUFRING if (br->br_ring[prod_head] != NULL) panic("dangling value in enqueue"); @@ -108,7 +108,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) */ while (br->br_prod_tail != prod_head) cpu_spinwait(); - atomic_store_rel_int(&br->br_prod_tail, prod_next); + atomic_store_rel_32(&br->br_prod_tail, prod_next); critical_exit(); return (0); } @@ -132,7 +132,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) critical_exit(); return (NULL); } - } while (!atomic_cmpset_acq_int(&br->br_cons_head, cons_head, cons_next)); + } while (!atomic_cmpset_acq_32(&br->br_cons_head, cons_head, cons_next)); buf = br->br_ring[cons_head]; #ifdef DEBUG_BUFRING @@ -146,7 +146,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) while (br->br_cons_tail != cons_head) cpu_spinwait(); - atomic_store_rel_int(&br->br_cons_tail, cons_next); + atomic_store_rel_32(&br->br_cons_tail, cons_next); critical_exit(); return (buf); From nobody Mon Sep 2 09:12:45 2024 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 4Wy31n5n02z5Mqlk; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31n4ZPnz4Cbb; Mon, 2 Sep 2024 09:12:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V9IIdhlqY0nHVOWZ58Qqy+fW3ge1/F6ZKsBYYdpJK6g=; b=sbSrcnqbwRwlEtEF3JJzAWDg9RyT9Jh9t8fHSp2ULK03PPQs7+A7dRQ26gEInbF1Bqso4/ XwMFAyMxPIsckVcj4jOsRHMa5+tzx92hcQmqomyLHmeH0Go55iT7KE/VWfCJVDSu+nNbUp XPmzQiFdp1NINbHUk92hXQOIro+F+beuBiETonSHJ6OKFzLPStFInL5NwQfUKhkAFoBTWk hND3NpwjHnBS2oXafPIQaig6fqFgDDsm8QpSPRI7KkwAiPJYzZlEWSw8T7EUBZqLNfS06t t2OBYv2T8J1txZZXDzpFZzJGRsdrA/acbNHcv/G7VDxp5Q7Zo0G5ZPTI3GAD9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268365; a=rsa-sha256; cv=none; b=TmO092PxinnX3yfdG7tcAy0IZFgRje0XSKZsmxNTKlgvcOwCL+KyCbCwmD6/H/IavAnDNG xFgcWrQsfCM3pnZZhtBxfpmM1dvXCHgmi8YMo889DqMpqf/Pg2vOVVFIq4m/ENyBCFh7Jl vzWghYdX0h03oO3q0E8XOdl3pmmqtYvoT/aDLSV7Oe5DLmBwT8dbF7sZ2uRMIZKcYlakni fIu6sj2hzrKYqgj41O0EaSRAmJ+RzKF4bMYvq+UJYKf5t/aODJo2wRlmmMLT3GVInElaNh T+3bf6N7OB6Iw3/11u/zi88lNRyiCUc7xXqFKO/WXwFzjwoy6e+ehsvOG19kSA== 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=1725268365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V9IIdhlqY0nHVOWZ58Qqy+fW3ge1/F6ZKsBYYdpJK6g=; b=i7s+Ihou+mWQGDcmANe7W8zYzuporAsWKSTYEQJOP6KIMpCrviX9310tIp+umCenUG5CYs udMJRG8FXZZnekTi6fToIN70W9GQptgQF/rtXVnFqy6m1gL58FRTo2M28dGKVlnXe3z+H5 wkdBJXDv51WPBjmUu0SlkUWJhSgeh/hV2Ctdc/i61tTAG/T8/d1ppWUJP8/cZJvXT2kteP uSQOM9Z7lTVLeE6+9uKCLp6Aktf1KMsww5k6EswT0SHV9Sa4z5CMQ1oL+s0+HPteUu3nC0 8ryoEYtybtXbEEsa9kQ4rrDS3mRj7ot+BxH459ldHe7u3NTOLoPQp9F6JOjPdw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31n47mwz16Dm; Mon, 2 Sep 2024 09:12:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CjwN049888; Mon, 2 Sep 2024 09:12:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CjQf049885; Mon, 2 Sep 2024 09:12:45 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:45 GMT Message-Id: <202409020912.4829CjQf049885@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 7ab139235534 - stable/13 - buf_ring: Keep the full head and tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7ab139235534ce9cdcafc5f33f312e3def501b29 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=7ab139235534ce9cdcafc5f33f312e3def501b29 commit 7ab139235534ce9cdcafc5f33f312e3def501b29 Author: Andrew Turner AuthorDate: 2024-08-19 09:06:44 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Keep the full head and tail values If a thread reads the head but then sleeps for long enough that another thread fills the ring and leaves the new head with the expected value then the cmpset can pass when it should have failed. To work around this keep the full head and tail value and use the upper bits as a generation count. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46151 (cherry picked from commit 3cc603909e09c958e20dd5a8a341f62f29e33a07) --- sys/sys/buf_ring.h | 87 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 31 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 39c75dd5b09f..dec0f971ae44 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -40,6 +40,15 @@ #include #endif +/* + * We only apply the mask to the head and tail values when calculating the + * index into br_ring to access. This means the upper bits can be used as + * epoch to reduce the chance the atomic_cmpset succeedes when it should + * fail, e.g. when the head wraps while the CPU is in an interrupt. This + * is a probablistic fix as there is still a very unlikely chance the + * value wraps back to the expected value. + * + */ struct buf_ring { volatile uint32_t br_prod_head; volatile uint32_t br_prod_tail; @@ -63,28 +72,28 @@ struct buf_ring { static __inline int buf_ring_enqueue(struct buf_ring *br, void *buf) { - uint32_t prod_head, prod_next, cons_tail; -#ifdef DEBUG_BUFRING - int i; + uint32_t prod_head, prod_next, prod_idx; + uint32_t cons_tail, mask; + mask = br->br_prod_mask; +#ifdef DEBUG_BUFRING /* * Note: It is possible to encounter an mbuf that was removed * via drbr_peek(), and then re-added via drbr_putback() and * trigger a spurious panic. */ - for (i = br->br_cons_head; i != br->br_prod_head; - i = ((i + 1) & br->br_cons_mask)) - if(br->br_ring[i] == buf) + for (uint32_t i = br->br_cons_head; i != br->br_prod_head; i++) + if (br->br_ring[i & mask] == buf) panic("buf=%p already enqueue at %d prod=%d cons=%d", buf, i, br->br_prod_tail, br->br_cons_tail); #endif critical_enter(); do { prod_head = br->br_prod_head; - prod_next = (prod_head + 1) & br->br_prod_mask; + prod_next = prod_head + 1; cons_tail = br->br_cons_tail; - if (prod_next == cons_tail) { + if ((int32_t)(cons_tail + br->br_prod_size - prod_next) < 1) { rmb(); if (prod_head == br->br_prod_head && cons_tail == br->br_cons_tail) { @@ -95,11 +104,12 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) continue; } } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next)); + prod_idx = prod_head & mask; #ifdef DEBUG_BUFRING - if (br->br_ring[prod_head] != NULL) + if (br->br_ring[prod_idx] != NULL) panic("dangling value in enqueue"); #endif - br->br_ring[prod_head] = buf; + br->br_ring[prod_idx] = buf; /* * If there are other enqueues in progress @@ -120,23 +130,26 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) static __inline void * buf_ring_dequeue_mc(struct buf_ring *br) { - uint32_t cons_head, cons_next; + uint32_t cons_head, cons_next, cons_idx; + uint32_t mask; void *buf; critical_enter(); + mask = br->br_cons_mask; do { cons_head = br->br_cons_head; - cons_next = (cons_head + 1) & br->br_cons_mask; + cons_next = cons_head + 1; if (cons_head == br->br_prod_tail) { critical_exit(); return (NULL); } } while (!atomic_cmpset_acq_32(&br->br_cons_head, cons_head, cons_next)); + cons_idx = cons_head & mask; - buf = br->br_ring[cons_head]; + buf = br->br_ring[cons_idx]; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_idx] = NULL; #endif /* * If there are other dequeues in progress @@ -160,8 +173,8 @@ buf_ring_dequeue_mc(struct buf_ring *br) static __inline void * buf_ring_dequeue_sc(struct buf_ring *br) { - uint32_t cons_head, cons_next; - uint32_t prod_tail; + uint32_t cons_head, cons_next, cons_idx; + uint32_t prod_tail, mask; void *buf; /* @@ -189,6 +202,7 @@ buf_ring_dequeue_sc(struct buf_ring *br) * * <1> Load (on core 1) from br->br_ring[cons_head] can be reordered (speculative readed) by CPU. */ + mask = br->br_cons_mask; #if defined(__arm__) || defined(__aarch64__) cons_head = atomic_load_acq_32(&br->br_cons_head); #else @@ -196,16 +210,17 @@ buf_ring_dequeue_sc(struct buf_ring *br) #endif prod_tail = atomic_load_acq_32(&br->br_prod_tail); - cons_next = (cons_head + 1) & br->br_cons_mask; + cons_next = cons_head + 1; - if (cons_head == prod_tail) + if (cons_head == prod_tail) return (NULL); + cons_idx = cons_head & mask; br->br_cons_head = cons_next; - buf = br->br_ring[cons_head]; + buf = br->br_ring[cons_idx]; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_idx] = NULL; #ifdef _KERNEL if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); @@ -226,18 +241,21 @@ buf_ring_dequeue_sc(struct buf_ring *br) static __inline void buf_ring_advance_sc(struct buf_ring *br) { - uint32_t cons_head, cons_next; - uint32_t prod_tail; + uint32_t cons_head, cons_next, prod_tail; +#ifdef DEBUG_BUFRING + uint32_t mask; + mask = br->br_cons_mask; +#endif cons_head = br->br_cons_head; prod_tail = br->br_prod_tail; - cons_next = (cons_head + 1) & br->br_cons_mask; - if (cons_head == prod_tail) + cons_next = cons_head + 1; + if (cons_head == prod_tail) return; br->br_cons_head = cons_next; #ifdef DEBUG_BUFRING - br->br_ring[cons_head] = NULL; + br->br_ring[cons_head & mask] = NULL; #endif br->br_cons_tail = cons_next; } @@ -261,9 +279,12 @@ buf_ring_advance_sc(struct buf_ring *br) static __inline void buf_ring_putback_sc(struct buf_ring *br, void *new) { - KASSERT(br->br_cons_head != br->br_prod_tail, + uint32_t mask; + + mask = br->br_cons_mask; + KASSERT((br->br_cons_head & mask) != (br->br_prod_tail & mask), ("Buf-Ring has none in putback")) ; - br->br_ring[br->br_cons_head] = new; + br->br_ring[br->br_cons_head & mask] = new; } /* @@ -274,11 +295,13 @@ buf_ring_putback_sc(struct buf_ring *br, void *new) static __inline void * buf_ring_peek(struct buf_ring *br) { + uint32_t mask; #if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif + mask = br->br_cons_mask; /* * I believe it is safe to not have a memory barrier * here because we control cons and tail is worst case @@ -288,12 +311,13 @@ buf_ring_peek(struct buf_ring *br) if (br->br_cons_head == br->br_prod_tail) return (NULL); - return (br->br_ring[br->br_cons_head]); + return (br->br_ring[br->br_cons_head & mask]); } static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { + uint32_t mask; void *ret; #if defined(DEBUG_BUFRING) && defined(_KERNEL) @@ -301,6 +325,7 @@ buf_ring_peek_clear_sc(struct buf_ring *br) panic("lock not held on single consumer dequeue"); #endif + mask = br->br_cons_mask; if (br->br_cons_head == br->br_prod_tail) return (NULL); @@ -318,13 +343,13 @@ buf_ring_peek_clear_sc(struct buf_ring *br) atomic_thread_fence_acq(); #endif - ret = br->br_ring[br->br_cons_head]; + ret = br->br_ring[br->br_cons_head & mask]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - br->br_ring[br->br_cons_head] = NULL; + br->br_ring[br->br_cons_head & mask] = NULL; #endif return (ret); } @@ -333,7 +358,7 @@ static __inline int buf_ring_full(struct buf_ring *br) { - return (((br->br_prod_head + 1) & br->br_prod_mask) == br->br_cons_tail); + return (br->br_prod_head == br->br_cons_tail + br->br_cons_size - 1); } static __inline int From nobody Mon Sep 2 09:12:46 2024 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 4Wy31p6xqYz5MrBd; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31p4xlgz4C9r; Mon, 2 Sep 2024 09:12:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f6XGelX87Mj17vnyDmJKjUYg3G2afxC5k6pPsF8aKew=; b=Oe2CrfTiTsMDbBaZ2s/GsJvauVXm12Tm0l68rcKGVfuDnBz4oQIrEcJhphpsoVmOOIlm8i SYJRCxfvWa3Ih7A+6fiG53NmeIYaOkkR7C9wBJqzkMD9/iEEG3ueDhdE7/OA8WpbNdiSWc wXGSJcI3dQ1WM0sK/dOh3UdWFjd40AKX7HM5XCdu26C4mQdMXXhN12p0cULJ4mV8onHXCq OEtIC+NfvbgrFKC6Gjfscfa5/t5lIUcqnU+Ln+lIyPlbycMhzRpQFW+0j/+UdiTcc4q8Io fITAilzuHg9w4HIj/M1PB84X+DS5yr0xleQFxOEFHXb3UHFdDyn+Z1f8bSXQ5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268366; a=rsa-sha256; cv=none; b=QtRhp4nMgHPpoUOG8b45oaXD1ncFcU+ZjdrJKr3eBwdK7yCnLiwqcDz8jihPeQST/Gjqd+ t4mxe8YyiAyLPMwV7MbWTwCse8u23irtBgiq/uLrJYKIgdxJie9QHn17r8FevL+k5SxMqU oCxpkSK83I+RDA/T41B5AfizSpDmsTyBpHRRIsdS4ipBKvYM4ORJ9B6f+cyJd18yqnC7pb 8Vu8IKb63N7Jo2wyJ1YHJlytS/QZ6klDhLiDjksdXdUlUZWns4dNMSoxb6SmASNCzQyR+c nR+Sw26XBTTYMYr2D24MQvouwaZlQEEPKH/BtNYk6KYAivEPaYbaHRc6300h0g== 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=1725268366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f6XGelX87Mj17vnyDmJKjUYg3G2afxC5k6pPsF8aKew=; b=cNG9bZnkBPjYlZ9hfyk+T/NKcETv/YtTVuT+D4sdv7d5t/YE29m0oWQ+NRmgS34/ReJRmB FL1KvmH4YXUKa3Tdymh27NeDaqFr2mBiLEm/qjnBYP0kv/aVeFkN7VvyETGA27lRUV0ca4 xC7lWw6TMbAoVkKd8CaixntRwvJ+TylT3XBYjbT3rjM2NNMIXGXsqLOW9Fv/3VhF9ajcj6 A3gwWSt+ngMj7V8OxsBaxEl2HuKwiCJZg1ktxaLDcPp0eGx4m65erfAj0yJWhLxl6AWYxy ruoNX/Zl3tNN8N8SoPurnzzpP9vGVF5+PFLaxHot6AweSVWntC4P4yKeeF6epA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31p4YlJz16Dn; Mon, 2 Sep 2024 09:12:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829Ckmo049933; Mon, 2 Sep 2024 09:12:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CkXS049930; Mon, 2 Sep 2024 09:12:46 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:46 GMT Message-Id: <202409020912.4829CkXS049930@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 3c15d02bb8a1 - stable/13 - buf_ring: Use atomic operations with br_cons_tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3c15d02bb8a193d7c38cb9689454e4f26d12bb21 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=3c15d02bb8a193d7c38cb9689454e4f26d12bb21 commit 3c15d02bb8a193d7c38cb9689454e4f26d12bb21 Author: Andrew Turner AuthorDate: 2024-08-19 09:06:52 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Use atomic operations with br_cons_tail Use an atomic operation with a memory barrier loading br_cons_tail from the producer thread and storing to it in the consumer thread. On dequeue we need to read the pointer value from the buf_ring before moving the consumer tail as that indicates the entry is available to be used. The store release atomic operation guarantees this. In the enqueueing thread we then need to use a load acquire atomic operation to ensure writing to this entry can only happen after the tail has been read and checked. Reported by: Ali Saidi Co-developed by: Ali Saidi Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46152 (cherry picked from commit 44e1cfca417c5ef0db908f3836ec3ba704ef1de2) --- sys/sys/buf_ring.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index dec0f971ae44..9aeb5aa19fa8 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -91,7 +91,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) do { prod_head = br->br_prod_head; prod_next = prod_head + 1; - cons_tail = br->br_cons_tail; + cons_tail = atomic_load_acq_32(&br->br_cons_tail); if ((int32_t)(cons_tail + br->br_prod_size - prod_next) < 1) { rmb(); @@ -229,7 +229,7 @@ buf_ring_dequeue_sc(struct buf_ring *br) panic("inconsistent list cons_tail=%d cons_head=%d", br->br_cons_tail, cons_head); #endif - br->br_cons_tail = cons_next; + atomic_store_rel_32(&br->br_cons_tail, cons_next); return (buf); } @@ -257,7 +257,7 @@ buf_ring_advance_sc(struct buf_ring *br) #ifdef DEBUG_BUFRING br->br_ring[cons_head & mask] = NULL; #endif - br->br_cons_tail = cons_next; + atomic_store_rel_32(&br->br_cons_tail, cons_next); } /* From nobody Mon Sep 2 09:12:47 2024 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 4Wy31r29XZz5Mr7V; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31q6pfYz4Cc5; Mon, 2 Sep 2024 09:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jvylgYgoruarWN75cRWGqmVv1JprXwyGRBCMh+yOYTQ=; b=LPmH+uMrevcVGu8rC23A4Y4FYBMjRDdysEe/HKhDfgXRsitDy+IREtOR/0jzgEbTayhoU6 qON/sC8uWTjmB4IvSiZBRlsecnICfeHGJiIOGXEPOjNrgmk7kxQ24l9u8SrkQez57H47bJ gRb1MVbVJfnNvwngXGcd7wpFEBiB2GJKjcB8l21Zb2x9R1G4WEgoVuwGw1Rz6EENOORX4q JG9P7pE6PuqHEv1892r5kSFBPV4e6F6GujdjYQXqlVv2l4iT5sB5/MR0MFKGSgEbnDcWVG 7RtWewcPMOgXnSf+s7qG/3lAh5kXLwuWAs7ePfpesDrEVS3QbEwgLRHEqdFr3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268368; a=rsa-sha256; cv=none; b=y3Js7h1jcHrQ7QbktBY4FTXHsbRT/bvE9e6s3bNNjC/xsbV1iHL7B38PvKPFPX9HAxOjQk aTVTwTpJcVbgQGAlIAMjzJeZ8BnRass9WnuKvAOxkVcVMi75DLO0z441jtaWoRgeADDY8m V/4bz6i3u7IVAcVVkyCkN5IW9LNQPDMTDmyTw1441EZgGG2bgzYPwQaqio+ldG2nqi72hc pEDBy6Fd7+kRjtVWY9eiH1r2iCwqALvq6VGTkiMTnlUNWZGC5jFwr8s+hvIZqoZN+YtvgB 1RhQdoESReLG8NJPkTq0GYP+zNgzTdwRocPkkwP/O8bgGDP/ylXyqkPYOQmmpg== 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=1725268368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jvylgYgoruarWN75cRWGqmVv1JprXwyGRBCMh+yOYTQ=; b=Dw4BT8Tprp7zQ3xXtOROfZfQdTz5xe/TfVPKpDAV7wxUwwCx7+dc+mT1Qx3es53GGg98/t TPaosRwvtL9WVJQ9APS/mm7ooG/I4wXNBupIPsIqly1+EA4F8gpNsODUolKW+KQ7DSiziA cFQeT8wB05AcPz0UMUX9Aus12kSIcIXKPyBBgmc9CSOjPxy6dVSd85C3dU3+j5sliDIsB2 oZcVXbgrQvo7nW1C2GjrhOJsh0gdm/d3zF+Oen3hcJ0W0OoFeswUrKwlgc4oVhahoLgNaI 9Ik1Jx1IBEuMdNPQ/vtMRsGYDgXis1qY9v3oFm6ZbHgNBaLvgOMqDEpOZWd3PA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31q5w5wz15ld; Mon, 2 Sep 2024 09:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829ClGO049978; Mon, 2 Sep 2024 09:12:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829ClSP049975; Mon, 2 Sep 2024 09:12:47 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:47 GMT Message-Id: <202409020912.4829ClSP049975@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: b5410efe42c5 - stable/13 - buf_ring: Remove old arm-only dequeue 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b5410efe42c5bcf78d3f41052266a758e4fd03fc Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=b5410efe42c5bcf78d3f41052266a758e4fd03fc commit b5410efe42c5bcf78d3f41052266a758e4fd03fc Author: Andrew Turner AuthorDate: 2024-08-19 09:07:10 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Remove old arm-only dequeue code In the single consumer dequeue the consumer thread controls br_cons_head. As such no ordering between this and other data are required. Reviewed by: alc, imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46153 (cherry picked from commit 7eb0fffc7792bc294d6b86546a3923e2e2f83f8a) --- sys/sys/buf_ring.h | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 9aeb5aa19fa8..ad463fba27cb 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -177,37 +177,8 @@ buf_ring_dequeue_sc(struct buf_ring *br) uint32_t prod_tail, mask; void *buf; - /* - * This is a workaround to allow using buf_ring on ARM and ARM64. - * ARM64TODO: Fix buf_ring in a generic way. - * REMARKS: It is suspected that br_cons_head does not require - * load_acq operation, but this change was extensively tested - * and confirmed it's working. To be reviewed once again in - * FreeBSD-12. - * - * Preventing following situation: - - * Core(0) - buf_ring_enqueue() Core(1) - buf_ring_dequeue_sc() - * ----------------------------------------- ---------------------------------------------- - * - * cons_head = br->br_cons_head; - * atomic_cmpset_acq_32(&br->br_prod_head, ...)); - * buf = br->br_ring[cons_head]; > - * br->br_ring[prod_head] = buf; - * atomic_store_rel_32(&br->br_prod_tail, ...); - * prod_tail = br->br_prod_tail; - * if (cons_head == prod_tail) - * return (NULL); - * ` - * - * <1> Load (on core 1) from br->br_ring[cons_head] can be reordered (speculative readed) by CPU. - */ mask = br->br_cons_mask; -#if defined(__arm__) || defined(__aarch64__) - cons_head = atomic_load_acq_32(&br->br_cons_head); -#else cons_head = br->br_cons_head; -#endif prod_tail = atomic_load_acq_32(&br->br_prod_tail); cons_next = cons_head + 1; From nobody Mon Sep 2 09:12:48 2024 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 4Wy31s6m9Sz5Mr5p; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31s0RTsz4Cj5; Mon, 2 Sep 2024 09:12:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=223n5vHzBTjjuiGZTBrtQPgxJipI82R6hQSVnZJx1uw=; b=e5SEBFUfLXnqzE9KHyakSuhdlhPlKnLEAtBDm0RkuizbtHF7N+zu3JWgiC2LDZr/cFoX/D JgrbJzJLADmPZns/NtS5I4ZNEH5lMpaDhO1Ad7cUD5I+Q4tLpFKQ3iypYlLo1Pzb3wVFxj YS431XMeL38YX6T058xkfMMXUrAxKY6yshQSTnDF7upebuDyYcSh7s9hyhOF3RmhUtsa1r 6KCzCNDSZBpsdOz0b9BiZTUL2p3ozQ96Mx5nUJ/FaUDYjkww+xUa6A1m3+DtbE3AqSaZfu OVfs+M5giOu0At5py1ztwQS0jm4iiMW2JcECDJpgDuvdaWhy65FNYfj599a0jA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268369; a=rsa-sha256; cv=none; b=USR7I6ahww8Y3Q8hddQxgTH3Ppq8O/O4+wEzdmf2JvvG+JBwD6LCAo8ILsvrmWuSyNm83Z k82YZNd5Bf2M66xxV64WynHO9kCb6qL7M2XyTXqln0FbUCTWjICKfvxBwlreVXjtipMwdQ wNusjc484nPvXzHyKdD77kDjukMd6KHiel2E98QERoG//t2xB4YYu426uio9OQu81rD0U7 TkW5zsQclmusX5WqSPprTNRUZv3iWl5GjfpT7kiEvXTy5dhnK18+bpoHO3WSWyHUKGL+qh yDY6b81nObX3oIHuOyXAHZ0kDN1WFQL++j1GLsiGnpjVFNiqBNFbbVRXyS2H1Q== 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=1725268369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=223n5vHzBTjjuiGZTBrtQPgxJipI82R6hQSVnZJx1uw=; b=p3rYlasFt3Ys6hE1qxi+vpgi+JPCVJ1iaB7vF4W3MIRvWn7NlO79LzMwv6/GdEWfeLgHlJ F1otUPDm77A62ljjcf/ue0Qrav6y6NUngZAcEXzkd+ssLLlx0rgHifST9D104+Ofim3Ahe FT+QKcWrDysqR442IAJn7+JNA4SgXZiy4fr1VkSdum2ByAvsc43PHuaTIS2+P13I2BrQC1 jgK44L/PdzSAqAsYGIKE/FRzxr/g1T3GbF8D4sIcv+DNuyOlwu+RuCMeGaZ8kyW0Q0mhRy Lk4jO7aj2//5aMGXl7tzLNFVIq6YbP3F859N7VmcT95H02Nq0JqIF70MIwp97g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31r75kZz16Gb; Mon, 2 Sep 2024 09:12:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829Cmpg050033; Mon, 2 Sep 2024 09:12:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829CmYm050030; Mon, 2 Sep 2024 09:12:48 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:48 GMT Message-Id: <202409020912.4829CmYm050030@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 74538cec0cfb - stable/13 - buf_ring: Use atomic operations with br_prod_tail 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 74538cec0cfba5d336f294dcdf7357db6aa5a850 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=74538cec0cfba5d336f294dcdf7357db6aa5a850 commit 74538cec0cfba5d336f294dcdf7357db6aa5a850 Author: Andrew Turner AuthorDate: 2024-08-19 09:07:19 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Use atomic operations with br_prod_tail As with br_cons_tail use an atomic load acquire to read br_prod_tail in buf_ring_dequeue_mc and buf_ring_peek*. On dequeue we need to ensure we don't read the entry from the buf_ring until it is available and prod_tail has updated. There is already an appropriate store in the enqueue path and an appropriate load in the single consumer dequeue, we just need one in the other functions that read from the buf_ring. Reviewed by: imp, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46154 (cherry picked from commit 947754af55edc217c10e3456d97558c4eb6d0f99) --- sys/sys/buf_ring.h | 45 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index ad463fba27cb..66e1e55bc5e9 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -131,7 +131,7 @@ static __inline void * buf_ring_dequeue_mc(struct buf_ring *br) { uint32_t cons_head, cons_next, cons_idx; - uint32_t mask; + uint32_t prod_tail, mask; void *buf; critical_enter(); @@ -139,8 +139,9 @@ buf_ring_dequeue_mc(struct buf_ring *br) do { cons_head = br->br_cons_head; cons_next = cons_head + 1; + prod_tail = atomic_load_acq_32(&br->br_prod_tail); - if (cons_head == br->br_prod_tail) { + if (cons_head == prod_tail) { critical_exit(); return (NULL); } @@ -266,29 +267,26 @@ buf_ring_putback_sc(struct buf_ring *br, void *new) static __inline void * buf_ring_peek(struct buf_ring *br) { - uint32_t mask; + uint32_t cons_head, prod_tail, mask; #if defined(DEBUG_BUFRING) && defined(_KERNEL) if ((br->br_lock != NULL) && !mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue"); #endif mask = br->br_cons_mask; - /* - * I believe it is safe to not have a memory barrier - * here because we control cons and tail is worst case - * a lagging indicator so we worst case we might - * return NULL immediately after a buffer has been enqueued - */ - if (br->br_cons_head == br->br_prod_tail) + prod_tail = atomic_load_acq_32(&br->br_prod_tail); + cons_head = br->br_cons_head; + + if (cons_head == prod_tail) return (NULL); - return (br->br_ring[br->br_cons_head & mask]); + return (br->br_ring[cons_head & mask]); } static __inline void * buf_ring_peek_clear_sc(struct buf_ring *br) { - uint32_t mask; + uint32_t cons_head, prod_tail, mask; void *ret; #if defined(DEBUG_BUFRING) && defined(_KERNEL) @@ -297,30 +295,19 @@ buf_ring_peek_clear_sc(struct buf_ring *br) #endif mask = br->br_cons_mask; - if (br->br_cons_head == br->br_prod_tail) - return (NULL); + prod_tail = atomic_load_acq_32(&br->br_prod_tail); + cons_head = br->br_cons_head; -#if defined(__arm__) || defined(__aarch64__) - /* - * The barrier is required there on ARM and ARM64 to ensure, that - * br->br_ring[br->br_cons_head] will not be fetched before the above - * condition is checked. - * Without the barrier, it is possible, that buffer will be fetched - * before the enqueue will put mbuf into br, then, in the meantime, the - * enqueue will update the array and the br_prod_tail, and the - * conditional check will be true, so we will return previously fetched - * (and invalid) buffer. - */ - atomic_thread_fence_acq(); -#endif + if (cons_head == prod_tail) + return (NULL); - ret = br->br_ring[br->br_cons_head & mask]; + ret = br->br_ring[cons_head & mask]; #ifdef DEBUG_BUFRING /* * Single consumer, i.e. cons_head will not move while we are * running, so atomic_swap_ptr() is not necessary here. */ - br->br_ring[br->br_cons_head & mask] = NULL; + br->br_ring[cons_head & mask] = NULL; #endif return (ret); } From nobody Mon Sep 2 09:12:50 2024 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 4Wy31t2Vtcz5Mr5v; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31t1SLnz4Csh; Mon, 2 Sep 2024 09:12:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GzauxNYGekcGYl1qzNlmAdBHCTy8I3GO7dgJjGnpcaI=; b=fUn+OXiNK3b6LmZsquEwHoq+I8cQcopjNX4LrVx+DAcCXpYUZ71Pao2B06KRVkzU0EyKV8 1WSymT/ai2kWOOYG0Yv2QmeYleVjmpgaruqK/4sY32agtqFJ3xohfrnOTsY0F/HM5UjkuT NPZoUcoE/hFqJaqSCAb0/xWXUnQn3wo8UrCKhziiK5KwFTkvxMnmhZMB/rsvJrc3qh7ghF 8LRtFQJBCDnSY1I1CoFmAyUNE2vWrBMTZc/OsttJymLW0OM7fiCNjcBW80GlXg/ADXZz3A 0nQGZ35aG7FpTgAQyeQUl2Dme9i9kPoQUR+FWR6XU0bM7hWNoO/+2KFSZorS7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268370; a=rsa-sha256; cv=none; b=qCJfWNH7xBilZoZLN+iAyknpIHwz8E5kTtjtdizKY+z06bY0eOXFy8ehubsY3BwOq9fxhz myWufQCtlHmnVEeVg6CoZK+uQ3p3Qta+aK1T9dWmI1aeCWIU65h9KADLosNlYwwpWrVgid ZpfYEigL5Uqp1qsMif2bUelimgihPRolSNSkOCBrTnF/72XA0F9oCP4CkZrBhUvaMJprxO r3jbN7zOBtHf4du3NlmEOAfzHn0LLh9Tzn/sx3pjxQkOZNeHt6cIGUslA35Un8eFg+f57/ /8IHXYggrbdJBaG3dwdGajY9w1wAOmIjutTaa8P0FTv+4eDkv0lHHJl9ckGB2g== 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=1725268370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GzauxNYGekcGYl1qzNlmAdBHCTy8I3GO7dgJjGnpcaI=; b=krBBP1b5KtulWXEjnRPGH7l17nlbsyQoJWruuvb4zyvl6gyvt0QzENBNpTnLBYUxbHnqo0 twfijZ8cs4DxgOxIBe9LkGlqt5zcHnpA7OHj5U1/2LwIvHwSH6kqd2iWAEQjzbmX0ETurl 3NKaASmzwuRfyPtGStA28Bufun7wq76mhhhv9neDAnpOi3I/66bNApxCRI4cyyJqi05DdO 0aWBfr8H7tJqUWIL2RehteTeyo313037zxOLCrX4hjeOBkY/Nq8VyNFqnvhus2eFROUUa6 ykVo58cJcICcY3nNQoUMSR2g3KfZGRVLiNqJnVjOGurnthJ7ITIL51Ct9+2hpw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31t10wPz16Dp; Mon, 2 Sep 2024 09:12:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829Coru050086; Mon, 2 Sep 2024 09:12:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829Cort050083; Mon, 2 Sep 2024 09:12:50 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:50 GMT Message-Id: <202409020912.4829Cort050083@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 39757e10689d - stable/13 - buf_ring: Ensure correct ordering of loads 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 39757e10689d44036b5d10de41d766641e59eec0 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=39757e10689d44036b5d10de41d766641e59eec0 commit 39757e10689d44036b5d10de41d766641e59eec0 Author: Andrew Turner AuthorDate: 2024-08-19 09:07:26 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:57 +0000 buf_ring: Ensure correct ordering of loads When enqueueing on an architecture with a weak memory model ensure loading br->br_prod_head and br->br_cons_tail are ordered correctly. If br_cons_tail is loaded first then other threads may perform a dequeue and enqueue before br_prod_head is loaded. This will mean the tail is one less than it should be and the code under the prod_next == cons_tail check could incorrectly be skipped. buf_ring_dequeue_mc has the same issue with br->br_prod_tail and br->br_cons_head so needs the same fix. Reported by: Ali Saidi Co-developed by: Ali Saidi Reviewed by: imp, kib, markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46155 (cherry picked from commit fe2445f47d027c73aa7266669e7d94b70d3949a4) --- sys/sys/buf_ring.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 66e1e55bc5e9..512f20dc13e2 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -89,7 +89,17 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) #endif critical_enter(); do { - prod_head = br->br_prod_head; + /* + * br->br_prod_head needs to be read before br->br_cons_tail. + * If not then we could perform the dequeue and enqueue + * between reading br_cons_tail and reading br_prod_head. This + * could give us values where br_cons_head == br_prod_tail + * (after masking). + * + * To work around this us a load acquire. This is just to + * ensure ordering within this thread. + */ + prod_head = atomic_load_acq_32(&br->br_prod_head); prod_next = prod_head + 1; cons_tail = atomic_load_acq_32(&br->br_cons_tail); @@ -137,7 +147,12 @@ buf_ring_dequeue_mc(struct buf_ring *br) critical_enter(); mask = br->br_cons_mask; do { - cons_head = br->br_cons_head; + /* + * As with buf_ring_enqueue ensure we read the head before + * the tail. If we read them in the wrong order we may + * think the bug_ring is full when it is empty. + */ + cons_head = atomic_load_acq_32(&br->br_cons_head); cons_next = cons_head + 1; prod_tail = atomic_load_acq_32(&br->br_prod_tail); From nobody Mon Sep 2 09:12:51 2024 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 4Wy31v4vLpz5MqrB; Mon, 02 Sep 2024 09:12: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wy31v2R5zz4Cp8; Mon, 2 Sep 2024 09:12:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725268371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S64LBSnb3A6UoNpze6pARF4jrotiC5eMry9yh3IanXs=; b=vt1N+Unn75PHOe39bo149ZMA9lWWxcHKFxxjZkjms+PQZ2huv3xwN9M7FLe9HL2bTTtVQa gR16yKShMuEs9GZ3jqJ+43y0H7tsY2VZb8VWcsPK0lkwypAQhOif1FM2VPXkXEB8mJsvzF dtP1e1TGWBSYwjjJjB4uvld0fwxMGjklQ4Mi8NK6NUT+QNtHutZCKLMpQ8y0z233CKwsmI iF81VNIk8qIFqiRpAfdfpDfdc9yOq7D6FJ7s+dZU0Z+5VQttsPeiAZgYB/q/7PIj8tM5Wj ZEMwl9oZqBC4smEL+DhOVL/68vbVR0FGqvJKUF4VM9CTk41jTr9XpbdsHmcGUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725268371; a=rsa-sha256; cv=none; b=VDT+5L7hy8jjRKJ9zGv9Azt8FPK6UsPdVTGims0VQgF13MkDLFXG04n/vOydJkhCsePmR4 AeLb+EfH7cDmSYnTQfLD0AZPlkiPMN/Ko9iV146up6/4Zqb6fpG4jomUs73y5lGTKmAxIl 1JhZd0pn4UKJZaP2za9H2IE/R6eLTFIdV9V00HomU+KPc4NfT+juaK3qSkpxodW80/uAzC N20vSyoYvRI82x5f0fZ6X6QfMxRu5/N+7St2eJcyF23B/n50tpj3QNZ+vwbnGlkMtNV0YE 51V/Gtc+rqfSNSn87fJnhqP03J/KvwQMxBbfh45TpSr7RRiHq5Whpoh35Lbzgw== 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=1725268371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S64LBSnb3A6UoNpze6pARF4jrotiC5eMry9yh3IanXs=; b=onaOlNlrwyLQ65SGBzFNOw+ifX/ZE1k3/TsGg7/L2+W7DzPK0gWzl6BZ/jDta5ZiHyOs+s x858fbOqUTPQfuG+c2bI4nNs16kPPvLpx/kz5e4kkBVJpF0/tHSfOb7ZbPwc899IBqCGsg 35BKpUVuyg5PYyBfiSH7RKsVXtomtVPCJKaUfichtm5r1s+pDRJjB6sVr0JMdYuI6ybPOr puWyI7+/eldDpvCdWUpyX6HtUf2QH6a3v8r7OJTjE6bMOiFB0Hvb5KolXfgjdNkViftU5E M6DjCPpk9pMIZscEtsZCgIxPYQE0e9WAjDTVQPuslbcsdhTMXit6wyNfIro0jQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wy31v23VLz16K2; Mon, 2 Sep 2024 09:12:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4829CpN4050128; Mon, 2 Sep 2024 09:12:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4829Cpc9050125; Mon, 2 Sep 2024 09:12:51 GMT (envelope-from git) Date: Mon, 2 Sep 2024 09:12:51 GMT Message-Id: <202409020912.4829Cpc9050125@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: c3a00482a3dd - stable/13 - buf_ring: Add an Arm copyright 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c3a00482a3dd95ddaa8228656530efbdb6d64246 Auto-Submitted: auto-generated The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c3a00482a3dd95ddaa8228656530efbdb6d64246 commit c3a00482a3dd95ddaa8228656530efbdb6d64246 Author: Andrew Turner AuthorDate: 2024-08-19 09:08:20 +0000 Commit: Andrew Turner CommitDate: 2024-09-02 09:11:58 +0000 buf_ring: Add an Arm copyright I've change enough of this file to add Arm as a copyright holder. Add it after the "All rights reserved" line as that's not needed. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D46157 (cherry picked from commit 87940d2b331c2575f96fbff2600d8da35191157b) --- sys/sys/buf_ring.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/buf_ring.h b/sys/sys/buf_ring.h index 512f20dc13e2..c99cf81d8b6d 100644 --- a/sys/sys/buf_ring.h +++ b/sys/sys/buf_ring.h @@ -3,6 +3,7 @@ * * Copyright (c) 2007-2009 Kip Macy * All rights reserved. + * Copyright (c) 2024 Arm Ltd * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From nobody Tue Sep 3 00:02:16 2024 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 4WyQm936Glz5VHSk; Tue, 03 Sep 2024 00:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WyQm92jyzz4gkM; Tue, 3 Sep 2024 00:02:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725321737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P7BDXXNFzEqf8bf8nUSwoIN2RPjX1SGMDWwKu/sjWSQ=; b=cAY/IY3VGpQZZEfaWlT+bdBD2PPzq5qbHSFx4bIMq7Pk0RLYehn2sF6aDFijZJFcePpqZu Q+POx87C6OQLO633oJHXkfgd5U4H+UY3dRt3vG8s2vEG/7inD3r+L1Y3VcyWFbovdiqNhr b4XEPxBY23FT+m/XufirMjzUqMcLReVSifPMd11wG3tRQN0JjDhMwgzL6wHW3qoAOXM7kT 9bnjJHMiOJW0OwwTv/KQdjB0Z1tgZhqvwqNRF1Btvbdx6JGaaGaP/brPLE80Z9NjxUqwbZ Pg2tNa0Aw653/Ic4HASGeSO/Pkc8zpT4zIPBKgKR8Pgq4rAOpd4tKy52YvU39Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725321737; a=rsa-sha256; cv=none; b=GbsvUm93d5tiUoZyUqTQ0LjbpIdDs6mzMdHjiiRbx0kgkkDLgJnPTq2aGQL49y3hKK6zWK Il+Azf8JEcrZPUKSN+9hyGc8FeYPflEvlSCCSd57ctR4d5HQkSmR3JoVPdsof5VMFu8n1e 4nty9tak4u3ISfZrDzUsgP5WVgxZ+DFHdDcDwjQZzxelQRgdPGjNDP+/5AH7cZch+9Zp2L NgImEC7gRDjHz89hZstE49Np46IEZ0++yOpctEL3OCO09dYdCKX8ulev027zu2rMk8+BHY 3acjWsgkKg4cPdITuN+oIPfpsIALy74vxKwYKpXv5STqJmOUkgFi3hmNts7uEQ== 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=1725321737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P7BDXXNFzEqf8bf8nUSwoIN2RPjX1SGMDWwKu/sjWSQ=; b=bBye4VSSFs6xm2JBQsq4a21Ff67oWKwaN8QCG7zIWYsUghOK2yp4eoZ3yMYJcg7wZNut2Z uril0NRQzKL4L4G0FrYR3CPajGzWyc+W2IxzlCNeYQ3/9ZGP4LDxZD8NevQ5FZYVShe0HN xNJFfDn8ugO9pvSlKbpZ7Xbvq44xzveFfI8z22XrWNrRNVXhI5tirflq4/lFStlSIq9loj mCiKcJV8mfhbU8bwKyLzcH7fw1cm9peD7fTTfHApIKmsMYT+v0R3NVvAfAgD1rUv0YTeBB AjmsQnYdUzeVZ/LT6Th/PTKDXa9XR+wydKnu63rr9yrSOxOs8LfiCA6YbfjIVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WyQm92JXdzHx1; Tue, 3 Sep 2024 00:02:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48302Hgg055444; Tue, 3 Sep 2024 00:02:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48302GD6055441; Tue, 3 Sep 2024 00:02:16 GMT (envelope-from git) Date: Tue, 3 Sep 2024 00:02:16 GMT Message-Id: <202409030002.48302GD6055441@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 762274a14913 - stable/14 - sqlite3: Vendor import of sqlite3 3.46.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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 762274a14913546b95b147718d68838685193444 Auto-Submitted: auto-generated The branch stable/14 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=762274a14913546b95b147718d68838685193444 commit 762274a14913546b95b147718d68838685193444 Author: Cy Schubert AuthorDate: 2024-08-26 20:00:23 +0000 Commit: Cy Schubert CommitDate: 2024-09-03 00:01:33 +0000 sqlite3: Vendor import of sqlite3 3.46.1 Release notes at https://www.sqlite.org/releaselog/3_46_1.html. Obtained from: https://www.sqlite.org/2024/sqlite-autoconf-3460100.tar.gz MFC after: 1 week Merge commit '657ea345f331704c612a35e5a74968bef9ffcfd8' into sqlite3 (cherry picked from commit de9468837c92cab304c658480bd32dbe4e022d01) --- contrib/sqlite3/configure | 20 ++--- contrib/sqlite3/configure.ac | 2 +- contrib/sqlite3/shell.c | 40 +++++----- contrib/sqlite3/sqlite3.c | 154 ++++++++++++++++++++------------------- contrib/sqlite3/sqlite3.h | 6 +- contrib/sqlite3/sqlite3rc.h | 2 +- contrib/sqlite3/tea/configure | 18 ++--- contrib/sqlite3/tea/configure.ac | 2 +- 8 files changed, 127 insertions(+), 117 deletions(-) diff --git a/contrib/sqlite3/configure b/contrib/sqlite3/configure index f2f70b5ae802..fcab0424fc5a 100755 --- a/contrib/sqlite3/configure +++ b/contrib/sqlite3/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sqlite 3.46.0. +# Generated by GNU Autoconf 2.71 for sqlite 3.46.1. # # Report bugs to . # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.46.0' -PACKAGE_STRING='sqlite 3.46.0' +PACKAGE_VERSION='3.46.1' +PACKAGE_STRING='sqlite 3.46.1' PACKAGE_BUGREPORT='http://www.sqlite.org' PACKAGE_URL='' @@ -1367,7 +1367,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.46.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.46.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1438,7 +1438,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.46.0:";; + short | recursive ) echo "Configuration of sqlite 3.46.1:";; esac cat <<\_ACEOF @@ -1563,7 +1563,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.46.0 +sqlite configure 3.46.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1833,7 +1833,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.46.0, which was +It was created by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3106,7 +3106,7 @@ fi # Define the identity of the package. PACKAGE='sqlite' - VERSION='3.46.0' + VERSION='3.46.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -15314,7 +15314,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.46.0, which was +This file was extended by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15373,7 +15373,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sqlite config.status 3.46.0 +sqlite config.status 3.46.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/contrib/sqlite3/configure.ac b/contrib/sqlite3/configure.ac index c83f381d90b1..806255961fda 100644 --- a/contrib/sqlite3/configure.ac +++ b/contrib/sqlite3/configure.ac @@ -10,7 +10,7 @@ # AC_PREREQ(2.61) -AC_INIT(sqlite, 3.46.0, http://www.sqlite.org) +AC_INIT(sqlite, 3.46.1, http://www.sqlite.org) AC_CONFIG_SRCDIR([sqlite3.c]) AC_CONFIG_AUX_DIR([.]) diff --git a/contrib/sqlite3/shell.c b/contrib/sqlite3/shell.c index 7d46e4acac57..b08671e14de3 100644 --- a/contrib/sqlite3/shell.c +++ b/contrib/sqlite3/shell.c @@ -604,11 +604,6 @@ zSkipValidUtf8(const char *z, int nAccept, long ccm); # define CIO_WIN_WC_XLATE 0 /* Not exposing translation routines at all */ #endif -#if CIO_WIN_WC_XLATE -/* Character used to represent a known-incomplete UTF-8 char group (�) */ -static WCHAR cBadGroup = 0xfffd; -#endif - #if CIO_WIN_WC_XLATE static HANDLE handleOfFile(FILE *pf){ int fileDesc = _fileno(pf); @@ -12547,7 +12542,7 @@ static int expertFilter( pCsr->pData = 0; if( rc==SQLITE_OK ){ rc = idxPrintfPrepareStmt(pExpert->db, &pCsr->pData, &pVtab->base.zErrMsg, - "SELECT * FROM main.%Q WHERE sample()", pVtab->pTab->zName + "SELECT * FROM main.%Q WHERE sqlite_expert_sample()", pVtab->pTab->zName ); } @@ -13421,7 +13416,7 @@ struct IdxRemCtx { }; /* -** Implementation of scalar function rem(). +** Implementation of scalar function sqlite_expert_rem(). */ static void idxRemFunc( sqlite3_context *pCtx, @@ -13434,7 +13429,7 @@ static void idxRemFunc( assert( argc==2 ); iSlot = sqlite3_value_int(argv[0]); - assert( iSlot<=p->nSlot ); + assert( iSlotnSlot ); pSlot = &p->aSlot[iSlot]; switch( pSlot->eType ){ @@ -13545,7 +13540,8 @@ static int idxPopulateOneStat1( const char *zName = (const char*)sqlite3_column_text(pIndexXInfo, 0); const char *zColl = (const char*)sqlite3_column_text(pIndexXInfo, 1); zCols = idxAppendText(&rc, zCols, - "%sx.%Q IS rem(%d, x.%Q) COLLATE %s", zComma, zName, nCol, zName, zColl + "%sx.%Q IS sqlite_expert_rem(%d, x.%Q) COLLATE %s", + zComma, zName, nCol, zName, zColl ); zOrder = idxAppendText(&rc, zOrder, "%s%d", zComma, ++nCol); } @@ -13678,13 +13674,13 @@ static int idxPopulateStat1(sqlite3expert *p, char **pzErr){ if( rc==SQLITE_OK ){ sqlite3 *dbrem = (p->iSample==100 ? p->db : p->dbv); - rc = sqlite3_create_function( - dbrem, "rem", 2, SQLITE_UTF8, (void*)pCtx, idxRemFunc, 0, 0 + rc = sqlite3_create_function(dbrem, "sqlite_expert_rem", + 2, SQLITE_UTF8, (void*)pCtx, idxRemFunc, 0, 0 ); } if( rc==SQLITE_OK ){ - rc = sqlite3_create_function( - p->db, "sample", 0, SQLITE_UTF8, (void*)&samplectx, idxSampleFunc, 0, 0 + rc = sqlite3_create_function(p->db, "sqlite_expert_sample", + 0, SQLITE_UTF8, (void*)&samplectx, idxSampleFunc, 0, 0 ); } @@ -13736,6 +13732,9 @@ static int idxPopulateStat1(sqlite3expert *p, char **pzErr){ rc = sqlite3_exec(p->dbm, "ANALYZE sqlite_schema", 0, 0, 0); } + sqlite3_create_function(p->db, "sqlite_expert_rem", 2, SQLITE_UTF8, 0,0,0,0); + sqlite3_create_function(p->db, "sqlite_expert_sample", 0,SQLITE_UTF8,0,0,0,0); + sqlite3_exec(p->db, "DROP TABLE IF EXISTS temp."UNIQUE_TABLE_NAME,0,0,0); return rc; } @@ -16836,8 +16835,8 @@ static int recoverError( va_start(ap, zFmt); if( zFmt ){ z = sqlite3_vmprintf(zFmt, ap); - va_end(ap); } + va_end(ap); sqlite3_free(p->zErrMsg); p->zErrMsg = z; p->errCode = errCode; @@ -27085,7 +27084,6 @@ static int do_meta_command(char *zLine, ShellState *p){ import_cleanup(&sCtx); shell_out_of_memory(); } - nByte = strlen(zSql); rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0); sqlite3_free(zSql); zSql = 0; @@ -27104,16 +27102,21 @@ static int do_meta_command(char *zLine, ShellState *p){ sqlite3_finalize(pStmt); pStmt = 0; if( nCol==0 ) return 0; /* no columns, no error */ - zSql = sqlite3_malloc64( nByte*2 + 20 + nCol*2 ); + + nByte = 64 /* space for "INSERT INTO", "VALUES(", ")\0" */ + + (zSchema ? strlen(zSchema)*2 + 2: 0) /* Quoted schema name */ + + strlen(zTable)*2 + 2 /* Quoted table name */ + + nCol*2; /* Space for ",?" for each column */ + zSql = sqlite3_malloc64( nByte ); if( zSql==0 ){ import_cleanup(&sCtx); shell_out_of_memory(); } if( zSchema ){ - sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\".\"%w\" VALUES(?", + sqlite3_snprintf(nByte, zSql, "INSERT INTO \"%w\".\"%w\" VALUES(?", zSchema, zTable); }else{ - sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\" VALUES(?", zTable); + sqlite3_snprintf(nByte, zSql, "INSERT INTO \"%w\" VALUES(?", zTable); } j = strlen30(zSql); for(i=1; i=2 ){ oputf("Insert using: %s\n", zSql); } diff --git a/contrib/sqlite3/sqlite3.c b/contrib/sqlite3/sqlite3.c index eaa24a131073..946815f13ec8 100644 --- a/contrib/sqlite3/sqlite3.c +++ b/contrib/sqlite3/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.46.0. By combining all the individual C code files into this +** version 3.46.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -18,7 +18,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** 96c92aba00c8375bc32fafcdf12429c58bd8. +** c9c2ab54ba1f5f46360f1b4f35d849cd3f08. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -459,9 +459,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.46.0" -#define SQLITE_VERSION_NUMBER 3046000 -#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -19361,7 +19361,7 @@ struct SrcList { #define WHERE_AGG_DISTINCT 0x0400 /* Query is "SELECT agg(DISTINCT ...)" */ #define WHERE_ORDERBY_LIMIT 0x0800 /* ORDERBY+LIMIT on the inner loop */ #define WHERE_RIGHT_JOIN 0x1000 /* Processing a RIGHT JOIN */ - /* 0x2000 not currently used */ +#define WHERE_KEEP_ALL_JOINS 0x2000 /* Do not do the omit-noop-join opt */ #define WHERE_USE_LIMIT 0x4000 /* Use the LIMIT in cost estimates */ /* 0x8000 not currently used */ @@ -90173,7 +90173,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff assert( iVar>0 ); if( v ){ Mem *pMem = &v->aVar[iVar-1]; - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( 0==(pMem->flags & MEM_Null) ){ sqlite3_value *pRet = sqlite3ValueNew(v->db); if( pRet ){ @@ -90193,7 +90194,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff */ SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe *v, int iVar){ assert( iVar>0 ); - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( iVar>=32 ){ v->expmask |= 0x80000000; }else{ @@ -106950,7 +106952,7 @@ static void extendFJMatch( static SQLITE_NOINLINE int isValidSchemaTableName( const char *zTab, /* Name as it appears in the SQL */ Table *pTab, /* The schema table we are trying to match */ - Schema *pSchema /* non-NULL if a database qualifier is present */ + const char *zDb /* non-NULL if a database qualifier is present */ ){ const char *zLegacy; assert( pTab!=0 ); @@ -106961,7 +106963,7 @@ static SQLITE_NOINLINE int isValidSchemaTableName( if( sqlite3StrICmp(zTab+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0 ){ return 1; } - if( pSchema==0 ) return 0; + if( zDb==0 ) return 0; if( sqlite3StrICmp(zTab+7, &LEGACY_SCHEMA_TABLE[7])==0 ) return 1; if( sqlite3StrICmp(zTab+7, &PREFERRED_SCHEMA_TABLE[7])==0 ) return 1; }else{ @@ -107144,7 +107146,7 @@ static int lookupName( } }else if( sqlite3StrICmp(zTab, pTab->zName)!=0 ){ if( pTab->tnum!=1 ) continue; - if( !isValidSchemaTableName(zTab, pTab, pSchema) ) continue; + if( !isValidSchemaTableName(zTab, pTab, zDb) ) continue; } assert( ExprUseYTab(pExpr) ); if( IN_RENAME_OBJECT && pItem->zAlias ){ @@ -108876,6 +108878,9 @@ SQLITE_PRIVATE int sqlite3ResolveExprNames( ** Resolve all names for all expression in an expression list. This is ** just like sqlite3ResolveExprNames() except that it works for an expression ** list rather than a single expression. +** +** The return value is SQLITE_OK (0) for success or SQLITE_ERROR (1) for a +** failure. */ SQLITE_PRIVATE int sqlite3ResolveExprListNames( NameContext *pNC, /* Namespace to resolve expressions in. */ @@ -108884,7 +108889,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( int i; int savedHasAgg = 0; Walker w; - if( pList==0 ) return WRC_Continue; + if( pList==0 ) return SQLITE_OK; w.pParse = pNC->pParse; w.xExprCallback = resolveExprStep; w.xSelectCallback = resolveSelectStep; @@ -108898,7 +108903,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight += pExpr->nHeight; if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){ - return WRC_Abort; + return SQLITE_ERROR; } #endif sqlite3WalkExprNN(&w, pExpr); @@ -108915,10 +108920,10 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( (NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); } - if( w.pParse->nErr>0 ) return WRC_Abort; + if( w.pParse->nErr>0 ) return SQLITE_ERROR; } pNC->ncFlags |= savedHasAgg; - return WRC_Continue; + return SQLITE_OK; } /* @@ -117457,7 +117462,7 @@ static int renameResolveTrigger(Parse *pParse){ /* ALWAYS() because if the table of the trigger does not exist, the ** error would have been hit before this point */ if( ALWAYS(pParse->pTriggerTab) ){ - rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab); + rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab)!=0; } /* Resolve symbols in WHEN clause */ @@ -124426,8 +124431,9 @@ create_view_fail: #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) /* ** The Table structure pTable is really a VIEW. Fill in the names of -** the columns of the view in the pTable structure. Return the number -** of errors. If an error is seen leave an error message in pParse->zErrMsg. +** the columns of the view in the pTable structure. Return non-zero if +** there are errors. If an error is seen an error message is left +** in pParse->zErrMsg. */ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ Table *pSelTab; /* A fake table from which we get the result set */ @@ -124550,7 +124556,7 @@ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ sqlite3DeleteColumnNames(db, pTable); } #endif /* SQLITE_OMIT_VIEW */ - return nErr; + return nErr + pParse->nErr; } SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ assert( pTable!=0 ); @@ -130848,6 +130854,8 @@ static void groupConcatValue(sqlite3_context *context){ sqlite3_result_error_toobig(context); }else if( pAccum->accError==SQLITE_NOMEM ){ sqlite3_result_error_nomem(context); + }else if( pGCC->nAccum>0 && pAccum->nChar==0 ){ + sqlite3_result_text(context, "", 1, SQLITE_STATIC); }else{ const char *zText = sqlite3_str_value(pAccum); sqlite3_result_text(context, zText, pAccum->nChar, SQLITE_TRANSIENT); @@ -133602,6 +133610,7 @@ SQLITE_PRIVATE Select *sqlite3MultiValues(Parse *pParse, Select *pLeft, ExprList pRet->pSrc->nSrc = 1; pRet->pPrior = pLeft->pPrior; pRet->op = pLeft->op; + if( pRet->pPrior ) pRet->selFlags |= SF_Values; pLeft->pPrior = 0; pLeft->op = TK_SELECT; assert( pLeft->pNext==0 ); @@ -166067,7 +166076,9 @@ static int whereLoopAddBtree( " according to whereIsCoveringIndex()\n", pProbe->zName)); } } - }else if( m==0 ){ + }else if( m==0 + && (HasRowid(pTab) || pWInfo->pSelect!=0 || sqlite3FaultSim(700)) + ){ WHERETRACE(0x200, ("-> %s a covering index according to bitmasks\n", pProbe->zName, m==0 ? "is" : "is not")); @@ -167956,6 +167967,10 @@ static void showAllWhereLoops(WhereInfo *pWInfo, WhereClause *pWC){ ** the right-most table of a subquery that was flattened into the ** main query and that subquery was the right-hand operand of an ** inner join that held an ON or USING clause. +** 6) The ORDER BY clause has 63 or fewer terms +** 7) The omit-noop-join optimization is enabled. +** +** Items (1), (6), and (7) are checked by the caller. ** ** For example, given: ** @@ -168369,6 +168384,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( pOrderBy && pOrderBy->nExpr>=BMS ){ pOrderBy = 0; wctrlFlags &= ~WHERE_WANT_DISTINCT; + wctrlFlags |= WHERE_KEEP_ALL_JOINS; /* Disable omit-noop-join opt */ } /* The number of tables in the FROM clause is limited by the number of @@ -168669,10 +168685,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** in-line sqlite3WhereCodeOneLoopStart() for performance reasons. */ notReady = ~(Bitmask)0; - if( pWInfo->nLevel>=2 - && pResultSet!=0 /* these two combine to guarantee */ - && 0==(wctrlFlags & WHERE_AGG_DISTINCT) /* condition (1) above */ - && OptimizationEnabled(db, SQLITE_OmitNoopJoin) + if( pWInfo->nLevel>=2 /* Must be a join, or this opt8n is pointless */ + && pResultSet!=0 /* Condition (1) */ + && 0==(wctrlFlags & (WHERE_AGG_DISTINCT|WHERE_KEEP_ALL_JOINS)) /* (1),(6) */ + && OptimizationEnabled(db, SQLITE_OmitNoopJoin) /* (7) */ ){ notReady = whereOmitNoopJoin(pWInfo, notReady); nTabList = pWInfo->nLevel; @@ -168992,26 +169008,6 @@ whereBeginError: } #endif -#ifdef SQLITE_DEBUG -/* -** Return true if cursor iCur is opened by instruction k of the -** bytecode. Used inside of assert() only. -*/ -static int cursorIsOpen(Vdbe *v, int iCur, int k){ - while( k>=0 ){ - VdbeOp *pOp = sqlite3VdbeGetOp(v,k--); - if( pOp->p1!=iCur ) continue; - if( pOp->opcode==OP_Close ) return 0; - if( pOp->opcode==OP_OpenRead ) return 1; - if( pOp->opcode==OP_OpenWrite ) return 1; - if( pOp->opcode==OP_OpenDup ) return 1; - if( pOp->opcode==OP_OpenAutoindex ) return 1; - if( pOp->opcode==OP_OpenEphemeral ) return 1; - } - return 0; -} -#endif /* SQLITE_DEBUG */ - /* ** Generate the end of the WHERE loop. See comments on ** sqlite3WhereBegin() for additional information. @@ -169311,16 +169307,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** reference. Verify that this is harmless - that the ** table being referenced really is open. */ -#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - || pOp->opcode==OP_Offset - ); -#else - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - ); -#endif + if( pLoop->wsFlags & WHERE_IDX_ONLY ){ + sqlite3ErrorMsg(pParse, "internal query planner error"); + pParse->rc = SQLITE_INTERNAL; + } } }else if( pOp->opcode==OP_Rowid ){ pOp->p1 = pLevel->iIdxCur; @@ -172591,9 +172581,9 @@ static void updateDeleteLimitError( break; } } - if( (p->selFlags & SF_MultiValue)==0 && - (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 && - cnt>mxSelect + if( (p->selFlags & (SF_MultiValue|SF_Values))==0 + && (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 + && cnt>mxSelect ){ sqlite3ErrorMsg(pParse, "too many terms in compound SELECT"); } @@ -237004,7 +236994,11 @@ static int sqlite3Fts5ExprNew( } sqlite3_free(sParse.apPhrase); - *pzErr = sParse.zErr; + if( 0==*pzErr ){ + *pzErr = sParse.zErr; + }else{ + sqlite3_free(sParse.zErr); + } return sParse.rc; } @@ -239132,6 +239126,7 @@ static Fts5ExprNode *sqlite3Fts5ParseImplicitAnd( assert( pRight->eType==FTS5_STRING || pRight->eType==FTS5_TERM || pRight->eType==FTS5_EOF + || (pRight->eType==FTS5_AND && pParse->bPhraseToAnd) ); if( pLeft->eType==FTS5_AND ){ @@ -251299,6 +251294,7 @@ static int fts5UpdateMethod( rc = SQLITE_ERROR; }else{ rc = fts5SpecialDelete(pTab, apVal); + bUpdateOrDelete = 1; } }else{ rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); @@ -252473,14 +252469,16 @@ static int sqlite3Fts5GetTokenizer( if( pMod==0 ){ assert( nArg>0 ); rc = SQLITE_ERROR; - *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); + if( pzErr ) *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); }else{ rc = pMod->x.xCreate( pMod->pUserData, (azArg?&azArg[1]:0), (nArg?nArg-1:0), &pConfig->pTok ); pConfig->pTokApi = &pMod->x; if( rc!=SQLITE_OK ){ - if( pzErr ) *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + if( pzErr && rc!=SQLITE_NOMEM ){ + *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + } }else{ pConfig->ePattern = sqlite3Fts5TokenizerPattern( pMod->x.xCreate, pConfig->pTok @@ -252539,7 +252537,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33", -1, SQLITE_TRANSIENT); } /* @@ -252574,17 +252572,23 @@ static int fts5IntegrityMethod( assert( pzErr!=0 && *pzErr==0 ); UNUSED_PARAM(isQuick); + assert( pTab->p.pConfig->pzErrmsg==0 ); + pTab->p.pConfig->pzErrmsg = pzErr; rc = sqlite3Fts5StorageIntegrity(pTab->pStorage, 0); - if( (rc&0xff)==SQLITE_CORRUPT ){ - *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", - zSchema, zTabname); - rc = (*pzErr) ? SQLITE_OK : SQLITE_NOMEM; - }else if( rc!=SQLITE_OK ){ - *pzErr = sqlite3_mprintf("unable to validate the inverted index for" - " FTS5 table %s.%s: %s", - zSchema, zTabname, sqlite3_errstr(rc)); + if( *pzErr==0 && rc!=SQLITE_OK ){ + if( (rc&0xff)==SQLITE_CORRUPT ){ + *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", + zSchema, zTabname); + rc = (*pzErr) ? SQLITE_OK : SQLITE_NOMEM; + }else{ + *pzErr = sqlite3_mprintf("unable to validate the inverted index for" + " FTS5 table %s.%s: %s", + zSchema, zTabname, sqlite3_errstr(rc)); + } } + sqlite3Fts5IndexCloseReader(pTab->p.pIndex); + pTab->p.pConfig->pzErrmsg = 0; return rc; } @@ -254018,7 +254022,7 @@ static int fts5AsciiCreate( int i; memset(p, 0, sizeof(AsciiTokenizer)); memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar)); - for(i=0; rc==SQLITE_OK && ibFold = 1; pNew->iFoldParam = 0; - for(i=0; rc==SQLITE_OK && iiFoldParam!=0 && pNew->bFold==0 ){ rc = SQLITE_ERROR; diff --git a/contrib/sqlite3/sqlite3.h b/contrib/sqlite3/sqlite3.h index 57df8dcf2027..f64ca0172782 100644 --- a/contrib/sqlite3/sqlite3.h +++ b/contrib/sqlite3/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.46.0" -#define SQLITE_VERSION_NUMBER 3046000 -#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers diff --git a/contrib/sqlite3/sqlite3rc.h b/contrib/sqlite3/sqlite3rc.h index eb16b8fffb92..07facc833868 100644 --- a/contrib/sqlite3/sqlite3rc.h +++ b/contrib/sqlite3/sqlite3rc.h @@ -1,3 +1,3 @@ #ifndef SQLITE_RESOURCE_VERSION -#define SQLITE_RESOURCE_VERSION 3,46,0 +#define SQLITE_RESOURCE_VERSION 3,46,1 #endif diff --git a/contrib/sqlite3/tea/configure b/contrib/sqlite3/tea/configure index 011ef2101151..2c5190d630e3 100755 --- a/contrib/sqlite3/tea/configure +++ b/contrib/sqlite3/tea/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sqlite 3.46.0. +# Generated by GNU Autoconf 2.71 for sqlite 3.46.1. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -608,8 +608,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.46.0' -PACKAGE_STRING='sqlite 3.46.0' +PACKAGE_VERSION='3.46.1' +PACKAGE_STRING='sqlite 3.46.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1331,7 +1331,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.46.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.46.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1393,7 +1393,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.46.0:";; + short | recursive ) echo "Configuration of sqlite 3.46.1:";; esac cat <<\_ACEOF @@ -1496,7 +1496,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.46.0 +sqlite configure 3.46.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1795,7 +1795,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.46.0, which was +It was created by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -9560,7 +9560,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.46.0, which was +This file was extended by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -9615,7 +9615,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sqlite config.status 3.46.0 +sqlite config.status 3.46.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/contrib/sqlite3/tea/configure.ac b/contrib/sqlite3/tea/configure.ac index f188f22039ba..ea7eeda70fff 100644 --- a/contrib/sqlite3/tea/configure.ac +++ b/contrib/sqlite3/tea/configure.ac @@ -19,7 +19,7 @@ dnl to configure the system for the local environment. # so that we create the export library with the dll. #----------------------------------------------------------------------- -AC_INIT([sqlite],[3.46.0]) +AC_INIT([sqlite],[3.46.1]) #-------------------------------------------------------------------- # Call TEA_INIT as the first TEA_ macro to set up initial vars. From nobody Tue Sep 3 00:03:12 2024 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 4WyQnF1zmhz5VHrh; Tue, 03 Sep 2024 00:03: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WyQnF1MTcz4hJw; Tue, 3 Sep 2024 00:03:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725321793; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IvB4r5etY06hAt1qrb1eopWBmKOsB2leLoGPjEHqBE=; b=OEAh1VzQW+QArD7tZBMAsRh43VD685TlSNfxNTfmB5UlCVmRjTfRJURNmDh3Wi0t3OjXIy B8bMahInE6A3AjwqM9LOS+rkGs5XyZd7X5c8LlCTTTEbbZHrmifxy0iwWU/TFaEzR+sf6w JRTiKKzy8vu0IlGyD+xAuzoulyalTbhEUAwbSPKvNm7sbtIFAanvzqlqLMh+0iaMNiffQX EEY1feV3Dp6BMahPc2spdgwP9K7QHzwR9LX/X1ivlG+1OSPAKCI512QETnxKP994H6klxY YGZEsuak/8dScx/l2rUf/uE9SbgZY36Z6dsshIqVhOeQVqxMlribLtrhjRH5oA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725321793; a=rsa-sha256; cv=none; b=hS/UeOwom6///8uYDpjTIdhUMq4c1NfXiuWmibEkbsaRN+9n1UFgTLD/Oma6go63j7isUa kZUWnBkALCfvJIhgv/cE3CEk6CW28X4DB8TVbeXeg4XS8h55OQ3sOv1ryHP2giZjfsNgUE DlAHfXKhnkpikAuOEnV/+d62UXMrUflXkW/YVHpewQU8ku3LTtUejesUaWHJBG98KNZuox zdW4B3BgB7sbxMcVe4Gj3Ojk11IhyNMg1wsim9DbIZo0eNuMPIVg76BYd/Rmc7YbLA3QEp OE3CHrwrIFcepH9txtETw2lKi/Ct3iLnGsEwUm0WJJC2sSTAQvw6WLerIFTWzg== 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=1725321793; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IvB4r5etY06hAt1qrb1eopWBmKOsB2leLoGPjEHqBE=; b=d69Ss/okoiaZ6ffVtT/bSxdnAmSMykS9q33H4hZ/XSQyTc3IVIT3Pq2gv63pl0DQEx1Qsj ZcnjzyUpDamnslmXFktG7Vraen4qrKzuXX2eoTUx79itLvj940Ody51TAkre6/gCTTmSf8 qZ53cu8nBuhD0KPD3xCyD9i4MZZmIWvDoCVf7b94fdnaUZezsFlHUahO+7eFG29qfcWA3O E/3ezDdV5NuPb3zYk/7m7eOr9jQ9b3P4+9aUPBrS33GfqkSw83P1/+utLzdbM1a4JCGBoy yeSMRgvEXr9gM2TdGLXU33v/q1mdO55KmggtzOesVLIK+fwprpUzJdOW0VgiCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WyQnF0sd2zHH3; Tue, 3 Sep 2024 00:03:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48303DiK056994; Tue, 3 Sep 2024 00:03:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48303CY5056991; Tue, 3 Sep 2024 00:03:12 GMT (envelope-from git) Date: Tue, 3 Sep 2024 00:03:12 GMT Message-Id: <202409030003.48303CY5056991@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: bee9d305ee57 - stable/13 - sqlite3: Vendor import of sqlite3 3.46.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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bee9d305ee57fb468237740b31ec443db255e5ce Auto-Submitted: auto-generated The branch stable/13 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=bee9d305ee57fb468237740b31ec443db255e5ce commit bee9d305ee57fb468237740b31ec443db255e5ce Author: Cy Schubert AuthorDate: 2024-08-26 20:00:23 +0000 Commit: Cy Schubert CommitDate: 2024-09-03 00:03:05 +0000 sqlite3: Vendor import of sqlite3 3.46.1 Release notes at https://www.sqlite.org/releaselog/3_46_1.html. Obtained from: https://www.sqlite.org/2024/sqlite-autoconf-3460100.tar.gz MFC after: 1 week Merge commit '657ea345f331704c612a35e5a74968bef9ffcfd8' into sqlite3 (cherry picked from commit de9468837c92cab304c658480bd32dbe4e022d01) --- contrib/sqlite3/configure | 20 ++--- contrib/sqlite3/configure.ac | 2 +- contrib/sqlite3/shell.c | 40 +++++----- contrib/sqlite3/sqlite3.c | 154 ++++++++++++++++++++------------------- contrib/sqlite3/sqlite3.h | 6 +- contrib/sqlite3/sqlite3rc.h | 2 +- contrib/sqlite3/tea/configure | 18 ++--- contrib/sqlite3/tea/configure.ac | 2 +- 8 files changed, 127 insertions(+), 117 deletions(-) diff --git a/contrib/sqlite3/configure b/contrib/sqlite3/configure index f2f70b5ae802..fcab0424fc5a 100755 --- a/contrib/sqlite3/configure +++ b/contrib/sqlite3/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sqlite 3.46.0. +# Generated by GNU Autoconf 2.71 for sqlite 3.46.1. # # Report bugs to . # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.46.0' -PACKAGE_STRING='sqlite 3.46.0' +PACKAGE_VERSION='3.46.1' +PACKAGE_STRING='sqlite 3.46.1' PACKAGE_BUGREPORT='http://www.sqlite.org' PACKAGE_URL='' @@ -1367,7 +1367,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.46.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.46.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1438,7 +1438,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.46.0:";; + short | recursive ) echo "Configuration of sqlite 3.46.1:";; esac cat <<\_ACEOF @@ -1563,7 +1563,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.46.0 +sqlite configure 3.46.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1833,7 +1833,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.46.0, which was +It was created by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3106,7 +3106,7 @@ fi # Define the identity of the package. PACKAGE='sqlite' - VERSION='3.46.0' + VERSION='3.46.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -15314,7 +15314,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.46.0, which was +This file was extended by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15373,7 +15373,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sqlite config.status 3.46.0 +sqlite config.status 3.46.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/contrib/sqlite3/configure.ac b/contrib/sqlite3/configure.ac index c83f381d90b1..806255961fda 100644 --- a/contrib/sqlite3/configure.ac +++ b/contrib/sqlite3/configure.ac @@ -10,7 +10,7 @@ # AC_PREREQ(2.61) -AC_INIT(sqlite, 3.46.0, http://www.sqlite.org) +AC_INIT(sqlite, 3.46.1, http://www.sqlite.org) AC_CONFIG_SRCDIR([sqlite3.c]) AC_CONFIG_AUX_DIR([.]) diff --git a/contrib/sqlite3/shell.c b/contrib/sqlite3/shell.c index 7d46e4acac57..b08671e14de3 100644 --- a/contrib/sqlite3/shell.c +++ b/contrib/sqlite3/shell.c @@ -604,11 +604,6 @@ zSkipValidUtf8(const char *z, int nAccept, long ccm); # define CIO_WIN_WC_XLATE 0 /* Not exposing translation routines at all */ #endif -#if CIO_WIN_WC_XLATE -/* Character used to represent a known-incomplete UTF-8 char group (�) */ -static WCHAR cBadGroup = 0xfffd; -#endif - #if CIO_WIN_WC_XLATE static HANDLE handleOfFile(FILE *pf){ int fileDesc = _fileno(pf); @@ -12547,7 +12542,7 @@ static int expertFilter( pCsr->pData = 0; if( rc==SQLITE_OK ){ rc = idxPrintfPrepareStmt(pExpert->db, &pCsr->pData, &pVtab->base.zErrMsg, - "SELECT * FROM main.%Q WHERE sample()", pVtab->pTab->zName + "SELECT * FROM main.%Q WHERE sqlite_expert_sample()", pVtab->pTab->zName ); } @@ -13421,7 +13416,7 @@ struct IdxRemCtx { }; /* -** Implementation of scalar function rem(). +** Implementation of scalar function sqlite_expert_rem(). */ static void idxRemFunc( sqlite3_context *pCtx, @@ -13434,7 +13429,7 @@ static void idxRemFunc( assert( argc==2 ); iSlot = sqlite3_value_int(argv[0]); - assert( iSlot<=p->nSlot ); + assert( iSlotnSlot ); pSlot = &p->aSlot[iSlot]; switch( pSlot->eType ){ @@ -13545,7 +13540,8 @@ static int idxPopulateOneStat1( const char *zName = (const char*)sqlite3_column_text(pIndexXInfo, 0); const char *zColl = (const char*)sqlite3_column_text(pIndexXInfo, 1); zCols = idxAppendText(&rc, zCols, - "%sx.%Q IS rem(%d, x.%Q) COLLATE %s", zComma, zName, nCol, zName, zColl + "%sx.%Q IS sqlite_expert_rem(%d, x.%Q) COLLATE %s", + zComma, zName, nCol, zName, zColl ); zOrder = idxAppendText(&rc, zOrder, "%s%d", zComma, ++nCol); } @@ -13678,13 +13674,13 @@ static int idxPopulateStat1(sqlite3expert *p, char **pzErr){ if( rc==SQLITE_OK ){ sqlite3 *dbrem = (p->iSample==100 ? p->db : p->dbv); - rc = sqlite3_create_function( - dbrem, "rem", 2, SQLITE_UTF8, (void*)pCtx, idxRemFunc, 0, 0 + rc = sqlite3_create_function(dbrem, "sqlite_expert_rem", + 2, SQLITE_UTF8, (void*)pCtx, idxRemFunc, 0, 0 ); } if( rc==SQLITE_OK ){ - rc = sqlite3_create_function( - p->db, "sample", 0, SQLITE_UTF8, (void*)&samplectx, idxSampleFunc, 0, 0 + rc = sqlite3_create_function(p->db, "sqlite_expert_sample", + 0, SQLITE_UTF8, (void*)&samplectx, idxSampleFunc, 0, 0 ); } @@ -13736,6 +13732,9 @@ static int idxPopulateStat1(sqlite3expert *p, char **pzErr){ rc = sqlite3_exec(p->dbm, "ANALYZE sqlite_schema", 0, 0, 0); } + sqlite3_create_function(p->db, "sqlite_expert_rem", 2, SQLITE_UTF8, 0,0,0,0); + sqlite3_create_function(p->db, "sqlite_expert_sample", 0,SQLITE_UTF8,0,0,0,0); + sqlite3_exec(p->db, "DROP TABLE IF EXISTS temp."UNIQUE_TABLE_NAME,0,0,0); return rc; } @@ -16836,8 +16835,8 @@ static int recoverError( va_start(ap, zFmt); if( zFmt ){ z = sqlite3_vmprintf(zFmt, ap); - va_end(ap); } + va_end(ap); sqlite3_free(p->zErrMsg); p->zErrMsg = z; p->errCode = errCode; @@ -27085,7 +27084,6 @@ static int do_meta_command(char *zLine, ShellState *p){ import_cleanup(&sCtx); shell_out_of_memory(); } - nByte = strlen(zSql); rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0); sqlite3_free(zSql); zSql = 0; @@ -27104,16 +27102,21 @@ static int do_meta_command(char *zLine, ShellState *p){ sqlite3_finalize(pStmt); pStmt = 0; if( nCol==0 ) return 0; /* no columns, no error */ - zSql = sqlite3_malloc64( nByte*2 + 20 + nCol*2 ); + + nByte = 64 /* space for "INSERT INTO", "VALUES(", ")\0" */ + + (zSchema ? strlen(zSchema)*2 + 2: 0) /* Quoted schema name */ + + strlen(zTable)*2 + 2 /* Quoted table name */ + + nCol*2; /* Space for ",?" for each column */ + zSql = sqlite3_malloc64( nByte ); if( zSql==0 ){ import_cleanup(&sCtx); shell_out_of_memory(); } if( zSchema ){ - sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\".\"%w\" VALUES(?", + sqlite3_snprintf(nByte, zSql, "INSERT INTO \"%w\".\"%w\" VALUES(?", zSchema, zTable); }else{ - sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\" VALUES(?", zTable); + sqlite3_snprintf(nByte, zSql, "INSERT INTO \"%w\" VALUES(?", zTable); } j = strlen30(zSql); for(i=1; i=2 ){ oputf("Insert using: %s\n", zSql); } diff --git a/contrib/sqlite3/sqlite3.c b/contrib/sqlite3/sqlite3.c index eaa24a131073..946815f13ec8 100644 --- a/contrib/sqlite3/sqlite3.c +++ b/contrib/sqlite3/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.46.0. By combining all the individual C code files into this +** version 3.46.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -18,7 +18,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** 96c92aba00c8375bc32fafcdf12429c58bd8. +** c9c2ab54ba1f5f46360f1b4f35d849cd3f08. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -459,9 +459,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.46.0" -#define SQLITE_VERSION_NUMBER 3046000 -#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -19361,7 +19361,7 @@ struct SrcList { #define WHERE_AGG_DISTINCT 0x0400 /* Query is "SELECT agg(DISTINCT ...)" */ #define WHERE_ORDERBY_LIMIT 0x0800 /* ORDERBY+LIMIT on the inner loop */ #define WHERE_RIGHT_JOIN 0x1000 /* Processing a RIGHT JOIN */ - /* 0x2000 not currently used */ +#define WHERE_KEEP_ALL_JOINS 0x2000 /* Do not do the omit-noop-join opt */ #define WHERE_USE_LIMIT 0x4000 /* Use the LIMIT in cost estimates */ /* 0x8000 not currently used */ @@ -90173,7 +90173,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff assert( iVar>0 ); if( v ){ Mem *pMem = &v->aVar[iVar-1]; - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( 0==(pMem->flags & MEM_Null) ){ sqlite3_value *pRet = sqlite3ValueNew(v->db); if( pRet ){ @@ -90193,7 +90194,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff */ SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe *v, int iVar){ assert( iVar>0 ); - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( iVar>=32 ){ v->expmask |= 0x80000000; }else{ @@ -106950,7 +106952,7 @@ static void extendFJMatch( static SQLITE_NOINLINE int isValidSchemaTableName( const char *zTab, /* Name as it appears in the SQL */ Table *pTab, /* The schema table we are trying to match */ - Schema *pSchema /* non-NULL if a database qualifier is present */ + const char *zDb /* non-NULL if a database qualifier is present */ ){ const char *zLegacy; assert( pTab!=0 ); @@ -106961,7 +106963,7 @@ static SQLITE_NOINLINE int isValidSchemaTableName( if( sqlite3StrICmp(zTab+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0 ){ return 1; } - if( pSchema==0 ) return 0; + if( zDb==0 ) return 0; if( sqlite3StrICmp(zTab+7, &LEGACY_SCHEMA_TABLE[7])==0 ) return 1; if( sqlite3StrICmp(zTab+7, &PREFERRED_SCHEMA_TABLE[7])==0 ) return 1; }else{ @@ -107144,7 +107146,7 @@ static int lookupName( } }else if( sqlite3StrICmp(zTab, pTab->zName)!=0 ){ if( pTab->tnum!=1 ) continue; - if( !isValidSchemaTableName(zTab, pTab, pSchema) ) continue; + if( !isValidSchemaTableName(zTab, pTab, zDb) ) continue; } assert( ExprUseYTab(pExpr) ); if( IN_RENAME_OBJECT && pItem->zAlias ){ @@ -108876,6 +108878,9 @@ SQLITE_PRIVATE int sqlite3ResolveExprNames( ** Resolve all names for all expression in an expression list. This is ** just like sqlite3ResolveExprNames() except that it works for an expression ** list rather than a single expression. +** +** The return value is SQLITE_OK (0) for success or SQLITE_ERROR (1) for a +** failure. */ SQLITE_PRIVATE int sqlite3ResolveExprListNames( NameContext *pNC, /* Namespace to resolve expressions in. */ @@ -108884,7 +108889,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( int i; int savedHasAgg = 0; Walker w; - if( pList==0 ) return WRC_Continue; + if( pList==0 ) return SQLITE_OK; w.pParse = pNC->pParse; w.xExprCallback = resolveExprStep; w.xSelectCallback = resolveSelectStep; @@ -108898,7 +108903,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight += pExpr->nHeight; if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){ - return WRC_Abort; + return SQLITE_ERROR; } #endif sqlite3WalkExprNN(&w, pExpr); @@ -108915,10 +108920,10 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( (NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); } - if( w.pParse->nErr>0 ) return WRC_Abort; + if( w.pParse->nErr>0 ) return SQLITE_ERROR; } pNC->ncFlags |= savedHasAgg; - return WRC_Continue; + return SQLITE_OK; } /* @@ -117457,7 +117462,7 @@ static int renameResolveTrigger(Parse *pParse){ /* ALWAYS() because if the table of the trigger does not exist, the ** error would have been hit before this point */ if( ALWAYS(pParse->pTriggerTab) ){ - rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab); + rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab)!=0; } /* Resolve symbols in WHEN clause */ @@ -124426,8 +124431,9 @@ create_view_fail: #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) /* ** The Table structure pTable is really a VIEW. Fill in the names of -** the columns of the view in the pTable structure. Return the number -** of errors. If an error is seen leave an error message in pParse->zErrMsg. +** the columns of the view in the pTable structure. Return non-zero if +** there are errors. If an error is seen an error message is left +** in pParse->zErrMsg. */ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ Table *pSelTab; /* A fake table from which we get the result set */ @@ -124550,7 +124556,7 @@ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ sqlite3DeleteColumnNames(db, pTable); } #endif /* SQLITE_OMIT_VIEW */ - return nErr; + return nErr + pParse->nErr; } SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ assert( pTable!=0 ); @@ -130848,6 +130854,8 @@ static void groupConcatValue(sqlite3_context *context){ sqlite3_result_error_toobig(context); }else if( pAccum->accError==SQLITE_NOMEM ){ sqlite3_result_error_nomem(context); + }else if( pGCC->nAccum>0 && pAccum->nChar==0 ){ + sqlite3_result_text(context, "", 1, SQLITE_STATIC); }else{ const char *zText = sqlite3_str_value(pAccum); sqlite3_result_text(context, zText, pAccum->nChar, SQLITE_TRANSIENT); @@ -133602,6 +133610,7 @@ SQLITE_PRIVATE Select *sqlite3MultiValues(Parse *pParse, Select *pLeft, ExprList pRet->pSrc->nSrc = 1; pRet->pPrior = pLeft->pPrior; pRet->op = pLeft->op; + if( pRet->pPrior ) pRet->selFlags |= SF_Values; pLeft->pPrior = 0; pLeft->op = TK_SELECT; assert( pLeft->pNext==0 ); @@ -166067,7 +166076,9 @@ static int whereLoopAddBtree( " according to whereIsCoveringIndex()\n", pProbe->zName)); } } - }else if( m==0 ){ + }else if( m==0 + && (HasRowid(pTab) || pWInfo->pSelect!=0 || sqlite3FaultSim(700)) + ){ WHERETRACE(0x200, ("-> %s a covering index according to bitmasks\n", pProbe->zName, m==0 ? "is" : "is not")); @@ -167956,6 +167967,10 @@ static void showAllWhereLoops(WhereInfo *pWInfo, WhereClause *pWC){ ** the right-most table of a subquery that was flattened into the ** main query and that subquery was the right-hand operand of an ** inner join that held an ON or USING clause. +** 6) The ORDER BY clause has 63 or fewer terms +** 7) The omit-noop-join optimization is enabled. +** +** Items (1), (6), and (7) are checked by the caller. ** ** For example, given: ** @@ -168369,6 +168384,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( pOrderBy && pOrderBy->nExpr>=BMS ){ pOrderBy = 0; wctrlFlags &= ~WHERE_WANT_DISTINCT; + wctrlFlags |= WHERE_KEEP_ALL_JOINS; /* Disable omit-noop-join opt */ } /* The number of tables in the FROM clause is limited by the number of @@ -168669,10 +168685,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** in-line sqlite3WhereCodeOneLoopStart() for performance reasons. */ notReady = ~(Bitmask)0; - if( pWInfo->nLevel>=2 - && pResultSet!=0 /* these two combine to guarantee */ - && 0==(wctrlFlags & WHERE_AGG_DISTINCT) /* condition (1) above */ - && OptimizationEnabled(db, SQLITE_OmitNoopJoin) + if( pWInfo->nLevel>=2 /* Must be a join, or this opt8n is pointless */ + && pResultSet!=0 /* Condition (1) */ + && 0==(wctrlFlags & (WHERE_AGG_DISTINCT|WHERE_KEEP_ALL_JOINS)) /* (1),(6) */ + && OptimizationEnabled(db, SQLITE_OmitNoopJoin) /* (7) */ ){ notReady = whereOmitNoopJoin(pWInfo, notReady); nTabList = pWInfo->nLevel; @@ -168992,26 +169008,6 @@ whereBeginError: } #endif -#ifdef SQLITE_DEBUG -/* -** Return true if cursor iCur is opened by instruction k of the -** bytecode. Used inside of assert() only. -*/ -static int cursorIsOpen(Vdbe *v, int iCur, int k){ - while( k>=0 ){ - VdbeOp *pOp = sqlite3VdbeGetOp(v,k--); - if( pOp->p1!=iCur ) continue; - if( pOp->opcode==OP_Close ) return 0; - if( pOp->opcode==OP_OpenRead ) return 1; - if( pOp->opcode==OP_OpenWrite ) return 1; - if( pOp->opcode==OP_OpenDup ) return 1; - if( pOp->opcode==OP_OpenAutoindex ) return 1; - if( pOp->opcode==OP_OpenEphemeral ) return 1; - } - return 0; -} -#endif /* SQLITE_DEBUG */ - /* ** Generate the end of the WHERE loop. See comments on ** sqlite3WhereBegin() for additional information. @@ -169311,16 +169307,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** reference. Verify that this is harmless - that the ** table being referenced really is open. */ -#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - || pOp->opcode==OP_Offset - ); -#else - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - ); -#endif + if( pLoop->wsFlags & WHERE_IDX_ONLY ){ + sqlite3ErrorMsg(pParse, "internal query planner error"); + pParse->rc = SQLITE_INTERNAL; + } } }else if( pOp->opcode==OP_Rowid ){ pOp->p1 = pLevel->iIdxCur; @@ -172591,9 +172581,9 @@ static void updateDeleteLimitError( break; } } - if( (p->selFlags & SF_MultiValue)==0 && - (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 && - cnt>mxSelect + if( (p->selFlags & (SF_MultiValue|SF_Values))==0 + && (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 + && cnt>mxSelect ){ sqlite3ErrorMsg(pParse, "too many terms in compound SELECT"); } @@ -237004,7 +236994,11 @@ static int sqlite3Fts5ExprNew( } sqlite3_free(sParse.apPhrase); - *pzErr = sParse.zErr; + if( 0==*pzErr ){ + *pzErr = sParse.zErr; + }else{ + sqlite3_free(sParse.zErr); + } return sParse.rc; } @@ -239132,6 +239126,7 @@ static Fts5ExprNode *sqlite3Fts5ParseImplicitAnd( assert( pRight->eType==FTS5_STRING || pRight->eType==FTS5_TERM || pRight->eType==FTS5_EOF + || (pRight->eType==FTS5_AND && pParse->bPhraseToAnd) ); if( pLeft->eType==FTS5_AND ){ @@ -251299,6 +251294,7 @@ static int fts5UpdateMethod( rc = SQLITE_ERROR; }else{ rc = fts5SpecialDelete(pTab, apVal); + bUpdateOrDelete = 1; } }else{ rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); @@ -252473,14 +252469,16 @@ static int sqlite3Fts5GetTokenizer( if( pMod==0 ){ assert( nArg>0 ); rc = SQLITE_ERROR; - *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); + if( pzErr ) *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); }else{ rc = pMod->x.xCreate( pMod->pUserData, (azArg?&azArg[1]:0), (nArg?nArg-1:0), &pConfig->pTok ); pConfig->pTokApi = &pMod->x; if( rc!=SQLITE_OK ){ - if( pzErr ) *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + if( pzErr && rc!=SQLITE_NOMEM ){ + *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + } }else{ pConfig->ePattern = sqlite3Fts5TokenizerPattern( pMod->x.xCreate, pConfig->pTok @@ -252539,7 +252537,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33", -1, SQLITE_TRANSIENT); } /* @@ -252574,17 +252572,23 @@ static int fts5IntegrityMethod( assert( pzErr!=0 && *pzErr==0 ); UNUSED_PARAM(isQuick); + assert( pTab->p.pConfig->pzErrmsg==0 ); + pTab->p.pConfig->pzErrmsg = pzErr; rc = sqlite3Fts5StorageIntegrity(pTab->pStorage, 0); - if( (rc&0xff)==SQLITE_CORRUPT ){ - *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", - zSchema, zTabname); - rc = (*pzErr) ? SQLITE_OK : SQLITE_NOMEM; - }else if( rc!=SQLITE_OK ){ - *pzErr = sqlite3_mprintf("unable to validate the inverted index for" - " FTS5 table %s.%s: %s", - zSchema, zTabname, sqlite3_errstr(rc)); + if( *pzErr==0 && rc!=SQLITE_OK ){ + if( (rc&0xff)==SQLITE_CORRUPT ){ + *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", + zSchema, zTabname); + rc = (*pzErr) ? SQLITE_OK : SQLITE_NOMEM; + }else{ + *pzErr = sqlite3_mprintf("unable to validate the inverted index for" + " FTS5 table %s.%s: %s", + zSchema, zTabname, sqlite3_errstr(rc)); + } } + sqlite3Fts5IndexCloseReader(pTab->p.pIndex); + pTab->p.pConfig->pzErrmsg = 0; return rc; } @@ -254018,7 +254022,7 @@ static int fts5AsciiCreate( int i; memset(p, 0, sizeof(AsciiTokenizer)); memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar)); - for(i=0; rc==SQLITE_OK && ibFold = 1; pNew->iFoldParam = 0; - for(i=0; rc==SQLITE_OK && iiFoldParam!=0 && pNew->bFold==0 ){ rc = SQLITE_ERROR; diff --git a/contrib/sqlite3/sqlite3.h b/contrib/sqlite3/sqlite3.h index 57df8dcf2027..f64ca0172782 100644 --- a/contrib/sqlite3/sqlite3.h +++ b/contrib/sqlite3/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.46.0" -#define SQLITE_VERSION_NUMBER 3046000 -#define SQLITE_SOURCE_ID "2024-05-23 13:25:27 96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers diff --git a/contrib/sqlite3/sqlite3rc.h b/contrib/sqlite3/sqlite3rc.h index eb16b8fffb92..07facc833868 100644 --- a/contrib/sqlite3/sqlite3rc.h +++ b/contrib/sqlite3/sqlite3rc.h @@ -1,3 +1,3 @@ #ifndef SQLITE_RESOURCE_VERSION -#define SQLITE_RESOURCE_VERSION 3,46,0 +#define SQLITE_RESOURCE_VERSION 3,46,1 #endif diff --git a/contrib/sqlite3/tea/configure b/contrib/sqlite3/tea/configure index 011ef2101151..2c5190d630e3 100755 --- a/contrib/sqlite3/tea/configure +++ b/contrib/sqlite3/tea/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sqlite 3.46.0. +# Generated by GNU Autoconf 2.71 for sqlite 3.46.1. # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @@ -608,8 +608,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.46.0' -PACKAGE_STRING='sqlite 3.46.0' +PACKAGE_VERSION='3.46.1' +PACKAGE_STRING='sqlite 3.46.1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1331,7 +1331,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.46.0 to adapt to many kinds of systems. +\`configure' configures sqlite 3.46.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1393,7 +1393,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.46.0:";; + short | recursive ) echo "Configuration of sqlite 3.46.1:";; esac cat <<\_ACEOF @@ -1496,7 +1496,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.46.0 +sqlite configure 3.46.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1795,7 +1795,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.46.0, which was +It was created by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -9560,7 +9560,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.46.0, which was +This file was extended by sqlite $as_me 3.46.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -9615,7 +9615,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sqlite config.status 3.46.0 +sqlite config.status 3.46.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/contrib/sqlite3/tea/configure.ac b/contrib/sqlite3/tea/configure.ac index f188f22039ba..ea7eeda70fff 100644 --- a/contrib/sqlite3/tea/configure.ac +++ b/contrib/sqlite3/tea/configure.ac @@ -19,7 +19,7 @@ dnl to configure the system for the local environment. # so that we create the export library with the dll. #----------------------------------------------------------------------- -AC_INIT([sqlite],[3.46.0]) +AC_INIT([sqlite],[3.46.1]) #-------------------------------------------------------------------- # Call TEA_INIT as the first TEA_ macro to set up initial vars. From nobody Tue Sep 3 07:08:16 2024 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 4WycCh4NzBz5W57x; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCh3tKTz4TPj; Tue, 3 Sep 2024 07:08:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y5N+ls3lw6OpjtZ8nRtmADSLsgBjBo6/cI+loYyYN58=; b=nVSNfm1MnE2YTlurSzbFaT5h+9Zo7xnsImXGvF4soJVY6UTSmtX4gvwISRySRr+gg6cti0 k2dAqo/2YvfIJycJDD/dk5cLwig5bxwCekzgLFuR9h8jdHk5GJsQTrkPP0YHIXR8dKrICn VPw6Id0teufl/NbWklbgZwj0fPpITFXMcPnDPMbOTttVy5i7gPECDzb2Sk5SymvjSWMgY5 4DlVfGpVzH31zIPeUGrfoD3mspyvtjJ8/rez1anE8BC0IPmjX5s3b5ZuHqOmsZa4dkIHsV BtnUSfJO+pu9ic2dHpCbRNibmg0w8quZWAHn6pTw+8wI1KHHlfNmmp8Ud4s7ng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347296; a=rsa-sha256; cv=none; b=Mq9HOdfU/mCdStr+uNWsf77MiAHNYvB/ZrU1XcxX+JVeZ9ZRiXEu6CkC0+bAPBLhugvHtp yv8Ki6q7O4ZT79DDfm1M0SLWbYU05P0VbM/+g6iAhP7BAJfBtlru9BHNYA3e6EKR4Vut/M Po9p0CnRb9ZffD7FC3+C1H2HfFcRHFy+k/M9EgvjiK0JSpOJtzIGr6fU3oHG+Z6gZ6UcUx Rlwt0vQWzBzXydlJ5S7wg3mk4QAnNJ8CLN5G5Ixkh8dvPEULx+0bVvAXINYGVUlHaYvCrM VHyu7h9uRfddu9kKKWTR27UdNMNSOwcWSLSJpCRtWooP3/uGF/GuodtY8cSRqg== 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=1725347296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y5N+ls3lw6OpjtZ8nRtmADSLsgBjBo6/cI+loYyYN58=; b=oOECLwEF8ym8gzYBUduqepUnM8tZNtBDuDs/5+SLCCcNd0rC4hY+03rRA/ARQNRFkoI+2A 1ruBeruGXWODs7xZDiS9zCF+v/Papvt3k1ZUqLr1jxzHMe+k45D3o/N5w7VcI24H7Xt0rB fLugG8imW2AS841VCsKvyU/n1DEmwY/fbq8g0tpKgofAO4GNvfDEfMPIEhhpcL3gu+nNm8 PxYm6uuRVLArWCr4vCAPHzkP1+ClS8D+C7Ov5mdRo2CdaVJ7jxXZ8icTkP1GlV1lbUdY27 9guxn866LS3w4QdSwmk4Ig9u52mMy0ftglzPt9WYLxHgHn8YjDJyLjsf9fFYgg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCh3VD7zWNC; Tue, 3 Sep 2024 07:08:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378GA7068977; Tue, 3 Sep 2024 07:08:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378GoU068974; Tue, 3 Sep 2024 07:08:16 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:16 GMT Message-Id: <202409030708.48378GoU068974@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 28094582f0a5 - stable/14 - nuageinit: check for both user_data and user-data 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28094582f0a5b1e6cbded199a96dd4ad2773f989 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=28094582f0a5b1e6cbded199a96dd4ad2773f989 commit 28094582f0a5b1e6cbded199a96dd4ad2773f989 Author: Baptiste Daroussin AuthorDate: 2024-06-27 08:30:07 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: check for both user_data and user-data openstack, ec2 and other implementation of cloudinit disagrees on the name of the file "user-data" or "user_data", test both and use the first found PR: 279876 (cherry picked from commit cde6642431bb0ca21aeebc7c521e99c681d31ffb) --- libexec/nuageinit/nuageinit | 17 ++++++++++---- libexec/nuageinit/tests/nuageinit.sh | 44 ++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/libexec/nuageinit/nuageinit b/libexec/nuageinit/nuageinit index df637bbc5064..f268f9b0f52c 100755 --- a/libexec/nuageinit/nuageinit +++ b/libexec/nuageinit/nuageinit @@ -190,18 +190,27 @@ else end -- deal with user-data -local f = io.open(path..'/user-data', "r") +local ud = nil +local f = nil +userdatas = { "user-data", "user_data" } +for _,v in pairs(userdatas) do + f = io.open(path..'/' .. v, "r") + if f then + ud = v + break + end +end if not f then os.exit(0) end local line = f:read('*l') f:close() if line == "#cloud-config" then - f = io.open(path.."/user-data") + f = io.open(path.."/" .. ud) local obj = yaml.eval(f:read("*a")) f:close() if not obj then - nuage.err("nuageinit: error parsing cloud-config file: user-data") + nuage.err("nuageinit: error parsing cloud-config file: " .. ud) end if obj.groups then for n,g in pairs(obj.groups) do @@ -298,7 +307,7 @@ if line == "#cloud-config" then routing:close() end else - local res,err = os.execute(path..'/user-data') + local res,err = os.execute(path..'/' .. ud) if not res then nuage.err("nuageinit: error executing user-data script: ".. err) end diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh index 42c95e1b2abd..54c88ceb539a 100644 --- a/libexec/nuageinit/tests/nuageinit.sh +++ b/libexec/nuageinit/tests/nuageinit.sh @@ -1,11 +1,13 @@ atf_test_case args atf_test_case nocloud atf_test_case nocloud_userdata_script +atf_test_case nocloud_user_data_script atf_test_case nocloud_userdata_cloudconfig atf_test_case nocloud_userdata_cloudconfig_users atf_test_case nocloud_network atf_test_case config2 atf_test_case config2_pubkeys +atf_test_case config2_pubkeys_user_data atf_test_case config2_network atf_test_case config2_network_static_v4 @@ -45,6 +47,16 @@ nocloud_userdata_script_body() atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud } +nocloud_user_data_script_body() +{ + here=$(pwd) + mkdir -p media/nuageinit + printf "instance-id: iid-local01\n" > ${here}/media/nuageinit/meta-data + printf "#!/bin/sh\necho "yeah"\n" > ${here}/media/nuageinit/user_data + chmod 755 ${here}/media/nuageinit/user_data + atf_check -s exit:0 -o inline:"yeah\n" /usr/libexec/nuageinit ${here}/media/nuageinit nocloud +} + nocloud_userdata_cloudconfig_users_body() { here=$(pwd) @@ -199,6 +211,36 @@ EOF atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys } + +config2_pubkeys_user_data_body() +{ + here=$(pwd) + export NUAGE_FAKE_ROOTDIR=$(pwd) + if [ $(id -u) -ne 0 ]; then + atf_skip "root required" + fi + mkdir -p media/nuageinit + touch media/nuageinit/meta_data.json + cat > media/nuageinit/user_data << EOF +#cloud-config + +ssh_authorized_keys: + - "ssh-rsa AAAAB3NzaC1y...== Generated by Nova" +EOF + mkdir -p etc + cat > etc/master.passwd < etc/group < To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: c7887c8e2e1c - stable/14 - nuageinit: Accept plain text passwords 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c7887c8e2e1c3e8234db21b4a63770abbaf73b8b Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=c7887c8e2e1c3e8234db21b4a63770abbaf73b8b commit c7887c8e2e1c3e8234db21b4a63770abbaf73b8b Author: Jose Luis Duran AuthorDate: 2024-07-23 03:49:36 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: Accept plain text passwords Per pw(8), when -H is set, the password should be supplied already encrypted in a form suitable for writing directly to the password database (passwd in cloud-init tems); -h provides a special interface by which interactive scripts can set an account password using pw(8) in plain text (plain_text_passwd in cloud-init terms). The default user (freebsd) is defined with a plain_text_passwd (freebsd), not with an encrypted one. (cherry picked from commit 7b73ecfe648487c7706ac2b854dcf1435e60e4ca) --- libexec/nuageinit/nuage.lua | 2 +- libexec/nuageinit/tests/nuageinit.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index ca70c778791b..81fb40c0d8eb 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -112,7 +112,7 @@ local function adduser(pwd) postcmd = " -H 0 " elseif pwd.plain_text_passwd then precmd = "echo "..pwd.plain_text_passwd .. "| " - postcmd = " -H 0 " + postcmd = " -h 0 " end cmd = precmd .. "pw " if root then diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh index 54c88ceb539a..c6a86bc15486 100644 --- a/libexec/nuageinit/tests/nuageinit.sh +++ b/libexec/nuageinit/tests/nuageinit.sh @@ -104,6 +104,7 @@ sys:*:1:0::0:0:Sys:/home/sys:/bin/csh freebsd:freebsd:1001:1003::0:0:FreeBSD User:/home/freebsd:/bin/sh foobar:H/1LT4f9/N3wpgNunhsIqtMj62OKiS3nyNwuizouQc3u7MbYCarYeAHWYPYb2FT.lbioDm2RrkJPb9BZMN1O/:1002:1004::0:0:Foo B. Bar:/home/foobar:/bin/sh EOF + sed -i "" "s/freebsd:.*:1001/freebsd:freebsd:1001/" ${here}/etc/master.passwd atf_check -o file:expectedpasswd cat ${here}/etc/master.passwd atf_check -o file:expectedgroup cat ${here}/etc/group } From nobody Tue Sep 3 07:08:18 2024 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 4WycCl2V9Jz5W580; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCk5wHYz4TGy; Tue, 3 Sep 2024 07:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7LcpfZ5+kHXn9QKNjMcXzhAocSRSdMyJxhxRuM7mV50=; b=DWqektQuPtZOJ87YvkLgFUY2p7T64D8+mWHSYgVa7QmI/YFxftDvwDEe+2rGnwjcxOWyVR zg427/UlygjDXHrlNhl64zFIJ73644/cCn9ZkqtasUxHT4CuQkTZuwYPJ+4JMGf24N1Txj 3YNVMAgtt7dj6rWdg0RprhotWQLdDynKcqovd2OxMwHB7vnMUQg1ha2NjxwjzuaTPsi031 loUyDiijgqkQw/G3CqPdFpI1iCvQU+qWPkxvApsjpstPATNfQgEjnVuHp5XhrtI324W8A9 i6RBcMfzlN7vi4rt3H2zg5yCTYay228JAwAyBdOh4KQWEsRHE8aSetyJqE+ztg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347298; a=rsa-sha256; cv=none; b=ITRIUR4yGGnU3HITt1YyTwO39fv3dfsW1O351Q7aZIWg7fpvYKTef3NrPiRmmNvXYZnnP1 pQyILIVNAjaB0oPnNMfUGMgqYE0q+d8AnFlwGstEDZF+ogMJpZALE6BYepfonXzCihg4p7 CGigmxkTeTiFauAjdkHyPZXXTMBK+/d48jPsDSzaAgj8CpnPozCU/LWMSOl47I0sTtpO4S dquThjKmU2oZhu/Iuw5W6pUAifjkB2IX9sqV4pAjfYIdw0zHpW6GkYzxs5bc7P1JrQKgGH /VnOgAuGWf6lcjnV/u4kS6EI3B8J/wb9KOQUfUv4Jpbtt3n9WKhRi00LKVJePw== 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=1725347298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7LcpfZ5+kHXn9QKNjMcXzhAocSRSdMyJxhxRuM7mV50=; b=H5d/2DG7n9GFRyXRr8KVJS/iV14jtwqz+0pgtlkbD/29YsVZG7em9Hd44COSDm0M9f6xpH ZlyxxOXXL0l62Y5OU++IJpYVOPTViLtYPZKX4EcNY5FoZJT5AFzY4j0rEMpBc/sX0Fga7d 1esfPJfsflLma+XD5ku6x69ZkcfEfkr7syJlcpiuiQzn5SINfv29lf+5uJZA5bQup9tldd mJ/GPoovZeddACH34vn30aBmOvRaE8HObNjVm5ki4RN44XF6zLVpTMahty1b/17mAWfPuN lhEk1yexHze0CB1iN6xYVpKrivD6w0vS5CTcpaeSkacrUAf6j3A8uG42IED4qQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCk59R1zWND; Tue, 3 Sep 2024 07:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378Ieu069072; Tue, 3 Sep 2024 07:08:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378I4d069069; Tue, 3 Sep 2024 07:08:18 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:18 GMT Message-Id: <202409030708.48378I4d069069@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 617179178727 - stable/14 - nuageinit: Set recommended SSH permissions 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 617179178727b61123b17e5de6e369ff5dbb8117 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=617179178727b61123b17e5de6e369ff5dbb8117 commit 617179178727b61123b17e5de6e369ff5dbb8117 Author: Jose Luis Duran AuthorDate: 2024-07-23 08:59:09 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: Set recommended SSH permissions As stated in sshd(8), the recommended permissions for ~/.ssh are read/write/execute for the user, and not accessible by others; and the recommended permissions for ~/.ssh/authorized_keys are read/write for the user, and not accessible by others. (cherry picked from commit 07d17ca189fcf3cc44b7706040b05ca8135c3b85) --- libexec/nuageinit/nuage.lua | 2 ++ libexec/nuageinit/tests/nuage.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index 81fb40c0d8eb..10451dc0bdc4 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -205,9 +205,11 @@ local function addsshkey(homedir, key) f:write(key .. "\n") f:close() if chownak then + os.execute("chmod 0600 " .. ak_path) pu.chown(ak_path, dirattrs.uid, dirattrs.gid) end if chowndotssh then + os.execute("chmod 0700 " .. dotssh_path) pu.chown(dotssh_path, dirattrs.uid, dirattrs.gid) end end diff --git a/libexec/nuageinit/tests/nuage.sh b/libexec/nuageinit/tests/nuage.sh index bbf306eae51f..531c171a3271 100644 --- a/libexec/nuageinit/tests/nuage.sh +++ b/libexec/nuageinit/tests/nuage.sh @@ -17,6 +17,8 @@ addsshkey_body() { if [ ! -f .ssh/authorized_keys ]; then atf_fail "ssh key not added" fi + atf_check -o inline:".ssh: 040700 [drwx------ ] -> 040700 [drwx------ ]\n" chmod -vv 0700 .ssh + atf_check -o inline:".ssh/authorized_keys: 0100600 [-rw------- ] -> 0100600 [-rw------- ]\n" chmod -vv 0600 .ssh/authorized_keys atf_check -o inline:"mykey\n" cat .ssh/authorized_keys atf_check /usr/libexec/flua $(atf_get_srcdir)/addsshkey.lua atf_check -o inline:"mykey\nmykey\n" cat .ssh/authorized_keys From nobody Tue Sep 3 07:08:19 2024 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 4WycCm2PW6z5MQgZ; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCl6j8Dz4THC; Tue, 3 Sep 2024 07:08:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sAvcS3LV85YA30WTuXICg0Gz4RfT1v334FOaqLZifes=; b=pl5LOAql66CLjTLraEVUu2JWVJksiP52IKHUK+c2F1/Z9jUAr1ihgzz4jDungEzFogT5MJ 45X2vtpMU6oYxqiM7RiciVeFncCuu24lRQH+dyWadlw+EJ1oCuoGVoVLvGSz88cxgYGCWK iG7Vb8fAlxMqUI3C8hP+HIRFENqx2bJXn+eDMlNNFxdjcZiKBVyTZT2rFYDXJYiWNJ95eL eqv/83T8e/cM4fo1KITYqEdMlNSUOE1KuS/l1wR17I1sMpejb5Mb9H99T11adBwJnLwYDU FtVeMiA/UI6q/Q2XFq3lnyL+m5aaDUQtG3jy2r9nPffBXP9FNM/LIpp8Na6QBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347299; a=rsa-sha256; cv=none; b=a4ZA/l75IAcbN6Ny0u2quzj9r8zdn6xGRUWJ+LbVsqFczVWPq6jKbn2KrlvhroWBAW9ikr BiW31xn2LgPXpV3yoKMCcw7BBk1PKsmSA53gPsbDnkgeX95A7tUPQ7K4UiMY9vQkyICmhO 0adt04rItvUgOfIWDk2jAAiFQjtiEqAzDWIhcwrQW7HMcEnkAuYN14N9bkvvzQEzs+ATiG mWpYx45Je/Q/mV3dBONLQ+0F0BnCtI0tQ4PV74pG0yxdZ5gIgtw9Dak2gitMyqithuYCun yNM13K6WZk+IwH4amHd9AIxwedFlCYcvntykrP1kb3sbuvBseydD0kUGBA0GWA== 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=1725347299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sAvcS3LV85YA30WTuXICg0Gz4RfT1v334FOaqLZifes=; b=heverjzD63YvEfGL4ihzkU4ew+KNDQ/p6ZRlZr+jYaNTnfxjCS0LUyMVnr2rv/lQcihCnB 1DdCN1n6YoC6JO1+FWAHNOB+n0L8rQ/5fKEyIMjVxV5badGVneGHIqFFKbWA4IqWppkl3H l95/LAdTiQg/SPziPSQ1oq5aaKnfzXnTkMJ/0wN3LYxKcGqbARYVik9MBP5Pk4xLP+2L7i oQubjefaqXEh000flbShMnQVG8dg1zHwpqmcUBarz3hH4KCIzmTVw1ONxGB1gi1HIp857P 5y615BAkNuWB/nQ78HlkGIDjmCfn4KCm4ck8IbiL0LVYKzI7iBnnvnct4x/Z3Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCl6K7BzWl8; Tue, 3 Sep 2024 07:08:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378J5r069121; Tue, 3 Sep 2024 07:08:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378Jtu069118; Tue, 3 Sep 2024 07:08:19 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:19 GMT Message-Id: <202409030708.48378Jtu069118@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 3dbc333a9ef4 - stable/14 - nuageinit: Fix the homedir variable name 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3dbc333a9ef40c71f56507c672e919547eaea248 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=3dbc333a9ef40c71f56507c672e919547eaea248 commit 3dbc333a9ef40c71f56507c672e919547eaea248 Author: Jose Luis Duran AuthorDate: 2024-07-23 19:54:54 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: Fix the homedir variable name cloud-init uses homedir, not home. (cherry picked from commit 7aecd689e362330a035a199afbe5707a8c4edc9c) --- libexec/nuageinit/nuage.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index 10451dc0bdc4..cca1fe9b4678 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -86,8 +86,8 @@ local function adduser(pwd) if not pwd.gecos then pwd.gecos = pwd.name .. " User" end - if not pwd.home then - pwd.home = "/home/" .. pwd.name + if not pwd.homedir then + pwd.homedir = "/home/" .. pwd.name end local extraargs="" if pwd.groups then @@ -120,7 +120,7 @@ local function adduser(pwd) end cmd = cmd .. "useradd -n ".. pwd.name .. " -M 0755 -w none " cmd = cmd .. extraargs .. " -c '".. pwd.gecos - cmd = cmd .. "' -d '" .. pwd.home .. "' -s "..pwd.shell .. postcmd + cmd = cmd .. "' -d '" .. pwd.homedir .. "' -s "..pwd.shell .. postcmd local r = os.execute(cmd) if not r then @@ -136,7 +136,7 @@ local function adduser(pwd) cmd = cmd .. "lock " .. pwd.name os.execute(cmd) end - return pwd.home + return pwd.homedir end local function addgroup(grp) From nobody Tue Sep 3 07:08:20 2024 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 4WycCn2TDnz5MQgf; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCn0dcDz4TFn; Tue, 3 Sep 2024 07:08:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347301; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n67YOxjhNm/KVrWJUbREEgOp6R7KNBVcyb+LK39Weu4=; b=A/W0v5CFmbBhJqc5pWWW9uCgJvJljNtTaKW+Rq2SdOQXxqaTUb0fjlA4InA5Vo25yF7Ed4 U2uOddlaezLhCy4JJ4bywuEnRe63OrTGJcyldfjnIgC5vUfCVl36NbxQyL9IH+d+LY6Nar 7VsZJNrs371rudaBKyrp/Y/nsqVEOeKfjl7NugomKLdH8FsD91GSqc1zGiBX0io3HNUTaP NS5Ha6cv6xesM4T1BE6yujVxi3I34j8DQ6EkpdnciMYoVm8cNtZtzPzGlf01Ftl0MFipus ftZJ10907HXbGvK9jw2tRVk/jserh1jcRmLrObA3F8x+L5GJI6Z8QQ7Nhj0Ugg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347301; a=rsa-sha256; cv=none; b=obHRynlqNAB2XyCoM7PLHQ4QAKP31OCuVegW/rBY7IR+nvAw5ywGNnwW6fdZPC+PwOj0CZ M9K25ImBcdZuX7Uy4V1bQgv/HIir8N9Bvp8/9ObzwwQieZia9Bdaf1wa7LWF8zVplsjYJU +lmLlwesWtMR0l6BROfGOhry7Iv4Us5cEeq+rKOJHu40pPwgukcthQl7W+O5o2MzuQgThX v1uvrHoWrOdEOyXKQbVrMjI/Ux2UYQzVzejlMAP84Gf1Y7NPSu2O+FR6GYc4Y4SOV0UMbc BRwO8HTpkzba2hIWR2KMjGdY+hp4z1lWqlok0xtEnJvVeMzu058yI7zlU2iYIw== 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=1725347301; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n67YOxjhNm/KVrWJUbREEgOp6R7KNBVcyb+LK39Weu4=; b=eqteJy3N/boN8LZ/8laxjWP9CBfRJqmrYvCO62/HefsEc9C8apTromoqI2BnLojabPlpmd LODpN7nvdCblCpnbX1lipdTO9HHKKIqx130asCrDNIMzOA+AQjMzfmjjT3kXDDuF7yzjUM oVmTO7eGg79fLhNmSEeHBDUWoeb7VKUyKXdAH0MN7qDUS04oIj36fB/XGUUyGuQAh6n2wd OJjC+g4/dfVd/wgKtZkeTV4PzvMfDWZByeacpZGOig339MYHcZI+HsFSFzBNBvAJMCuzva B4B56zoyZVYIYjOhOCHPFbh0iEqnXPTRoaS8FnJFk/SiStcCibkQfEUcOYqhRw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCn0BDFzX3J; Tue, 3 Sep 2024 07:08:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378KuK069157; Tue, 3 Sep 2024 07:08:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378KAR069154; Tue, 3 Sep 2024 07:08:20 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:20 GMT Message-Id: <202409030708.48378KAR069154@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 5f7256579cd0 - stable/14 - nuageinit: Fix tests 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5f7256579cd0b663e4a7013e81067d11b632fe10 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=5f7256579cd0b663e4a7013e81067d11b632fe10 commit 5f7256579cd0b663e4a7013e81067d11b632fe10 Author: Jose Luis Duran AuthorDate: 2024-07-23 22:28:45 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: Fix tests Commit 07d17ca189fcf3cc44b7706040b05ca8135c3b85 set the recommended permissions for the SSH authorized keys file and directory. The tests, however, were failing on CI. Use stat to check for the proper permissions. Fixes: 07d17ca189f nuageinit: Set recommended SSH permissions Reported by: Jenkins (cherry picked from commit 8edd6c07c8dafcc5828bceb5fea0684c7d0d0775) --- libexec/nuageinit/tests/nuage.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/nuageinit/tests/nuage.sh b/libexec/nuageinit/tests/nuage.sh index 531c171a3271..29842bff3d6b 100644 --- a/libexec/nuageinit/tests/nuage.sh +++ b/libexec/nuageinit/tests/nuage.sh @@ -17,8 +17,8 @@ addsshkey_body() { if [ ! -f .ssh/authorized_keys ]; then atf_fail "ssh key not added" fi - atf_check -o inline:".ssh: 040700 [drwx------ ] -> 040700 [drwx------ ]\n" chmod -vv 0700 .ssh - atf_check -o inline:".ssh/authorized_keys: 0100600 [-rw------- ] -> 0100600 [-rw------- ]\n" chmod -vv 0600 .ssh/authorized_keys + atf_check -o inline:"40700\n" stat -f %p .ssh + atf_check -o inline:"100600\n" stat -f %p .ssh/authorized_keys atf_check -o inline:"mykey\n" cat .ssh/authorized_keys atf_check /usr/libexec/flua $(atf_get_srcdir)/addsshkey.lua atf_check -o inline:"mykey\nmykey\n" cat .ssh/authorized_keys From nobody Tue Sep 3 07:08:22 2024 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 4WycCp5RKbz5MQdd; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCp2GPJz4TL5; Tue, 3 Sep 2024 07:08:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7ZE2py6Bvd4fpYOW4wFAT32Cz8Kw6Ot9oUGDdh2Dpf4=; b=BNV0izJNuKSA57YCh5UI9UNtkw8zLkf8Aw+Pz6kEmq2bLpVHQ+mv8tyOdzs5C3CTpGGnr7 PhqQNUIMzXmTp2fMjAFyDVyJuxNOtY3J7FKaNjmfB7/RWfeTdyRTASG705FmSC+h33xlmc nbjqVgX0srC9yxaVs15eFeTuTvooWakiWx3+LC5iPvPbOpcssDcRYPfmTrs8QDlwpEg72k Q6tYfTJa1BnKBsSs/Lu70D73b8J473ng8oazhsbcEjgS98cIrkdEGNhA/5KzKJDigCz4Gv WidsANLLmY6/q1YWwm8UbfJV6J64LUFXfUI7DduRzkCn46Bp2wCIEC5vlp8X8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347302; a=rsa-sha256; cv=none; b=qSrEdrDed2lJdZERM6N4Sldw2fU/mnnIigRoETgMW5wRFAgbMNUMxhcL/VkzxSBiASes0g Gkn2rkJhm+ttWO/fr7M79Lp2JKxAByxH/JnjEecgrI/ql/S370If1CwDq5W2VAdOvLdRFq bHgj28Put03o0P82MWA5zeHlqfb4QhMqmyQLSwwjvQH2yPJ/Nxjc9cE9V1aviaGj/t1bIS dkxwpfrqElL675AAihSGBWW+chpNPJcQAscvDiuffRKRD0xAxf2n9H0qVHzXXOCry4Tg4h Sc4rZbUaI4gf2THA5y5EfagfPV0Prs8CZHfEyuchCHn3MCD2AcHAdzPnnfsSDQ== 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=1725347302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7ZE2py6Bvd4fpYOW4wFAT32Cz8Kw6Ot9oUGDdh2Dpf4=; b=XpzBpvrnYtTMMNNWQ3cC42Ft7Eu5j5wPhipiSP0MFwiUxbIFeT+BokbY7rnM+AC6KhWhXe Tt+87ZNh721hY3lRK6y36dOL567eUJoNCcfm5ugrw54AK16kHuIOhYCm4fX52KM8qc8hgJ 5D9eRUnZnser94Md3u0AKd/G+1qvwhUjZIQwbVIWg2+UY5h/BGzRnrBftDVmbWs7EXwCSk 4P2cpB30SZmvWVQQdHDo8nfcyJ8g42OpNAb4UxMdld6OpAwd5Gt0q06pUbHSeSXKLBeZDK Wf4Rh3vo2Z9KfnQgMmpkxfQMlXtSl7Ku5qVfLBV8ErxN84HrFrXwXETeeDNxCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCp17YHzWlx; Tue, 3 Sep 2024 07:08:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378MJo069193; Tue, 3 Sep 2024 07:08:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378M6K069190; Tue, 3 Sep 2024 07:08:22 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:22 GMT Message-Id: <202409030708.48378M6K069190@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 56c59177a1b7 - stable/14 - CODEOWNERS: Add nuageinit 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 56c59177a1b7ec842b48650f1cacad9551b44da1 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=56c59177a1b7ec842b48650f1cacad9551b44da1 commit 56c59177a1b7ec842b48650f1cacad9551b44da1 Author: Jose Luis Duran AuthorDate: 2024-07-23 18:06:37 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 CODEOWNERS: Add nuageinit (cherry picked from commit 1991946cff2a4c87c9272c2ccc1c2fb3b1cfba96) --- .github/CODEOWNERS | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bd735363716e..5d9e43f4e725 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,7 +2,7 @@ # No locks listed here are valid. The only strict review requirements # are granted by core. These are documented in head/LOCKS and enforced # by svnadmin/conf/approvers. -# +# # The source tree is a community effort. However, some folks go to the # trouble of looking after particular areas of the tree. In return for # their active caretaking of the code it is polite to coordinate changes @@ -11,21 +11,21 @@ # committers can easily find somebody who is familiar with it. The notes # should specify if there is a 3rd party source tree involved or other # things that should be kept in mind. -# +# # However, this is not a 'big stick', it is an offer to help and a source # of guidance. It does not override the communal nature of the tree. # It is not a registry of 'turf' or private property. -# +# # *** # This list is prone to becoming stale quickly. The best way to find the recent # maintainer of a sub-system is to check recent logs for that directory or # sub-system. # *** -# +# # *** # Maintainers are encouraged to visit: # https://reviews.freebsd.org/herald -# +# # and configure Phabricator notifications for parts of the tree which they # maintain. Notifications can automatically be sent when someone proposes a # revision or makes a commit to the specified subtree. @@ -56,6 +56,7 @@ /lib/libfigpar @dag-erling /lib/libpam/ @dag-erling /lib/libvmmapi @bsdjhb @grehan-freebsd +/libexec/nuageinit/ @bapt /libexec/rc/rc.d/rctl/ @trasz /sbin/mount_fusefs @asomers /secure/usr.bin/openssl/ @juikim From nobody Tue Sep 3 07:08:23 2024 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 4WycCq5JHjz5W53m; Tue, 03 Sep 2024 07:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycCq2cPBz4TCW; Tue, 3 Sep 2024 07:08:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g2DUqSlFMr/cG7YCIxvMdr0AVkgtofs3oiX+CYeeBKA=; b=Yu1CApy12zTnNMYxtgk1RaMvi5CHo7NefYL8f5W+cnHqlmSsHS+rwISsKAs4K4iKHtIAQj 1cvR/vItOkfFHhQBIwsbl/lQ+g+Uf1SRIIhW0SDXoOZFV+JxPIPJL0vH5gNzDniGUj91Tp yQrCKEudrWTgAhC+1nzdkv55cJ/NDlOZLofbw3lBE2KBEp/NIuqQ4c6gC43E2+C5yjvGYU vbNqFNM0WGrKZX+kl0BPReoIpF/C89CdusGoRkJT463GOl4tm32As5aFRj7EfEuRUV35dk wwH0Q3wGyv/SNoZFuvmJfvSPDGrYs14toprU4mriU9KEqfJC+u0YbbGoyub1Zw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347303; a=rsa-sha256; cv=none; b=mDihtEHMnv6fEI93BuaxZ1BNBLJL/WoCxGiusbB7cye8lLMtm6tMTqAEoJtKA4l5ARbJF+ 2/5wfrGIgiAPyplVpVDfOvIVPBZMtL6NPTSzjKwgWvCA8qFfs4/5MIrDktYekR1+YllOvI qms8YFbzTZjuOiHSpesGbnyot1aUXzjePPQr2P9NtCogMRKWsdEv9SeUfGKnwrWzZuZQeC +KzkFRvPLhZATs21IUWN43YdddoETXByLsO4J5Wf1LG/oiuoopDPH4R4jOfjRdvqF0NAyi 0p392GLz7JHlMRynnYLjnmWQ/aA7Q3CQpyWBGzxbGLF5iqVVsJOxgKl6c7RDOQ== 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=1725347303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g2DUqSlFMr/cG7YCIxvMdr0AVkgtofs3oiX+CYeeBKA=; b=VseuE84gBqhY8pLOZQH+NesC6Hodt6R/Jn4CF1QdtwkgM1sUdZJhMU9fWSX4QvAz0G1JAQ rM4IUF7ZnNWyMvjWKFcIXg1f7ziCbDpjdi4zvTQ9vOb+Tv9v/DUGnWyxxl2/G2CTGaYYmi GVz/4NSRRyHw9vTmY0Ww0cY3mZgE/poVeAy+05wgzLNZW0vqXm6QLJft1xf8IedZrMVVV2 ct1M/kqhhkbp2VycfYAU9h0kO7i9CgrJlmdoZkIptBhWiitV+RRd//bNLfqcdNNGUSNIux ucthIhX5FR4a5pTOHb97d1avxAeZ0/CyRHdcmt82Zqdx78Qxh2HJMTVpnPWTPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycCq2CDpzWlS; Tue, 3 Sep 2024 07:08:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48378NgQ069252; Tue, 3 Sep 2024 07:08:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48378NR8069249; Tue, 3 Sep 2024 07:08:23 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:08:23 GMT Message-Id: <202409030708.48378NR8069249@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 3a73c77f2d86 - stable/14 - nuageinit: readd ssh key parsing when key is in meta_data.json 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3a73c77f2d862f2754483ab26e252befc4f8f4e6 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=3a73c77f2d862f2754483ab26e252befc4f8f4e6 commit 3a73c77f2d862f2754483ab26e252befc4f8f4e6 Author: Baptiste Daroussin AuthorDate: 2024-08-20 10:04:01 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:24 +0000 nuageinit: readd ssh key parsing when key is in meta_data.json in openstack when no user is specified but a sshkey is provided the information is stored in meta_data.json under "public_keys" PR: 280461 Reported by: tdb (cherry picked from commit 19fb9ad746517c7af9d79a982334b2550f285355) --- libexec/nuageinit/nuageinit | 6 +++++ libexec/nuageinit/tests/nuageinit.sh | 48 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/libexec/nuageinit/nuageinit b/libexec/nuageinit/nuageinit index f268f9b0f52c..622e294bb531 100755 --- a/libexec/nuageinit/nuageinit +++ b/libexec/nuageinit/nuageinit @@ -164,6 +164,12 @@ if citype == "config-2" then nuage.err("nuageinit: error parsing config-2: meta_data.json: " .. err) end local obj = parser:get_object() + if obj.public_keys then + local homedir = nuage.adduser(default_user) + for _,v in pairs(obj.public_keys) do + nuage.addsshkey(homedir, v) + end + end nuage.sethostname(obj["hostname"]) -- network diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh index c6a86bc15486..b5078e256853 100644 --- a/libexec/nuageinit/tests/nuageinit.sh +++ b/libexec/nuageinit/tests/nuageinit.sh @@ -8,6 +8,7 @@ atf_test_case nocloud_network atf_test_case config2 atf_test_case config2_pubkeys atf_test_case config2_pubkeys_user_data +atf_test_case config2_pubkeys_meta_data atf_test_case config2_network atf_test_case config2_network_static_v4 @@ -242,6 +243,52 @@ EOF atf_check -o inline:"ssh-rsa AAAAB3NzaC1y...== Generated by Nova\n" cat home/freebsd/.ssh/authorized_keys } +config2_pubkeys_meta_data_body() +{ + here=$(pwd) + export NUAGE_FAKE_ROOTDIR=$(pwd) + if [ $(id -u) -ne 0 ]; then + atf_skip "root required" + fi + mkdir -p media/nuageinit + cat > media/nuageinit/meta_data.json < etc/master.passwd < etc/group < To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 701ac3adcb75 - stable/14 - nuageinit: improve debugging when mkdir fails 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 701ac3adcb75951737d4dc09e19021ebb3a2b1f4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=701ac3adcb75951737d4dc09e19021ebb3a2b1f4 commit 701ac3adcb75951737d4dc09e19021ebb3a2b1f4 Author: Baptiste Daroussin AuthorDate: 2024-08-20 10:05:25 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:05:25 +0000 nuageinit: improve debugging when mkdir fails (cherry picked from commit a6ecbf2b35856e312d1e826b206142b9f930a760) --- libexec/nuageinit/nuage.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index cca1fe9b4678..116ab143ccfa 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -188,10 +188,7 @@ local function addsshkey(homedir, key) chownak = true dirattrs = lfs.attributes(dotssh_path) if dirattrs == nil then - if not lfs.mkdir(dotssh_path) then - warnmsg("nuageinit: impossible to create ".. dotssh_path) - return - end + assert(lfs.mkdir(dotssh_path)) chowndotssh = true dirattrs = lfs.attributes(homedir) end From nobody Tue Sep 3 07:09:22 2024 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 4WycDy6SxPz5MQq2; Tue, 03 Sep 2024 07:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycDy4kdgz4WYM; Tue, 3 Sep 2024 07:09:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/VFPgdBUkMB3C5hG6DOn6fIbHMqC1KyFLDy4fK2+siw=; b=WmQxmMI3ANap+7p21iqSj3shZKdXFbjxRW35M/OaYAu2oN/pnuKbvtBLsodrnvvHQj68GP Nv8UoPgT0W/SKx99f8HEwc5ffl0dCXe/xMTL2ndCyBjtPY/Jy71egLsFVPUNBmw2WpEX1m X5m6A+75YGvmMGy9um4m0eJL0fpyo77MskM/mK9NCrw8SoDrXZGXdsA0XNIaB9BHR5sdMu DL1jzkPy8o0N6ZYyg163iJFs/6/Lhrh6LmvFC6v7pYpceM6OVk3VJCxOqh32BA4nfBM9q5 wjlAIsMtHkigmxr4fA6ix7gFQ691LiFYc2/lZbL//Q9nIqWH2bMzQ8Zf8xu2xA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347362; a=rsa-sha256; cv=none; b=FmD0A+4Zh7QLKWa04klFASWzpfNn6ALOxrGu3saejrFL23rcHLJYa0SK/rppZjxb8PT6o/ ss7oQsSmzQsYcNMeoK3vLdKtXo1tfZqTXWvntJksEnmVNJ/L+Fp2H8BSzlcihlzu5YoM7i Vg74eTlvvsWAe+qEdZHRgVS56FsHL6XL76Rwl/6/HhoU/bSLcaBPwdh/DbZMiAIxzDd2d2 5/6ZEZW6Ps98lO16m7zALYmXa4uq7MG4yXoPae2SSgiz3mrG3sRWnZr8xWZd8ycIn07F5l +ltLlpPeSikNH4gLqPGUhsscaipkRP06bVoW3LR/wTC1Xgc/sOB3BH6jvIyZWw== 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=1725347362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/VFPgdBUkMB3C5hG6DOn6fIbHMqC1KyFLDy4fK2+siw=; b=aneRBKjAmcsrqHdmI4BCCuRJq4pfCLq3scdytSvwundgtOvgt+xeL9AU4ErE347wVeN2Yz /N4S/SSQaOHuzuw+5xwiwwxa4wah9cQshx1yhfq8TtSggMYrBVPQLdSblU1dUF3Haiu5TN xZuv3fsMLNMA7ZDg+qSZh3LDvocndkkY1VtX5zPilphWowV5sp0UaRnw6kob5gGgQhx3xN jB6g/5srY1tcHq1Y9Xn8qbrlC9wTIrXEeNd9OAAAONBrsnUCHqpTX+m2D/CgshttWAn5Ce i7tx2dl5fhg/3GO2A2gmqMUYfnbvxK/dgiQW2/Y/zqEKna/F5rXwXKOhsYFyrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycDy3yVbzWlD; Tue, 3 Sep 2024 07:09:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48379MNe069585; Tue, 3 Sep 2024 07:09:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48379MR9069581; Tue, 3 Sep 2024 07:09:22 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:09:22 GMT Message-Id: <202409030709.48379MR9069581@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: ea0a7e8c6570 - stable/14 - pci_vendors: update to 2024.06.23 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ea0a7e8c6570799385a1e7c4b59824a28500c4f8 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=ea0a7e8c6570799385a1e7c4b59824a28500c4f8 commit ea0a7e8c6570799385a1e7c4b59824a28500c4f8 Author: Baptiste Daroussin AuthorDate: 2024-08-19 16:10:55 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:06:55 +0000 pci_vendors: update to 2024.06.23 (cherry picked from commit b9d1249b5b686dad0346e7d211693456c64049ec) --- share/misc/pci_vendors | 238 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 215 insertions(+), 23 deletions(-) diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors index df152a4e97e0..f168678909c8 100644 --- a/share/misc/pci_vendors +++ b/share/misc/pci_vendors @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2024.05.14 -# Date: 2024-05-14 03:15:02 +# Version: 2024.06.23 +# Date: 2024-06-23 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at https://pci-ids.ucw.cz/. @@ -104,6 +104,17 @@ 025e d81d NVMe DC SSD E1.L 9.5mm [D5-P5336] 0b70 NVMe DC SSD [Yorktown controller] 2b59 NVMe DC SSD [Atomos Prime] + 025e 0008 NVMe DC SSD U.2-SFF 15mm [D7-PS1010] + 025e 0019 NVMe DC SSD E3.S-1T 7.5mm [D7-PS1010] + 025e 0108 NVMe DC SSD U.2-SFF 15mm [D7-PS1030] + 025e 0119 NVMe DC SSD E3.S-1T 7.5mm [D7-PS1030] + 108e 48a0 NVMe DC SSD U.2-SFF 15mm 3.84TB [D7-PS1010 Custom] + 108e 48a1 NVMe DC SSD U.2-SFF 15mm 7.68TB [D7-PS1010 Custom] + 108e 48a2 NVMe DC SSD U.2-SFF 15mm 15.36TB [D7-PS1010 Custom] + 108e 48a3 NVMe DC SSD Add-In-Card [D7-PS1030 Custom] + 108e 48a4 NVMe DC SSD E3.S-1T 7.5mm 3.84TB [D7-PS1010 Custom] + 108e 48a5 NVMe DC SSD E3.S-1T 7.5mm 7.68TB [D7-PS1010 Custom] + 108e 48a6 NVMe DC SSD E3.S-1T 7.5mm 15.36TB [D7-PS1010 Custom] f1ab P41 Plus NVMe SSD (DRAM-less) [Echo Harbor] f1ac P44 Pro NVMe SSD [Hollywood Beach] 0270 Hauppauge computer works Inc. (Wrong ID) @@ -616,6 +627,7 @@ 1bd4 000e 6G SAS2008IR 1bd4 000f 6G SAS2008IT SA5248 1bd4 0010 6G SAS2008IR SA5248 + 4c52 96c8 LRSA96C8 8-Port SATA3(6Gb/s)Exchange Adapter (with Raid) 8086 350f RMS2LL040 RAID Controller 8086 3700 SSD 910 Series 0073 MegaRAID SAS 2008 [Falcon] @@ -1082,6 +1094,12 @@ 10e4 MegaRAID 12GSAS/PCIe Unsupported SAS38xx 10e5 MegaRAID 12GSAS/PCIe SAS38xx 10e6 MegaRAID 12GSAS/PCIe Secure SAS38xx + 1000 04d9 3808N iMR ROMB + 1000 04da 3808N iMR ROMB + 1000 04db 3808N iMR ROMB + 1000 04dc 3808N iMR ROMB + 1000 04dd 3808N iMR ROMB + 1000 40d8 MegaRAID 9524-8i 1000 40e0 MegaRAID 9540-2M2 1028 2172 PERC H355 Adapter 1028 2173 PERC H355 Front @@ -1127,6 +1145,7 @@ 1000 a064 PEX88064 64 lane/port PCIe Gen 4 Switch 1000 a080 PEX88080 80 lane/port PCIe Gen 4 Switch 1000 a096 PEX88096 98 lane/port PCIe Gen 4.0 Switch + 4c52 9f48 LRNV9F48 4-port Built-in 8654 NVMe Switching Adapter c012 PEX880xx PCIe Gen 4 Switch # Virtual endpoint used in Broadcom synthetic PCIe switches for resource reservation 1000 100b PEX88000 PCIe Gen 4 Virtual Upstream/Downstream Port @@ -1249,7 +1268,7 @@ 103c 8b17 ProBook 445 G9/455 G9 [Ryzen 7 Integrated Radeon GPU] 15ff Fenghuang [Zhongshan Subor Z+] 1607 Arden - 1636 Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)] + 1636 Renoir [Radeon Vega Series / Radeon Vega Mobile Series] 1637 Renoir Radeon High Definition Audio Controller 1638 Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] 1043 16c2 Radeon Vega 8 @@ -3987,6 +4006,8 @@ 1458 2408 Radeon RX 6750 XT GAMING OC 12G 1462 3980 Radeon RX 6700 XT Mech 2X 12G [MSI] 148c 2409 Red Devil RX 6700 XT +# Dual fan version + 1849 5210 Radeon RX 6700 XT Challenger D 1849 5219 Radeon RX 6700 XT Challenger D 1849 5222 RX 6700 XT Challenger D OC # Gaming 1440/QHD Overclock edition with 12 Gb GDDR6 and PCIe 4.0 of Radeon RX 6700 XT by Sapphire PULSE manufactured on autumn 2022 / C1 reviseion @@ -4022,13 +4043,17 @@ 7448 Navi 31 [Radeon Pro W7900] 744c Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] 1002 0e3b RX 7900 GRE [XFX] + 1043 0506 TUF Gaming Radeon RX 7900 XTX OC + 1849 5304 Radeon RX 7900 XTX 1da2 471e PULSE RX 7900 XTX + 1da2 475e PULSE RX 7900 GRE 1da2 e471 NITRO+ RX 7900 XTX Vapor-X 1eae 7901 RX-79XMERCB9 [SPEEDSTER MERC 310 RX 7900 XTX] 745e Navi 31 [Radeon Pro W7800] + 7460 7460 Navi32 GL-XL [AMD Radeon PRO V710] 7470 Navi 32 [Radeon PRO W7700] 747e Navi 32 [Radeon RX 7700 XT / 7800 XT] - 7480 Navi 33 [Radeon RX 7700S/7600/7600S/7600M XT/PRO W7600] + 7480 Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] 1849 5313 RX 7600 Challenger OC 7483 Navi 33 [Radeon RX 7600M/7600M XT] 7489 Navi 33 [Radeon Pro W7500] @@ -5460,10 +5485,12 @@ 1849 43c8 Fatal1ty X370 Professional Gaming 43b6 X399 Series Chipset SATA Controller 43b7 300 Series Chipset SATA Controller + 43b8 A320 Chipset SATA Controller [AHCI mode] 43b9 X370 Series Chipset USB 3.1 xHCI Controller 1849 43d0 Fatal1ty X370 Professional Gaming 43ba X399 Series Chipset USB 3.1 xHCI Controller 43bb 300 Series Chipset USB 3.1 xHCI Controller + 43bc A320 USB 3.1 XHCI Host Controller 43c6 400 Series Chipset PCIe Bridge 43c7 400 Series Chipset PCIe Port 43c8 400 Series Chipset SATA Controller @@ -9186,12 +9213,17 @@ 8717 PEX 8717 16-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch with DMA 8718 PEX 8718 16-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch 8724 PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA + 4c52 9234 LRNV9324 2-port Built-in 8643 NVMe Exchange Adapter + 4c52 9524 LRNV9524 2-port M.2 NVMe SSD Exchange Adapter 8725 PEX 8725 24-Lane, 10-Port PCI Express Gen 3 (8.0 GT/s) Multi-Root Switch with DMA 8732 PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch 8734 PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch 8747 PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch + 4c52 9347 LRNV9347L 2-port Built-in 8643 NVMe Switching Adapter + 4c52 9547 LRNV9547 4-port M.2 NVMe SSD Exchange Adapter 8748 PEX 8748 48-Lane, 12-Port PCI Express Gen 3 (8 GT/s) Switch, 27 x 27mm FCBGA 8749 PEX 8749 48-Lane, 18-Port PCI Express Gen 3 (8.0 GT/s) Multi-Root Switch with DMA + 4c52 9349 LRNV9349 8-port SFF-8643 NVMe SSD Exchange Adapter 87a0 PEX PCI Express Switch NT0 Port Link Interface 87a1 PEX PCI Express Switch NT1 Port Link Interface 87b0 PEX PCI Express Switch NT0 Port Virtual Interface @@ -12959,6 +12991,8 @@ 2296 Tegra PCIe Endpoint Virtual Network 22a3 GH100 [H100 NVSwitch] 22ba AD102 High Definition Audio Controller + 22bc AD104 High Definition Audio Controller + 22bd AD106M High Definition Audio Controller 2302 GH100 2313 GH100 [H100 CNX] 2321 GH100 [H100L 94GB] @@ -13080,6 +13114,7 @@ 2681 AD102 [RTX TITAN Ada] 2684 AD102 [GeForce RTX 4090] 2685 AD102 [GeForce RTX 4090 D] + 2689 AD102 [GeForce RTX 4070 Ti SUPER] 26b1 AD102GL [RTX 6000 Ada Generation] 26b2 AD102GL [RTX 5000 Ada Generation] 26b3 AD102GL [RTX 5880 Ada Generation] @@ -13299,6 +13334,7 @@ 8043 LANai4.x [Myrinet LANai interface chip] 8062 S5933_PARASTATION 807d S5933 [Matchmaker] + 8081 GPIB interface card [IOtech Inc. PCI488] 8088 Kongsberg Spacetec Format Synchronizer 8089 Kongsberg Spacetec Serial Output Board 809c S5933_HEPC3 @@ -16238,7 +16274,9 @@ 11ae Aztech System Ltd 11af Avid Technology Inc. 0001 Cinema + ee21 Digidesign DSP Farm ee40 Digidesign Audiomedia III + ee60 Digidesign SampleCell II / II Plus 11b0 V3 Semiconductor Inc. 0002 V300PSC 0292 V292PBC [Am29030/40 Bridge] @@ -17445,7 +17483,8 @@ 10a9 8002 Acenic Gigabit Ethernet 12ae 0002 Gigabit Ethernet-T (3C986-T) 00fa Farallon PN9100-T Gigabit Ethernet -12af TDK USA Corp +12af TDK Corporation + 5831 GBDriver GX1 x2 NVMe SSD Controller (DRAM-less) 12b0 Jorge Scientific Corp 12b1 GammaLink 12b2 General Signal Networks @@ -18916,6 +18955,9 @@ 580b Secure Flash Controller (Xenon) 580d System Management Controller (Xenon) 5811 Xenos GPU (Xenon) + 5821 Xenos GPU (Zephyr/Falcon) + 5831 Xenos GPU (Jasper) + 5841 Xenos GPU (Slim) 1415 Oxford Semiconductor Ltd 8401 OX9162 Mode 1 (8-bit bus) 8403 OX9162 Mode 0 (parallel port) @@ -19859,6 +19901,7 @@ 144d a801 SM963 2.5" NVMe PCIe SSD a806 NVMe SSD SM0032L a808 NVMe SSD Controller SM981/PM981/PM983 +# Used by different variants of SSD 970 EVO and PRO 144d a801 SSD 970 EVO/PRO 1d49 403b Thinksystem U.2 PM983 NVMe SSD a809 NVMe SSD Controller 980 (DRAM-less) @@ -19886,7 +19929,7 @@ # Actually 88SS1322 according to techpowerup a80b NVMe SSD Controller PM9B1 (DRAM-less) a80c NVMe SSD Controller S4LV008[Pascal] - a80d NVMe SSD Controller PM9C1a + a80d NVMe SSD Controller PM9C1a (DRAM-less) a820 NVMe SSD Controller 171X 1028 1f95 Express Flash NVMe XS1715 SSD 400GB 1028 1f96 Express Flash NVMe XS1715 SSD 800GB @@ -20844,6 +20887,7 @@ 14e4 5250 NetXtreme-E BCM57504 4x25G KR Mezz 14e4 5425 NetXtreme-E Quad-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957504-N425G) 14e4 d142 NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE + 1590 0420 HPE Ethernet 25/50Gb 2-port 6310C Adapter 1752 BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet 1760 BCM57608 10Gb/25Gb/50Gb/100Gb/200Gb/400Gb Ethernet 14e4 d125 BCM57608 2x200G PCIe Ethernet NIC @@ -21908,11 +21952,13 @@ 0262 MT27710 [ConnectX-4 Lx Programmable] EN 0263 MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN 0264 Innova-2 Flex Burn image - 0270 Spectrum-4L, Flash recovery mode + 0270 Spectrum-5 in Flash Recovery Mode 0271 Spectrum-4L, RMA - 0274 Spectrum-4C, Flash recovery mode + 0274 Spectrum-6 in Flash Recovery Mode 0275 Spectrum-4C RMA 0277 Spectrum-4TOR RMA + 0278 Quantum-4 in Flash Recovery Mode + 0279 Quantum-4 RMA 0281 NPS-600 Flash Recovery 0282 ArcusE Flash recovery 0283 ArcusE RMA @@ -22132,6 +22178,7 @@ d2f2 Quantum-2 NDR (400Gbps) switch d2f4 Quantum-3 d2f6 Quantum-3CPO + d2f8 Quantum-4 15b4 CCI/TRIAD 15b5 Cimetrics Inc 15b6 Texas Memory Systems Inc @@ -23338,7 +23385,8 @@ 1108 IPQ95xx/97xx PCIe Root Port 1109 QCN62xx/92xx Wireless Network Adapter 17cc NetChip Technology, Inc - 2280 USB 2.0 + 2280 NET2280 PCI to USB 2.0 Hi-Speed Peripheral Controller + 2282 NET2282 PCI to USB 2.0 Hi-Speed Peripheral Controller 17cd Cadence Design Systems, Inc. 17cf Z-Com, Inc. 17d3 Areca Technology Corp. @@ -23925,6 +23973,7 @@ 0013 SH7757 PCIe Switch [PS] 0014 uPD720201 USB 3.0 Host Controller 0015 uPD720202 USB 3.0 Host Controller + 4c52 9a72 LRSU9A72 2-Port USB 3.0 Exchange Adapter 001a SH7758 PCIe-PCI Bridge [PPB] 001b SH7758 PCIe End-Point [PBI] 001d SH7758 PCIe Switch [PS] @@ -24087,6 +24136,8 @@ 1942 ClearSpeed Technology plc e511 Advance X620 accelerator card e521 Advance e620 accelerator card +1945 MERA + 6200 PXI/PXIe measurement module 1947 C-guys, Inc. 4743 CG200 Dual SD/SDIO Host controller device 1948 Alpha Networks Inc. @@ -24184,6 +24235,7 @@ 7010 MPC8641 PCI Host Bridge 7011 MPC8641D PCI Host Bridge 7018 MPC8610 + 81c0 LS1046A PCI Express Bridge c006 MPC8308 1a56 1201 Bigfoot Killer E2100 Gigabit Ethernet Controller # PCIe interface for emulator @@ -24773,6 +24825,7 @@ 1050 Virtio 1.0 GPU 1052 Virtio 1.0 input 1053 Virtio 1.0 socket + 1058 virtio-mem 105a Virtio file system 1110 Inter-VM shared memory 1af4 1100 QEMU Virtual Machine @@ -24797,6 +24850,7 @@ 0612 ASM1061/ASM1062 Serial ATA Controller 1849 0612 Motherboard 0622 ASM106x Serial ATA AHCI Controller + 4c52 9661 LRST9661 2-port M.2 SATA3(6Gb/s) Raid Adapter 0624 ASM106x SATA/RAID Controller 0625 106x SATA/RAID Controller 1040 ASM1040 SuperSpeed USB Host Controller @@ -24818,6 +24872,7 @@ 1187 ASM1187e 7-Port PCIe x1 Gen2 Packet Switch 118f ASM1187e 7-Port PCIe x1 Gen2 Packet Switch 1242 ASM1142 USB 3.1 Host Controller + 4c52 9a42 LRSU9A42 2-Port Type-A Exchange Adapter 1343 ASM1143 USB 3.1 Host Controller 1806 ASM1806 4-Port PCIe x2 Gen2 Packet Switch 1812 ASM1812 6-Port PCIe x4 Gen2 Packet Switch @@ -24907,10 +24962,13 @@ 1028 2113 BOSS-N1 Modular 1028 2151 BOSS-N1 Modular ET 1028 2196 ROR-N1 + 1028 2286 BOSS-N1 DC-MHS + 1028 2287 BOSS-N1 Modular 1b4b 2241 Santa Cruz NVMe Host Adapter 1b96 4000 WD_BLACK AN1500 NVMe SSD 1d49 0306 ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit 1d49 0307 ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit + 4c52 9541 LRNV9541 2-port M.2 NVMe Raid Adapter 2b42 88W8997 2.4/5 GHz Dual-Band 2x2 Wi-Fi® 5 (802.11ac) + Bluetooth® 5.3 Solution 2b43 NXP 88W9098 Wi-Fi 6 (ax) MAC #1 2b44 NXP 88W9098 Wi-Fi 6 (ax) MAC #2 @@ -24919,6 +24977,7 @@ 9123 88SE9123 PCIe SATA 6.0 Gb/s controller dc93 600e DC-6xxe series SATA 6G controller 9125 88SE9125 PCIe SATA 6.0 Gb/s controller + 4c52 9615 LRST9615 4-port SATA3(6Gb/s) Exchange Adapter 9128 88SE9128 PCIe SATA 6 Gb/s RAID controller 9130 88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo 1043 8438 P8P67 Deluxe Motherboard @@ -24947,6 +25006,7 @@ 1d49 0303 ThinkSystem SE350 M.2 SATA 4-Bay Data RAID Mirroring Enablement Kit 1d49 0304 ThinkSystem M.2 SATA 2-Bay RAID Enablement Kit 1d49 0305 ThinkSystem 7mm SATA 2-Bay Rear RAID Enablement Kit + 4c52 9630 LRST9630 4-port SATA3(6Gb/s) Raid Adapter 9235 88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller 9445 88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller 9480 88SE9480 SAS/SATA 6Gb/s RAID controller @@ -24960,6 +25020,21 @@ # 2xHDMI and 2xHD-SDI inputs e5f4 MPEG2 and H264 Encoder-Transcoder f1c4 Dual ASI-RX/TX-CI card +1b5e STAR-Dundee Ltd. + 0001 SpaceWire PCI Mk2 + 0002 SpaceWire PCIe Mk1 + 0003 SpaceWire cPCI Mk2 + 0004 SpaceWire PXI Recorder Mk1 + 0005 SpaceWire PXI Interface Mk1 + 0006 SpaceWire PXI Interface Mk1 with RMAP Target + 0008 SpaceWire PXI Router Mk1 + 000b SpaceWire PXI Interface Mk2 + 000c SpaceWire PXI Interface Mk2 with RMAP Target + 000d SpaceWire PXI Router Mk2 + 000e SpaceWire PXI Recorder Mk2 + 0100 STAR-Ultra PCIe + 0102 STAR-Ultra Single-Lane Router + 0200 SpaceWire PCIe Mk2 1b61 Byd Precision Manufacture Co.,Ltd 1b66 DELTACAST 0007 DELTA-3G-elp-d @@ -25121,11 +25196,14 @@ 1bb1 0179 Nytro 5360S - E3.S # Nytro 5360S (Rocinante Single Port) TCG - E3.S 1bb1 0180 Nytro 5360S TCG - E3.S +# Nytro 5060H (Rocinante High Performance) non-SED + 1bb1 0181 Nytro 5060H 1bb1 01a1 Nytro XP7102 5012 FireCuda/IronWolf 510 SSD 5013 BarraCuda Q5 NVMe SSD (DRAM-less) 5016 FireCuda 520/IronWolf 525 SSD 5018 FireCuda 530 SSD + 5019 BarraCuda PCIe SSD (DRAM-less) # 2TB 5021 FireCuda 520 SSD # 1TB @@ -25315,6 +25393,7 @@ 0023 Ultrastar SN200 Series NVMe SSD 1c58 8823 Ultrastar Memory (ME200) 1c5c SK hynix + 1069 PCB01 NVMe Solid State Drive 1282 PC300 NVMe Solid State Drive 128GB 1283 PC300 NVMe Solid State Drive 256GB 1284 PC300 NVMe Solid State Drive 512GB @@ -25525,6 +25604,7 @@ 5762 FALCON, GAMMIX S41, SPECTRIX S40G NVMe SSD (DRAM-less) 5763 XPG GAMMIX S5 NVMe SSD (DRAM-less) 5766 XPG GAMMIXS1 1L, XPG GAMMIX S5, LEGEND 710 / 740, SWORDFISH NVMe SSD (DRAM-less) + 5772 LEGEND 850 LITE NVMe SSD (DRAM-less) 612a LEGEND 750 NVMe SSD (DRAM-less) 613a ATOM 50, LEGEND 840 NVMe SSD (DRAM-less) 621a LEGEND 850 NVMe SSD (DRAM-less) @@ -25565,6 +25645,7 @@ 6304 AM630 PCIe 4.0 NVMe SSD 1024GB 6a02 AM6A0 PCIe 4.0 NVMe SSD 256GB 6a03 RPETJ512MKP1QDQ PCIe 4.0 NVMe SSD 512GB (DRAM-less) + 6a13 RPJYJ512MKN1QWQ PCIe 4.0 NVMe SSD 512GB (DRAM-less) 6a14 RPEYJ1T24MKN2QWY PCIe 4.0 NVMe SSD 1024GB (DRAM-less) 8030 NVMe SSD Controller UH8X2X/UH7X2X series 1cc4 1122 NVMe SSD UH812a U.2 1.92TB @@ -25662,7 +25743,7 @@ 071a KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port 071b KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port 071c KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port - 071d KX-5000/KX-6000/KX-6000G/KH-40000 PCI Express Root Port + 071d KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port 071e KX-5000/KX-6000/KX-6000G/KH-40000/KX-7000 PCI Express Root Port 071f ZX-200 Upstream Port of PCI Express Switch 0720 ZX-200 PCIE RC6 controller @@ -25851,6 +25932,9 @@ 1024 AR-TK242 [2x10GbE Packet Capture Device] 1025 AR-TK242-FX2 [2x100GbE Gen5 Packet Capture Device] 1026 AR-TK242-FX2 [1x200GbE Gen5 Packet Capture Device] + 1027 AR-P2P-DBG [P2P Debug Function] + 1028 AR-P2P-ATR [P2P Actor Function] + 1029 AR-P2P-UTL [P2P Utility Function] 4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument] 1d72 Xiaomi 1d78 DERA Storage @@ -25979,6 +26063,7 @@ 1062 Lexar NM710 NVME SSD 1160 FORESEE P900 BGA NVMe SSD (DRAM-less) 1202 Lexar NM610 PRO NVME SSD (DRAM-less) + 12e4 ORCA 4836 Series eSSD 1602 Lexar NM790 NVME SSD (DRAM-less) 1d97 Lexar NM620 NVME SSD (DRAM-less) 2263 SM2263EN/SM2263XT-based OEM NVME SSD (DRAM-less) @@ -26058,6 +26143,9 @@ 1dbe 2006 Dongting-N2 DC SSD U.2 7680GB 1dbe 3001 Donghu-Z2 DC ZNS SSD U.2 4000GB 1dbe 3002 Donghu-Z2 DC ZNS SSD U.2 8000GB + 5666 NVMe SSD Controller IG5666 + 5668 NVMe SSD Controller IG5668 + 5669 NVMe SSD Controller IG5669 [Tacoma] 1dbf Guizhou Huaxintong Semiconductor Technology Co., Ltd 0401 StarDragon4800 PCI Express Root Port 1dc2 Alco Digital Devices Limited @@ -26410,6 +26498,7 @@ 1df8 d100 M.2 NVMe SSD 1df8 d201 M.2 NVMe SSD 1df8 d600 M.2 NVMe SSD +1dfa Astera Labs, Inc. 1dfc JSC NT-COM 1181 TDM 8 Port E1/T1/J1 Adapter 1e0d SambaNova Systems, Inc @@ -26595,10 +26684,12 @@ 1e3b 0069 Enterprise NVMe SSD U.2 3.20TB (R5301D) 1e3b 006c Enterprise NVMe SSD U.2 1.92TB (R5101) 1e3b 006d Enterprise NVMe SSD U.2 1.60TB (J5301) - 1e3b 00b9 Enterprise NVMe SSD U.2 QDP 25.60TB (R5300) - 1e3b 00be Enterprise NVMe SSD U.2 QDP 30.72TB (R5100) - 1e3b 00c1 Enterprise NVMe SSD U.2 QDP 25.60TB (R5300D) - 1e3b 00c4 Enterprise NVMe SSD U.2 QDP 30.72TB (R5100D) + 1e3b 00b9 Enterprise NVMe SSD U.2 ODP 25.60TB (R5301)/(J5301) + 1e3b 00be Enterprise NVMe SSD U.2 ODP 30.72TB (R5101)/(J5101) + 1e3b 00c1 Enterprise NVMe SSD U.2 ODP 25.60TB (R5301D)/(J5301D) + 1e3b 00c4 Enterprise NVMe SSD U.2 ODP 30.72TB (R5101D)/(J5101D) + 1e3b 00c7 Enterprise NVMe SSD U.2 ODP 25.60TB (J5300) + 1e3b 00c8 Enterprise NVMe SSD U.2 ODP 30.72TB (J5100) 1e3b 00c9 Enterprise NVMe SSD U.2 ODP 15.36TB (J5001) 1e3b 00ca Enterprise NVMe SSD U.2 ODP 3.84TB (J5102) 1e3b 00cb Enterprise NVMe SSD U.2 ODP 7.68TB (J5102) @@ -26609,12 +26700,16 @@ 1e3b 00dc Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM (J5001) 1e3b 00dd Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001) 1e3b 00de Enterprise NVMe SSD U.2 ODP 15.36TB with SK 16GB DRAM(J5001D) - 1e3b 00df Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM(J5001D) + 1e3b 00df Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM(J5001) 1e3b 00e7 Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001D) 1e3b 00e8 Enterprise NVMe SSD U.2 QDP 3.20TB (J5301) 1e3b 00e9 Enterprise NVMe SSD U.2 ODP 6.40TB (J5301) 1e3b 00ea Enterprise NVMe SSD U.2 QDP 3.20TB (J5301D) 1e3b 00eb Enterprise NVMe SSD U.2 ODP 6.40TB (J5301D) + 1e3b 00ec Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5101) + 1e3b 00ed Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(R5101) + 1e3b 00ee Enterprise NVMe SSD U.2 ODP 15.36B with SK 16GB DRAM(J5101) + 1e3b 00ef Enterprise NVMe SSD U.2 ODP 12.80TB with SK 16GB DRAM(J5301) 1e3b 00f0 Enterprise NVMe SSD U.2 0.40TB (X2900) 1e3b 00f1 Enterprise NVMe SSD U.2 0.80TB (X2900) 1e3b 00f2 Enterprise NVMe SSD U.2 1.60TB (X2900) @@ -26786,6 +26881,7 @@ 1001 Video Accelerator 1eb4 Quantum Nebula Microelectronics Technology Co.,Ltd. 3401 SSD Contoller +1eb6 Wuxi Stars Microsystem Technology Co., Ltd 1eb9 Senscomm Semiconductor, Inc 2020 SCM2625 Wi-Fi6 Network Adapter 1ebd EMERGETECH Company Ltd. @@ -26829,12 +26925,14 @@ 1eca Lightmatter 0000 Envise-B 1ed0 Hosin Global Electronics + 2283 Patriot P300 NVMe SSD (DRAM-less) 1ed2 FuriosaAI, Inc. 0000 Warboy 1111 RNGD 0000 1111 RNGD-S 0000 2222 RNGD VF 0000 3333 RNGD-S VF + 2222 RNGD-S 1ed3 Yeston 1ed5 Moore Threads Technology Co.,Ltd 0100 MTT S10 @@ -26918,6 +27016,7 @@ 1ef6 GrAI Matter Labs 1ef7 Shenzhen Gunnir Technology Development Co., Ltd 1efb Flexxon Pte Ltd +1eff Rebellions Inc. 1f02 Beijing Dayu Technology 1f03 Shenzhen Shichuangyi Electronics Co., Ltd 1202 MAP1202-Based NVMe SSD (DRAM-less) @@ -26947,7 +27046,27 @@ 1a01 M16104 Family Virtual Function 1f0f 0001 M16104 Family Virtual Function 2022 D1055AS PCI Express Switch Upstream Port + 3403 M18110 Family + 3404 M18110 Lx Family + 3405 M18110 Family BASE-T + 3406 M18110 Lx Family BASE-T + 3407 M18110 Family OCP + 3408 M18110 Lx Family OCP + 3409 M18110 Family BASE-T OCP + 340a M18110 Lx Family BASE-T OCP + 340b M18120 Family + 340c M18120 Lx Family + 340d M18120 Family BASE-T + 340e M18120 Lx Family BASE-T + 340f M18120 Family OCP + 3410 M18120 Lx Family OCP + 3411 M18120 Family BASE-T OCP + 3412 M18120 Lx Family BASE-T OCP + 3413 M18100 Family Virtual Function 9088 D1055AS PCI Express Switch Downstream Port +1f16 XConn Technologies +# XConn XC50256 CXL2.0/PCIe5.0 switch + c500 XC50256 1f17 Zettastone Technology 1f24 xFusion Digital Technologies Co., Ltd. 1058 EP500/EP600 NVMe SSD @@ -27148,6 +27267,25 @@ 1fe4 0077 Enterprise NVMe SSD U.2 6.40TB(HP630) 1fe4 0078 Enterprise NVMe SSD U.2 3.20TB(HP630) 1fe9 MemryX +# LinkData Technology (Tianjin) Co., LTD +1ff2 Linkdata + 10a1 NIC1160 Ethernet Controller Family + 1ff2 0c11 10GE Ethernet Adapter 1160-2X + 10a2 NIC1160 Ethernet Controller Virtual Function Family + 20a1 IOC2110 Storage Controller + 1ff2 0a11 2120-16i SATA3/SAS3 HBA Adapter + 1ff2 0a12 2120-8i SATA3/SAS3 HBA Adapter + 20a2 IOC2250 Storage Controller + 1ff2 0a21 2230-18i Tri-mode HBA Adapter + 1ff2 0a22 2230-10i Tri-mode HBA Adapter + 1ff2 0a23 2230-16i Tri-mode HBA Adapter + 1ff2 0a24 2230-8i Tri-mode HBA Adapter + 1ff2 0a28 2233-16i Tri-mode HBA Adapter + 30a2 ROC3250 Storage Controller + 1ff2 0b21 3260-18i Tri-mode RAID Adapter + 1ff2 0b22 3260-10i Tri-mode RAID Adapter + 1ff2 0b23 3260-16i Tri-mode RAID Adapter + 1ff2 0b24 3260-8i Tri-mode RAID Adapter 1ff4 DEEPX Co., Ltd. 0000 DX_M1 0001 DX_M1A @@ -27600,10 +27738,8 @@ 4c52 LR-LINK 1001 Smart Network Adapter 4c52 a008 LREG1008PT Single-port 1Gb Smart Ethernet Network Adapter - 4c52 a009 LREG1009PT Single-port 2.5Gb Smart Ethernet Network Adapter 1002 Smart Network Adapter 4c52 a006 LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter - 4c52 a007 LREG1007PT Quad-port 10Gb Smart Ethernet Network Adapter 1003 Smart Network Adapter 1004 Smart Network Adapter 4c52 b010 LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter @@ -27667,6 +27803,9 @@ 50b2 TerraTec Electronic GmbH 50ce System-on-Chip Engineering S.L. 0001 RELY-MIL-XMC-TSN-SWITCH + 0100 XMC_AV-Dual-ETH + 0101 XMC_AV-ETSN + 0102 XMC_AV-AFDX 5136 S S Technologies 5143 Qualcomm Inc 5145 Ensoniq (Old) @@ -29738,7 +29877,12 @@ 125d Ethernet Controller I226-IT 12d1 Ethernet Controller E830-CC for backplane 12d2 Ethernet Controller E830-CC for QSFP + 8086 0002 Ethernet Network Adapter E830-C-Q2 for OCP 3.0 + 8086 0004 Ethernet Network Adapter E830-CC-Q1 for OCP 3.0 12d3 Ethernet Controller E830-CC for SFP + 8086 0001 Ethernet Network Adapter E830-XXV-2 for OCP 3.0 + 8086 0003 Ethernet Network Adapter E830-XXV-2 + 8086 0004 Ethernet Network Adapter E830-XXV-4 for OCP 3.0 12d4 Ethernet Controller E830-CC for SFP-DD 12d5 Ethernet Controller E830-C for backplane 12d8 Ethernet Controller E830-C for QSFP @@ -30368,6 +30512,7 @@ 15fc Ethernet Connection (13) I219-V 15ff Ethernet Controller X710 for 10GBASE-T 1014 0000 PCIe3 4-port 10GbE Base-T Adapter + 108e 7b1f Quad Port 10GBase-T Adapter - CP 1137 0000 X710TLG GbE RJ45 PCIe NIC 1137 02c1 X710T2LG 2x10 GbE RJ45 PCIe NIC 1137 02c2 X710T4LG 4x10 GbE RJ45 PCIe NIC @@ -34334,6 +34479,7 @@ 37d9 X722 Hyper-V Virtual Function 3882 Ice Lake LPC Controller 38a4 Ice Lake SPI Controller + 38c8 Ice Lake-LP Smart Sound Technology Audio Controller 38e0 Ice Lake Management Engine Interface 3a00 82801JD/DO (ICH10 Family) 4-port SATA IDE Controller 3a02 82801JD/DO (ICH10 Family) SATA AHCI Controller @@ -34932,6 +35078,7 @@ 4641 12th Gen Core Processor Host Bridge/DRAM Registers 1028 0b10 Precision 3571 464d 12th Gen Core Processor PCI Express x4 Controller #0 + 464e Alder Lake-N Thunderbolt 4 USB Controller 464f 12th Gen Core Processor Gaussian & Neural Accelerator 1028 0b10 Precision 3571 4650 12th Gen Core Processor Host Bridge @@ -34978,8 +35125,13 @@ 4908 DG1 [Iris Xe Graphics] 4909 DG1 [Iris Xe MAX 100] 4940 4xxx Series QAT - 4942 4xxx Series QAT - 4944 4xxx Series QAT + 4941 4xxx Series QAT Virtual Function + 4942 401xx Series QAT + 4943 401xx Series QAT Virtual Function + 4944 402xx Series QAT + 4945 402xx Series QAT Virtual Function + 4946 420xx Series QAT + 4947 420xx Series QAT Virtual Function 4b00 Elkhart Lake eSPI Controller 4b23 Elkhart Lake SMBus Controller 4b24 Elkhart Lake SPI (Flash) Controller @@ -35107,6 +35259,7 @@ 51b0 Alder Lake PCI Express Root Port #9 51b1 Alder Lake PCI Express x1 Root Port #10 51bb Alder Lake-P PCH PCIe Root Port #4 + 51bd Alder Lake-P PCH PCIe Root Port #6 51bf Alder Lake PCH-P PCI Express Root Port #9 51c5 Alder Lake-P Serial IO I2C Controller #0 51c6 Alder Lake-P Serial IO I2C Controller #1 @@ -35166,7 +35319,15 @@ 8086 0001 EtherExpress PRO/100 Server Ethernet Adapter 530d 80310 (IOP) IO Processor 5481 Alder Lake-N PCH eSPI Controller + 54a3 Alder Lake-N SMBus + 54a4 Alder Lake-N SPI (flash) Controller + 54a8 Alder Lake-N Serial IO UART Host Controller + 54b0 Alder Lake-N PCI Express Root Port #9 + 54b1 Alder Lake-N PCI Express Root Port #10 + 54b2 Alder Lake-N PCI Express Root Port #11 + 54b3 Alder Lake-N PCI Express Root Port #12 54c8 Alder Lake-N PCH High Definition Audio Controller + 54d3 Alder Lake-N SATA AHCI Controller 54e0 Alder Lake-N PCH HECI Controller 54ed Alder Lake-N PCH USB 3.2 xHCI Host Controller 54ef Alder Lake-N PCH Shared SRAM @@ -35205,7 +35366,7 @@ 56bf DG2 [Arc Graphics A580E] 56c0 ATS-M [Data Center GPU Flex 170] 56c1 ATS-M [Data Center GPU Flex 140] - 56c2 ATS-M [Data Center GPU Flex 170G] + 56c2 ATS-M [Data Center GPU Flex 170V] 5780 Thunderbolt 80/120G Bridge [Barlow Ridge Host 80G 2023] 5781 Thunderbolt 80/120G NHI [Barlow Ridge Host 80G 2023] 5782 Thunderbolt 80/120G USB Controller [Barlow Ridge Host 80G 2023] @@ -35219,9 +35380,12 @@ 579e Ethernet Connection E825-C for SFP 57a4 Thunderbolt Bridge [Barlow Ridge Hub 40G 2023] 57a5 Thunderbolt USB Controller [Barlow Ridge Hub 40G 2023] + 57ae Ethernet Controller E610 Backplane + 57af Ethernet Controller E610 SFP 57b0 Ethernet Controller E610 10GBASE T 57b1 Ethernet Controller E610 2.5GBASE T 8086 0000 Ethernet Converged Network Adapter E610 + 57b2 Ethernet Controller E610 SGMII 5845 QEMU NVM Express Controller 1af4 1100 QEMU Virtual Machine 5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers @@ -35600,6 +35764,7 @@ 7a27 Raptor Lake-S PCH Shared SRAM 7a30 Raptor Lake PCI Express Root Port #9 7a38 Raptor Lake PCI Express Root Port #1 + 7a3a Raptor Point-S PCH - PCI Express Root Port 3 7a3b Raptor Lake PCI Express Root Port #4 7a40 Raptor Lake PCI Express Root Port #17 7a44 Raptor Lake PCI Express Root Port #21 @@ -35646,7 +35811,10 @@ 8086 0094 Wi-Fi 6 AX201 160MHz 7afc Alder Lake-S PCH Serial IO I2C Controller #4 7afd Alder Lake-S PCH Serial IO I2C Controller #5 + 7d03 Meteor Lake-P Dynamic Tuning Technology 7d0b Volume Management Device NVMe RAID Controller Intel Corporation + 7d0d Meteor Lake-P Platform Monitoring Technology + 7d19 Meteor Lake IPU 7d1d Meteor Lake NPU 7d40 Meteor Lake-M [Intel Graphics] 7d41 Arrow Lake-U [Intel Graphics] @@ -35668,10 +35836,15 @@ 7e30 Meteor Lake-P Serial IO SPI Controller #1 7e40 Meteor Lake PCH CNVi WiFi 8086 0094 Wi-Fi 6E AX211 160MHz +# Refer from Intel Meteor Lake EDS (doc#640228) under its "Device IDs" section. + 7e45 Meteor Lake-P Integrated Sensor Hub 7e46 Meteor Lake-P Serial IO SPI Controller #2 + 7e4c Meteor Lake-P Gaussian & Neural-Network Accelerator 7e50 Meteor Lake-P Serial IO I2C Controller #4 7e51 Meteor Lake-P Serial IO I2C Controller #5 7e52 Meteor Lake-P Serial IO UART Controller #2 + 7e70 Meteor Lake-P CSME HECI #1 + 7e73 Meteor Lake-P Keyboard and Text (KT) Redirection 7e78 Meteor Lake-P Serial IO I2C Controller #0 7e79 Meteor Lake-P Serial IO I2C Controller #1 7e7a Meteor Lake-P Serial IO I2C Controller #2 @@ -36758,6 +36931,7 @@ a72f Raptor Lake-P Thunderbolt 4 PCI Express Root Port #2 a73e Raptor Lake-P Thunderbolt 4 NHI #0 1028 0c06 Precision 3580 + a740 Raptor Lake-S 8+12 - Host Bridge/DRAM Controller a74d Raptor Lake PCIe 4.0 Graphics Port a74f GNA Scoring Accelerator module 1028 0c06 Precision 3580 @@ -36851,6 +37025,11 @@ d156 Core Processor Semaphore and Scratchpad Registers d157 Core Processor System Control and Status Registers d158 Core Processor Miscellaneous Registers + e202 Battlemage G21 [Intel Graphics] + e20b Battlemage G21 [Intel Graphics] + e20c Battlemage G21 [Intel Graphics] + e20d Battlemage G21 [Intel Graphics] + e212 Battlemage G21 [Intel Graphics] f1a5 SSD 600P Series 8086 390a SSDPEKKW256G7 256GB f1a6 SSD DC P4101/Pro 7600p/760p/E 6100p Series @@ -36921,7 +37100,7 @@ 0119 WX1860-LC Gigabit Ethernet Controller Virtual Function 011a WX1860A1 Gigabit Ethernet Controller Virtual Function 011b WX1860AL1 Gigabit Ethernet Controller Virtual Function - 1000 Ethernet Controller RP1000 Virtual Function for 10GbE SFP+ + 1000 Ethernet Controller SP1000A Virtual Function for 10GbE SFP+ 1001 Ethernet Controller SP1000A for 10GbE SFP+ 1bd4 0084 Ethernet Controller SP1000A for 10GbE SFP+(lldp) 1bd4 0085 Ethernet Controller SP1000A for 10GBASE-T @@ -36931,7 +37110,7 @@ 8088 0000 Ethernet Network Adaptor RP1000 for 10GbE SFP+ 8088 0300 Ethernet Network Adaptor RP1000-A03 for 10GbE SFP+ 8088 0400 Ethernet Network Adaptor RP1000-A04 for 10GbE SFP+ - 2000 Ethernet Controller RP2000 Virtual Function for 10GbE SFP+ + 2000 Ethernet Controller WX1820AL Virtual Function for 10GbE SFP+ 2001 Ethernet Controller WX1820AL for 10GbE SFP+ 8088 2000 Ethernet Network Adaptor RP2000 for 10GbE SFP+ 8088 2300 Ethernet Network Adaptor RP2000-A03 for 10GbE SFP+ @@ -36943,7 +37122,17 @@ 8384 SigmaTel 8401 TRENDware International Inc. 8510 Sietium Semiconductor Co., Ltd. - 0201 GenBu02 [GB2062-PCIe-C0] + 0201 GenBu02 Series GPU + 8510 0001 GB2062-PUB-LPDDR + 8510 0002 GB2062-PCIe-C0 + 8510 0003 GB2062-PCIe-C41 + 8510 0004 GB2062-PCIe-HIEILP4 + 8510 0005 CQ2040-PCIe-C21 + 8510 0007 GB2062-PCIe-C40 + 8510 0008 CQ2040-MXM-M60 + 8510 0009 GB2062-PCIe-C20 + 8510 000c CQ2040-PUB + 8510 0201 GB2062-PUB-DDR # nee ScaleMP 8686 SAP 1010 vSMP Foundation controller [vSMP CTL] @@ -37316,6 +37505,9 @@ 103c 1101 Smart Array P416ie-m SR G10 105b 1211 HBA 8238-16i 105b 1321 HBA 8242-24i + 1137 02f8 24G TriMode M1 RAID 4GB FBWC 32D + 1137 02f9 24G TriMode M1 RAID 4GB FBWC 16D + 1137 02fa 24G TriMode M1 HBA 16D 13fe 8312 SKY-9200 MIC-8312BridgeB 152d 8a22 QS-8204-8i 152d 8a23 QS-8238-16i From nobody Tue Sep 3 07:09:23 2024 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 4WycF00Jd3z5W541; Tue, 03 Sep 2024 07:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WycDz5p6wz4WWH; Tue, 3 Sep 2024 07:09:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725347363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N79sJfzSxNGw6kRIzbefNc3ottZ+xyajsU1hRqDzPck=; b=V1Zu5JZL1NlCvHe4FJhVS9QYuo2EAkEmYpgwA8ZkbQqQWyK6yuqItXIOMAFYlgWcY7R92B PgnkOLIFeJ0GtwZH+41e2DCgTyq9Xd373ys5bGBx1neqhQrYzOmpQUP2BBtmaIJLTfFM1J SuAG+VbHfAtpCssz+oMYDxHB/yGOlr2JA0i1BaySIMcolOqKPZG21rSVhr7k6+Yaw8rHGI nksk9KCcvOYiL2G8wU/xaj4wQC+oQzjk4mM97MEO9Uzkzi9UhJX0EYfyO1iSilr8VP6Gfu Tyq/T7yulzTJ/fiBhQGEqcRx69jrX9DgGB4oMd0G34jdzfCUUGyNQR32eN5Ztg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725347363; a=rsa-sha256; cv=none; b=uYiXxAVaEqFoO+Br66VnMRwTf5ZaS5pz3RMy6N+4XslyHWH6XQ3V9cb+blh9ACq9Wfs4w1 QnUCmqLNcRuCy24ZhSowClZ4ohbNgdr1fDSaBwEhXsTCGyjP23IcTD9AuHQptDy2y0c/Y0 EQA9GlbLw+qhxWtSivkGy/YjoUyEzHwxrrCu5jcj0f01HsXrZQHOPFehORQglCaP6qPj6/ VkhrPYo9UXgsKkKJm8OwO4LO815P86Wzf4WOpzIW4e3uK3p43w3zhO8Arxjfd2lcAXZfRX JwPvpNilTKkg/LRpqEj+hA52l78hK3pe/BCCDBtnqhvIKYSBxOOA50lmaRZXjA== 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=1725347363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N79sJfzSxNGw6kRIzbefNc3ottZ+xyajsU1hRqDzPck=; b=jwFUBjGUXExl8r/zY942a2wJrbyB1ZUC1X/jtUU0hZBBtuXnCcctrsmIS1C4SOyzWwYGVJ TeqQJLL1dAHNZQfvOJp/3/ixTwaOBDUR7zIq9IjKfEixv6E71HVaTPYeli0xzC+ek9/ja8 twz6kKt7lOt322x/9x1u1YSaLdUnqeZlFmHtfLUtW703eidsWcxSsP/qylNCBzCHs42dCy zqct8+CABz8nO1SFxPGE1iuRVCFHkusd7ut43JmYjDemAVKpbVbgwq3ZacoU+z6yvfCCpB OPexjIgEXN4Tw1JF6mMFRybDJIgtiLUTVSr5Qt1sS8BpVrlcbbAkiJtGeEpGyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WycDz575bzX3K; Tue, 3 Sep 2024 07:09:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48379N9i069627; Tue, 3 Sep 2024 07:09:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48379N9D069624; Tue, 3 Sep 2024 07:09:23 GMT (envelope-from git) Date: Tue, 3 Sep 2024 07:09:23 GMT Message-Id: <202409030709.48379N9D069624@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 9a3dee859da4 - stable/14 - usb_vendors: update to 2024.07.04 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9a3dee859da41669020654274b80b2d6aac7091c Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=9a3dee859da41669020654274b80b2d6aac7091c commit 9a3dee859da41669020654274b80b2d6aac7091c Author: Baptiste Daroussin AuthorDate: 2024-08-19 16:11:41 +0000 Commit: Baptiste Daroussin CommitDate: 2024-09-03 07:06:56 +0000 usb_vendors: update to 2024.07.04 (cherry picked from commit 3cd90cb66d96b7604b8c5fde6f061e68eddbfc82) --- share/misc/usb_vendors | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/share/misc/usb_vendors b/share/misc/usb_vendors index a1e3ea4acd1d..41b367d1a0d6 100644 --- a/share/misc/usb_vendors +++ b/share/misc/usb_vendors @@ -9,8 +9,8 @@ # The latest version can be obtained from # http://www.linux-usb.org/usb.ids # -# Version: 2024.03.18 -# Date: 2024-03-18 20:34:02 +# Version: 2024.07.04 +# Date: 2024-07-04 20:34:02 # # Vendors, devices and interfaces. Please keep sorted. @@ -2400,6 +2400,7 @@ 02e3 Xbox One Elite Controller 02e6 Xbox Wireless Adapter for Windows 02ea Xbox One Controller + 02f3 Xbox One Chatpad 02fd Xbox One S Controller [Bluetooth] 02fe Xbox Wireless Adapter for Windows 0306 Surface Pro 7 SD Card Reader @@ -4992,7 +4993,7 @@ 0a28 INDI AV-IN Device 1301 Network Controller 1302 i3 Gateway - 1303 3 Micro Module + 1303 i3 Micro Module 1304 i3 Module 1305 i3 Multi Sensing Module 04c1 U.S. Robotics (3Com) @@ -6433,6 +6434,7 @@ 2060 PT-E550W P-touch Label Printer 2061 PT-P700 P-touch Label Printer 2064 PT-P700 P-touch Label Printer RemovableDisk + 2065 PT-P750W P-Touch Label Writer 2074 PT-D600 P-touch Label Printer 209b QL-800 Label Printer 209c QL-810W Label Printer @@ -7439,6 +7441,7 @@ 03dd PTH-460 [Intuos Pro BT (S)] tablet 03ec DTH134 [DTH134] touchscreen 03ed DTC121 [DTC121] touchscreen + 03f0 DTH135 [Movink 13] 0400 PenPartner 4x5 4001 TPC4001 4004 TPC4004 @@ -9049,6 +9052,7 @@ 0752 micros Reader 0760 USB 2.0 Card Reader/Writer 0761 Genesys Mass Storage Device + 0769 SPR2801S [Lightspeeur 2801] 0780 USBFS DFU Adapter 07a0 Pen Flash 0880 Wasp (SL-6612) @@ -10898,7 +10902,7 @@ 0056 Agfa AP1100 Photo Printer 005d Mobile Mass Storage 005f Laser Pro LL [MFPrinter] - 0062 XG-76NA 802.11bg + 0062 XG-76NA / XG-760N 802.11b/g Wireless adapter 0078 Laser Pro Monochrome MFP 079d Alfadata Computer Corp. 0201 GamePort Adapter @@ -11169,6 +11173,7 @@ 1228 MPEG-2 Capture Device (M038) 1830 AVerTV Volar Video Capture (H830) 1871 TD310 DVB-T/T2/C dongle + 2553 Live Gamer Ultra 2.1 3835 AVerTV Volar Green HD (A835B) 850a AverTV Volar Black HD (A850) 850b AverTV Red HD+ (A850T) @@ -11180,6 +11185,7 @@ b300 A300 DVB-T TV receiver b800 MR800 FM Radio c039 DVD EZMaker 7 + d553 Live Gamer Ultra Pro-RGB e880 MPEG-2 Capture Device (E880) e882 MPEG-2 Capture Device (E882) 07cb Kingmax Technology, Inc. @@ -12286,7 +12292,7 @@ 0a0b WLU5053 802.11abgn Wireless Module [Broadcom BCM43236B] 0a13 AX88179 Gigabit Ethernet [Toshiba] 0b05 PX1220E-1G25 External hard drive - 0b09 PX1396E-3T01 External hard drive + 0b09 PX139xE 3.5 External HDD 0b1a STOR.E ALU 2S 1300 Wireless Broadband (CDMA EV-DO) SM-Bus Minicard Status Port 1301 Wireless Broadband (CDMA EV-DO) Minicard Status Port @@ -12420,6 +12426,7 @@ 010f nanoKONTROL studio controller 0117 nanoKONTROL2 MIDI Controller 012f SQ-1 + 0154 NTS-1 digital kit mkII 0203 KRONOS 0f03 K-Series K61P MIDI studio controller 0945 Pasco Scientific @@ -13004,6 +13011,7 @@ 5803 BCM5880 Secure Applications Processor with secure keyboard 5804 BCM5880 Secure Applications Processor with fingerprint swipe sensor 5832 BCM5880 Secure Applications Processor Smartcard reader + 5843 BCM58200 ControlVault 3 (FingerPrint sensor + Contacted SmartCard) 6300 Pirelli Remote NDIS Device 6410 BCM20703A1 Bluetooth 4.1 + LE bd11 BCM4320 802.11bg Wireless Adapter @@ -13020,11 +13028,14 @@ 0009 LP2844 Printer 0027 ZTC LP2844-Z-200dpi 0050 P120i / WM120i + 0062 GK420d Label Printer + 0065 ZM400 Label Printer 0080 GK420d Label Printer 0081 GK420t Label Printer 0084 GX420d Desktop Label Printer 008b HC100 wristbands Printer 008c ZP 450 Printer + 00a1 TLP2824 Plus 00d1 GC420d Label Printer 0110 ZD500 Desktop Label Printer 011c ZD410 Direct Thermal Label Printer @@ -13035,6 +13046,7 @@ 0010 MPMan MP-F40 MP3 Player 0a66 ClearCube Technology 0a67 Medeli Electronics Co., Ltd + ffff LCS Audio 0a68 Comaide Corp. 0a69 Chroma ate, Inc. 0a6b Green House Co., Ltd @@ -13246,10 +13258,11 @@ 0ac9 Micro Solutions, Inc. 0000 Backpack CD-ReWriter 0001 BACKPACK 2 Cable - 0010 BACKPACK + 0010 BACKPACK CD Drive 0011 Backpack 40GB Hard Drive 0110 BACKPACK 0111 BackPack + 10ff BACKPACK 1234 BACKPACK 0aca OPEN Networks Ltd 1060 OPEN NT1 Plus II @@ -13308,7 +13321,7 @@ 3102 MemoryStick Card Reader 3201 MMC/SD+MemoryStick Card Reader 3216 HS Card Reader - 3260 7-in-1 Card Reader + 3260 ND3260 7-in-1 Card Reader 5010 ND5010 Card Reader 0af0 Option 5000 UMTS Card @@ -13382,6 +13395,7 @@ 17a0 Xonar U3 sound card 17a1 Eee Note EA800 (mass storage mode) 17ab USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU] + 17b5 Broadcom BCM20702A0 Bluetooth 17ba N10 Nano 802.11n Network Adapter [Realtek RTL8192CU] 17c2 ROG Spitfire 17c7 WL-330NUL From nobody Tue Sep 3 14:02:06 2024 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 4WynPB6SL3z5PZyM; Tue, 03 Sep 2024 14:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WynPB4R4zz4r4Z; Tue, 3 Sep 2024 14:02:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725372126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TH+wtYT9NQgbqBS3v0V2MnpwRhBGv2UUgR6+iA6P2eI=; b=ehhP/XfEULNahIIKt2xw3/BaCtuKINcDw9jHj34MGxL1ACR8b53DiJ84KD0RZmKNcuVOFJ DSQV/0DptALdvRa65XqvwksMZFdFLwYJZ/YkNM5IIzQ8Y85jqMwB5M9G9girFTTD4SK2yg /FAnYIe4Xcc+hXuDZLuDgvi51q1de/eE2y+pByMCBkmSxx02vx55FaGzjF1XqgbG6r4kdP uMnjDY30rVmg6D53NxDA28QBk+GrT2BoYAi75ByP0wtZg2OaS6lN4lEQWAtUgBEyxnDYYx WYz1eE+HaBZcuH9clTi2kk++NGfpaIUZmdDTIWdViMC5WprEnMovCaPe6VKXwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725372126; a=rsa-sha256; cv=none; b=Gi6F+b5W2cnB/gNi+j/5wESbY9bb+CEScCrQ+FqR+osoWPhb3CA3XfkPCuFXKchOuc+T8C puGEHuO8yB45pIdF467OmP4+mccTaQwqi+YIopbvLgk1Z5XFRTxzFsotxqduRIKb/SV1Fg 5B5Cgpc8KFaaoQ2Lpmcgrhz4Fgm6WLM5JbdxblooHZV0iGTtHA8UnnYyeE2EYeB41BRlgx ULpMAPTODuf6C5JgCnz0Cf6WqJ9H12esG6PWpnQ9dy8gL9N8x/xbGzAfAIXX2IPi641+ky fmCdfILSsGekZz3jlrd/mm3az3vWsrCjhj1bh6pOXgK0ykdAXSaxcsUdJX97KA== 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=1725372126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TH+wtYT9NQgbqBS3v0V2MnpwRhBGv2UUgR6+iA6P2eI=; b=NHzu32Vd525xuoZ4+ulrpVTzBCTeUWIoJSRlfSDUZd5DZhLNnkOV9zPGoImhtU47XaD849 MySmlfOpYcHcv8hChoGQNwJvOrLLfnel84yCfCKwpOqKAIVgAQ42yyVDdL1XhL5AFFXxNZ ml01EH+47Mlak2CtG5zRin9yhAo+BpLvSeRVNwzX8un0oCjSDjtOdkF7YiaFudZsMYViqa kGvG4dheQuGLDw4QZbqvjd2rKrtxPeBx8DR+r9UBZFTDqXBoTf+zcjDZQwlt8S6zAmlrAf exnE4V7QPafzh5/or04VA9GeUUwcbLdQxerLFeDWttMvcnfQlwgHxYqgA8EOMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WynPB427LzjlY; Tue, 3 Sep 2024 14:02:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483E26EI084534; Tue, 3 Sep 2024 14:02:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483E26V5084531; Tue, 3 Sep 2024 14:02:06 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:02:06 GMT Message-Id: <202409031402.483E26V5084531@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 9e8d504bb5a1 - stable/14 - pam_xdg: Fix user xdg runtime directory's descriptor leak 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 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/14 X-Git-Reftype: branch X-Git-Commit: 9e8d504bb5a1e7ede55814069e213d4702172b81 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=9e8d504bb5a1e7ede55814069e213d4702172b81 commit 9e8d504bb5a1e7ede55814069e213d4702172b81 Author: Olivier Certner AuthorDate: 2024-08-13 21:04:09 +0000 Commit: Olivier Certner CommitDate: 2024-09-03 13:28:58 +0000 pam_xdg: Fix user xdg runtime directory's descriptor leak Approved by: emaste (mentor) Fixes: 6e69612d5df1 ("pam: Add pam_xdg module") MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 06986e899972ac3a127ab2ab46196672d0e1e5b2) Approved by: emaste (mentor) --- lib/libpam/modules/pam_xdg/pam_xdg.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libpam/modules/pam_xdg/pam_xdg.c b/lib/libpam/modules/pam_xdg/pam_xdg.c index 2c80f0a0332f..10c6467776a3 100644 --- a/lib/libpam/modules/pam_xdg/pam_xdg.c +++ b/lib/libpam/modules/pam_xdg/pam_xdg.c @@ -108,6 +108,7 @@ _pam_xdg_open(pam_handle_t *pamh, int flags __unused, goto out; } } else { + close(rt_dir); /* Check that the already create dir is correctly owned */ rv = fstatat(rt_dir_prefix, user, &sb, 0); if (rv == -1) { From nobody Tue Sep 3 14:53:52 2024 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 4WypXw3XN7z5TMr7; Tue, 03 Sep 2024 14:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypXw1vnwz4wfR; Tue, 3 Sep 2024 14:53:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lV3D72rVYW0me+RstxspdDDS552mmUPIOICvniRP+wI=; b=aRaO1T1LhgeJ5w80vLyaJjDx8zUiIsPGB+9cgArFfCbWFNf09Xb4PJbLK/+8bv534aExtu GeFfRwVVJuTDMvqTPPqeeIcUnRLYQGsJOI8NDnJ58EY2m4XAY2iVcd2+OfmUHGHbv/ZT8P oUwjXFHhEWwQSZbbYlwaYR0xN+FH0oUsBjDmcAlDK0d1NsWrl645b+LI7w/wgtH4IR103z gss4QHDNJmMvZtjk/IpUc4R4sF2H6RCUo2LXVNZUguVqEeND+avyiXjHvCH5wty/KUFryi EODEtpvDkNLDNXqodXBh/zgKysgD6w9M/8V5bVqotGX2TGTcUB8zkscZAkTvjw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375232; a=rsa-sha256; cv=none; b=VmbRFHiMjibxrnaEGmMsQKGJzOyxNfDBcFz7v19ZHHnZbW5ivguoQQGJvKNF/+5BPlISYJ Nn9Qr59sSDjlNPt8DSAXyqsgKIaxbAI/CNjfroJ+A9ZG2I8q8ZvC4om2gJJq/7DL6kkuAJ Zb6ze+cotlSLktxay9abTeY8O2pNmJ3G6SWVgEdrQRvSd+hsotQSJZwGSD9ZWtxV72yTYB tK0x1TeLBYBNZpwJbjZssUKR3XYTJeOOK6JaBm2Dgyt71T0yocsaERMfN+53lume/2k4wt znBItDxd1J+A+DalkGcgdiY1XXzxcxAEw8AjfB4fx6MvtMj3jvn+KEXra2gS0A== 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=1725375232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lV3D72rVYW0me+RstxspdDDS552mmUPIOICvniRP+wI=; b=sAVAPkc/Z2zcclCFkMz3XYHvR7z5gRjB72FXwYv1CgvWT0At6QKrjope8zrJ4yQsrb69NR IfEMik6Hm8gq/TFFF1tt1ftAHCSnPgH5awkKUls5eUI0kX4sH2bErW/WtrN1g/XFyuo+cc 8loQ37qtO2iOhyVmJFjsiUgJMOLQBdCg01FfXuNnMEpJvAY3p90fcTC7LYCQJr7TOK7OxS 8NxdzXZnnpnDHb6OPH8U+UkhKjuDgr79lzG9x777BOzdUOXod2zo2fy4QK+Nd0YAWebtVe G1No32YiupUuEw6h+feNi85oyNF5bbHyGtDCMysIVodIgO7jJm+BrO7itbSx5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypXw1VhWzlcJ; Tue, 3 Sep 2024 14:53:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483ErqRl070098; Tue, 3 Sep 2024 14:53:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483ErqW8070095; Tue, 3 Sep 2024 14:53:52 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:53:52 GMT Message-Id: <202409031453.483ErqW8070095@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 4a81e501337c - stable/14 - bhyve: avoid updating fbaddr when vm_mmap_memseg fails 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 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: 4a81e501337cf160d56af2d638f080983e520654 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4a81e501337cf160d56af2d638f080983e520654 commit 4a81e501337cf160d56af2d638f080983e520654 Author: Pierre Pronchery AuthorDate: 2024-07-24 20:51:20 +0000 Commit: Ed Maste CommitDate: 2024-09-03 14:53:19 +0000 bhyve: avoid updating fbaddr when vm_mmap_memseg fails In the function pci_fbuf_baraddr the field sc->fbaddr was set with a user-controlled value, even though the call to vm_mmap_memseg failed. No security risk as currently sc->fbaddr is not really used in the source code. Reported by: Synacktiv Reviewed by: emaste Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D46109 (cherry picked from commit 85707cfdaddc179af8bd2623091eb1b8c58fed4a) --- usr.sbin/bhyve/pci_fbuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_fbuf.c b/usr.sbin/bhyve/pci_fbuf.c index a6bf508a46e6..e2d34cfef639 100644 --- a/usr.sbin/bhyve/pci_fbuf.c +++ b/usr.sbin/bhyve/pci_fbuf.c @@ -232,7 +232,8 @@ pci_fbuf_baraddr(struct pci_devinst *pi, int baridx, int enabled, if (vm_mmap_memseg(pi->pi_vmctx, address, VM_FRAMEBUFFER, 0, FB_SIZE, prot) != 0) EPRINTLN("pci_fbuf: mmap_memseg failed"); - sc->fbaddr = address; + else + sc->fbaddr = address; } } From nobody Tue Sep 3 14:54:58 2024 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 4WypZB6ZKbz5TMlX; Tue, 03 Sep 2024 14:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZB3ysdz4xBD; Tue, 3 Sep 2024 14:54:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XMH1ED77LWo1bALTW7Qcwc3tRoo7kSkPSrUx4ha5cHc=; b=kC+R6dX1N4Lm+f5dkeRjtHCHo++ubFxqvlfCS7aK9FAYoRGtkUAw5+UIO3OlFpZ/vrZE9I 7mokoaduOdzK9Esgi7hKVXFeO30eOEs+weYsFIsrws4o9WZ5Z9qAT58P+LNc8hRD9jdcgu ikVdIUmKxNUuu92MZNmk0wuazuFbo8KjDoR2IN7yaqUIYdcOT18CfwhRBRxmLKDvPEash5 0EA6dDe9cWutGuAw+GfAac/pXZVjxjx4oWZvmWSZk8gbsCPy7MhQJvAQ7ltALN/8yiC2o8 OGmUrA5cac5w+QS1ADeCZhOo4nhlDk0nBW3neLwvnG7secGzI3+q2xFKRa5Szg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375298; a=rsa-sha256; cv=none; b=YZrDCz9Z8w//SpBCW/Eo+b8cFyRwk4A/5lHWApLLhmh7vtEL0heK4WWLA+kVBnGFRYaDpj ARacrVVxLLfizKhukEUvF0ks7VzXCLQ8rggW4/D8xrB0YDjl8yEBgzWbfu0CMlNgcUf7ex e8ZQXexIm+3i/lGRhu6YwCEcXUFPI9y1v9JWt34Susp160iHLYKD4ZgedB70mYZJFHnGty /Hk1whvEPxadSeH5chfV5gPdtLfXXbv4AP9HoFyTBMI7LeC3TXHbESXwzZXVwZezds7/kz +8RDGUDZ51LFmT1mIXQ/OfeXq+fzbSr8RXi6cW2wRC+h71VKNMCEimwEEADqNA== 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=1725375298; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XMH1ED77LWo1bALTW7Qcwc3tRoo7kSkPSrUx4ha5cHc=; b=prxFxiPWbTd1a5+Tql8CLvH1mQh0TaSajhY8UrFLH2YqQoYVYOxABuP8DlxUShthzafBdG lYnEdgBtPxf+blnJBhMUuyC0fJGstw5BF3VQ7wceUuVNHqfCfneqUgW5dU2KcmHBCBqW00 CTR11BYCEiyGtviyjmOFqcUmqfarkeQLfKe0SN0HRjzqLPQH1SiW6MKkV/IqLSR0IWzMjF l/n33IBrqonXz4/+T7p8p/Eo79J+eJ1odhMKbteL5l8pAM6T3wgaSo+hbhS/S9oW5YyjjZ olvP1bZVUTBQwcws5D9zjQJLQ2XZQiDgTQxnA1E6wvN1nXOG7qhvMX1T69wMnw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZB3X6Rzlr9; Tue, 3 Sep 2024 14:54:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483EswoH070420; Tue, 3 Sep 2024 14:54:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483EswPb070417; Tue, 3 Sep 2024 14:54:58 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:54:58 GMT Message-Id: <202409031454.483EswPb070417@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1c8d1f51302e - stable/14 - turnstile: Mention the lock name when panicking due to a sleeping thread 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 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: 1c8d1f51302e1c6a177240936384245da3b859f7 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1c8d1f51302e1c6a177240936384245da3b859f7 commit 1c8d1f51302e1c6a177240936384245da3b859f7 Author: Mark Johnston AuthorDate: 2024-08-10 15:42:35 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:42 +0000 turnstile: Mention the lock name when panicking due to a sleeping thread This will hopefully make it a bit easier to track down the cause of such panics. MFC after: 2 weeks (cherry picked from commit aea9dba46b81abc5c0fd4c42d3ac762d3bc1de37) --- sys/kern/subr_turnstile.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_turnstile.c b/sys/kern/subr_turnstile.c index 0a20f3163e30..544dd9f52e9c 100644 --- a/sys/kern/subr_turnstile.c +++ b/sys/kern/subr_turnstile.c @@ -246,7 +246,8 @@ propagate_priority(struct thread *td) "Sleeping thread (tid %d, pid %d) owns a non-sleepable lock\n", td->td_tid, td->td_proc->p_pid); kdb_backtrace_thread(td); - panic("sleeping thread"); + panic("sleeping thread holds %s", + ts->ts_lockobj->lo_name); } /* From nobody Tue Sep 3 14:54:59 2024 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 4WypZD0412z5TMsm; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZC4tXTz4x7m; Tue, 3 Sep 2024 14:54:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cRLvVQLRbcc8PvsrtZYEoZureX60mnMauwi05ghPDFU=; b=rgjXwL/Or/mAt+O0audph+U9EyIhJjo/M0AAaiSb76GysOiY2tG63DeEy1obYSfJP62IJO hxy8zNos1XryvtIcUj4+BScbEChEbWxnZOQaNmh+n2yezAZqesCDFRY6uuWvg32nfxIAVK 7T4BDsxwv8pdklRGivCLR1s7XmHXSacTr7Wf6fsuk/PtcYXnkPNYphYYk+NK5ErxskbCfj 3+ao9OijJxn8R/lkb4qb2vMyj1Pa0vag2awLjF903PuGXftnbFJWCYs17iwCpWPoB9CPS7 T3ugUYRgdjcAjku18uGNgvdWWra1QFjp+9gG3K107lJ4uFZS26UXNkMAHE9nVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375299; a=rsa-sha256; cv=none; b=wM4XEvhNS6ZZG8eGm3NF5cgrBLZz26bXQPZBTjhJSmxNeNOHhWjALe2N3iIQ3p/6+rnkCd aCHUEX6QQc+eia89kqZUr28XBhjkG1Bm5Ptg8hfc4rs1TmQSsNYwVrDCCc9MRFl4pUutXI 9oQdSG0mcULQmwqlkFH/Cyg0shDqTTqSnbqoIZKI3uP316lB1EBoxuVbEtnzkAMyELwKu6 r/OjYfR3jZwk2f6lcZ4n8ILCfeq9LM1YezsxoWZJkuACiYCo0pDQ8tIoWS7rhON2zHlc03 XOaV07dj3m0mdgBTI0xWf+jU0AmLulx11/4VlX52eRG+teavGqCRHDJRqDM0aw== 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=1725375299; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cRLvVQLRbcc8PvsrtZYEoZureX60mnMauwi05ghPDFU=; b=rdqgX/acoZnX+c7ECxchxc3ntMTzfM4wNi7Oi1OzEIfnzjH5EUT6K8TMkE956RLN2IfUxY NVq8MIglvO5RW6naWFdMivIcbxJPzthxeQNgzXhueK7ElUEBrGMUSqLd5bVKrS4U09qwcy uFdcLTuXZ/HGn4wBlIPGk12lAO9cMklbCidxh5kkhq9QXSRfmhyd3OV8BirYDJMeCk3Xdx U0kMWre7Q29WGyULVXCcL8ho10MxoF+TBmtjuHaMAk3gibfJAYdpYNVxpqM+HvqTbhUp3W tEPf8AyOJ1qiXUnH1FYSEhggf1fkWRobPm+X5j+aD+ctWXqiMC4avenOzkhiGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZC4V1tzlrB; Tue, 3 Sep 2024 14:54:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483EsxNg070486; Tue, 3 Sep 2024 14:54:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483EsxjL070483; Tue, 3 Sep 2024 14:54:59 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:54:59 GMT Message-Id: <202409031454.483EsxjL070483@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 12a9d85c716c - stable/14 - build.7: Document the packages target 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 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: 12a9d85c716c63742f320e1df1f4057459e67b05 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=12a9d85c716c63742f320e1df1f4057459e67b05 commit 12a9d85c716c63742f320e1df1f4057459e67b05 Author: Mark Johnston AuthorDate: 2024-08-19 14:07:37 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:42 +0000 build.7: Document the packages target Reviewed by: manu, emaste MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D46286 (cherry picked from commit 1d26746cfd4a19e9d641ecd2a21e764743a7bc03) --- share/man/man7/build.7 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/share/man/man7/build.7 b/share/man/man7/build.7 index 79c05f5ab63a..427f01e1223d 100644 --- a/share/man/man7/build.7 +++ b/share/man/man7/build.7 @@ -401,6 +401,19 @@ Install the kernel to the directory .Pa ${DISTDIR}/kernel/boot/kernel . This target is used while building a release; see .Xr release 7 . +.It Cm packages +Create a +.Xr pkg 7 +repository containing packages that can be used to create or upgrade an +installation of the base system. +The output repository is placed in the object directory, under +.Pa repo/${PKG_ABI} +where +.Va PKG_ABI +is the +.Xr pkg 7 +ABI for the build target, for example, +.Pa /usr/obj/${SRCDIR}/repo/FreeBSD:15:amd64 . .It Cm packagekernel Archive the results of .Cm distributekernel , From nobody Tue Sep 3 14:55:00 2024 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 4WypZF2Nncz5TN8t; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZD5wkJz4xBF; Tue, 3 Sep 2024 14:55:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kk/xarI3yKww3lRQM/QewRgNAu7V9aEU3WRjGeFjLWg=; b=xj/JcbhWnApovRlKzxb5THUVV9qdBTtUSCkddlcvM9+kX6GehLfrDLTva+sP13vgxKIwRa xPJmsKCvb2LA2ljbKSXVDlNKEL2RnlVBelWUNXipg7TyKtRav4fwXkm0zglUDrtO/haMD3 bHE06EjlF/2Ak4cJG7TZvUtRno7/wP+qdnOEW0G9W70exq/1mb8N30qiTJTzwVwZubnLlC TI/pd3rRtRFYQu+AKENT4T/ToQWKeKOFTuPksAZw0HFYpg0+wRC7A0vwed/rl8SUej/FqR lA+R8OSAlZc/2udO4PViGUcaUvBYuTnJJ5SGhb/bgByl/W55L/4lv1UyWDb/Kg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375300; a=rsa-sha256; cv=none; b=Y7kjS7BUj56Jr7tpRfgE88+sp7kiiNHDu18jLmUb+THXwxBvaJPfXY955En2Q2oINkPvHe Wz0/USaWY4ZC1P2aPpvTx+afv+YgYsMmsfvlWLZC1chJzxx5wOAmMRpSw2VYwEXzPupnM6 7j8alqfscesGAGWnZasjM5Ay4Ion2j8wyHi0moFdc4jOsPR8v71x3zns04927xlz5aMQfj D5VIxcotCdJv88PXk9NtjGYHKey0zTDNHyDwejCb4/iVaPZQaVYKu2xWI74Uv8Oirbqoch LbXHcHUEPt7MhguUr3slTBgtVMcDW57Mbhvy5rpJPfURoFJ+7m/Q/hVKLeiDOw== 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=1725375300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kk/xarI3yKww3lRQM/QewRgNAu7V9aEU3WRjGeFjLWg=; b=ww+niR2XkTedh3hEKGnTK24f6wzpKzwm5ZIMF+KjTpl1N7CGW4a75soV4wxTe5X/0zWrRp o+1QtERS2wN3Aagtyp6qDO5VeiEjhFzC3Tj89peBFuB7iLSdWACYk8mKqsLEhS77rYkEiH q576PZzfWbAYzU9F8ukNcx6YX3WPCl/9ydXUC0fGaYxGjeZa11cmYBS8sdQtHyjRPl9bMj CVsF2Htg+W+YGcR48g+52S3mxYfP2od/wODToJysteVJXUTCnZtYmBOp+X0Hif3d8t9FL4 CaQiO4RVqdYdFX9jLFpIl5fAobgzjA5ITWNvFeQqQTU4UO4WtGjLu15v87LApg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZD5XVbzlld; Tue, 3 Sep 2024 14:55:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et0Bj070580; Tue, 3 Sep 2024 14:55:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et0Dn070577; Tue, 3 Sep 2024 14:55:00 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:00 GMT Message-Id: <202409031455.483Et0Dn070577@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8ae58e0edbfb - stable/14 - netinet: Add a sysctl to allow disabling connections to INADDR_ANY 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 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: 8ae58e0edbfb4c56125fb6d7468ebfea638847b9 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8ae58e0edbfb4c56125fb6d7468ebfea638847b9 commit 8ae58e0edbfb4c56125fb6d7468ebfea638847b9 Author: Mark Johnston AuthorDate: 2024-08-20 21:31:57 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:42 +0000 netinet: Add a sysctl to allow disabling connections to INADDR_ANY See the discussion in Bugzilla PR 280705 for context. PR: 280705 MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D46259 (cherry picked from commit 417b35a97b7669eb0bf417b43e97cccbedbce6f9) --- sys/netinet/in_pcb.c | 8 +++++++- sys/netinet6/in6_pcb.c | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 0fffd285fb17..897a3ef991d5 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -236,6 +236,12 @@ in_pcbhashseed_init(void) VNET_SYSINIT(in_pcbhashseed_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, in_pcbhashseed_init, 0); +VNET_DEFINE_STATIC(int, connect_inaddr_wild) = 1; +#define V_connect_inaddr_wild VNET(connect_inaddr_wild) +SYSCTL_INT(_net_inet_ip, OID_AUTO, connect_inaddr_wild, + CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(connect_inaddr_wild), 0, + "Allow connecting to INADDR_ANY or INADDR_BROADCAST for connect(2)"); + static void in_pcbremhash(struct inpcb *); /* @@ -1311,7 +1317,7 @@ in_pcbconnect_setup(struct inpcb *inp, struct sockaddr_in *sin, inp->inp_flowtype = hash_type; } #endif - if (!CK_STAILQ_EMPTY(&V_in_ifaddrhead)) { + if (V_connect_inaddr_wild && !CK_STAILQ_EMPTY(&V_in_ifaddrhead)) { /* * If the destination address is INADDR_ANY, * use the primary local address. diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index 90f91eef1daa..8046e0fa530d 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -85,6 +85,7 @@ #include #include #include +#include #include #include #include @@ -99,6 +100,7 @@ #include #include #include +#include #include #include @@ -114,6 +116,14 @@ #include #include +SYSCTL_DECL(_net_inet6); +SYSCTL_DECL(_net_inet6_ip6); +VNET_DEFINE_STATIC(int, connect_in6addr_wild) = 1; +#define V_connect_in6addr_wild VNET(connect_in6addr_wild) +SYSCTL_INT(_net_inet6_ip6, OID_AUTO, connect_in6addr_wild, + CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(connect_in6addr_wild), 0, + "Allow connecting to the unspecified address for connect(2)"); + int in6_pcbsetport(struct in6_addr *laddr, struct inpcb *inp, struct ucred *cred) { @@ -353,7 +363,7 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6, if ((error = sa6_embedscope(sin6, V_ip6_use_defzone)) != 0) return(error); - if (!CK_STAILQ_EMPTY(&V_in6_ifaddrhead)) { + if (V_connect_in6addr_wild && !CK_STAILQ_EMPTY(&V_in6_ifaddrhead)) { /* * If the destination address is UNSPECIFIED addr, * use the loopback addr, e.g ::1. From nobody Tue Sep 3 14:55:01 2024 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 4WypZG183Dz5TMhV; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZF6x6bz4x3M; Tue, 3 Sep 2024 14:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UddM1j+QYj4lQqe85lOOMe8+oRAZoK2FJF17PJ0Z8+Q=; b=Sf4qvLwXetNrK1yDDmYAQuI0WeW6eORNfkyh1XG3Byyx+riOdrCMe6i//+GZF+ffGv15pB u8cDoui0A9JpSlGQ+nyn4EN4ojjePSohbYHy1kfGuVmleRrGMY8WEUEEyF08krKpF1xzQ3 xJcahUT3nkamdO7VLrjEK1utc96r51Mm3QaH6580wvhpk10DS7iv9q29zpRvLseawzv5mE BfwEttMfL5INZpij3gqt+iyqB2F+2FWfjbbmHmi7uOylFLpvM1yNgtt+Co09ZxEs/ULWat Ya2Du3833sNuTB6j9qwSJ+N6x6ZA2KjwmFmkpPGhwgshyUXM8iBtXYSyHkFuzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375302; a=rsa-sha256; cv=none; b=Ohc9FTeMEqtGlgzmN5joed+EVvvhxAGr7VttTpZZCI2uQQo0mPZ3i53wxQ3Vz+JymWrq2x dHwN4bnmzU9KMYigmViDc28OOltPnApJYci3vNcjWTJG4rbJJsjDhDy2Lx2tXeBJaxI3ZY rQBBPlzcWw1P9QL2XOLX+dqeQ53sQYYp4y73l5Lu/ccVIqjlZTmpfZEG9IEqoXEtuEwaRN pBMjlTi53IBrs//4R3e54HnS5spKUrVrLPp8T7NPPbJUZeqcRYmt1Gwcu2NfuJr6KLJotr 5MPOuc7uOP2ig/Mt6gSHBaQhW55NXQqbJA+G+XSadvADyJVTNMEYNtZ7pNgflA== 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=1725375302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UddM1j+QYj4lQqe85lOOMe8+oRAZoK2FJF17PJ0Z8+Q=; b=b7xKhaBGLEg88PZMm2a5mJTx8wuPDC6xVUR/rjSIkYDhqG2Or7RBLm4AYayzpbMt0nMAqZ LqRTf3foB26F49DeVCynvgPkNhKWFCFHyA9WftZjXz/VLXxH5JFXpY25LDiha4ptLc0Q/1 o/kfyosYjNM/Au4gloJv88mwPscgGq4Y8rOcJ2uSSsAg1Pvl6Wx3lPuLyQY0lqsfqaon2z ehhNyW5syxF00KEAiB2H4hd+xHIlJD+s0yrOunUwIN6VBtMVXDENW4QcZkuvXiydtkFoJE 1qJQqvm13i6t32sqAVCjrYTRUhTj/8n+r4FREssHv7jT/rrj8SuOCPk0zsr67A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZF6Y5Zzllf; Tue, 3 Sep 2024 14:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et1sK070634; Tue, 3 Sep 2024 14:55:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et1W1070631; Tue, 3 Sep 2024 14:55:01 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:01 GMT Message-Id: <202409031455.483Et1W1070631@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1e8b00a1cbc8 - stable/14 - libgeom: Avoid fixed remappings of the devstat device 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 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: 1e8b00a1cbc801d0961482e81f9fc13d32d71e71 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1e8b00a1cbc801d0961482e81f9fc13d32d71e71 commit 1e8b00a1cbc801d0961482e81f9fc13d32d71e71 Author: Mark Johnston AuthorDate: 2024-08-19 16:02:26 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:42 +0000 libgeom: Avoid fixed remappings of the devstat device libgeom maintains a quasi-private mapping of /dev/devstat, which might grow over time if new devices appear. When the mapping needs to be expanded, the old mapping is passed as a hint, but this appears to be unnecessary. Simplify and improve things a bit: - stop passing a hint when remapping, - don't creat a mapping in geom_stats_open(), as geom_stats_resync() will create it for us, - check for errors from munmap(). Reviewed by: imp, asomers Tested by: asomers MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D46294 (cherry picked from commit d06fe346eccf0919a29d43599548e49c0d6a7a17) --- lib/libgeom/geom_stats.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/lib/libgeom/geom_stats.c b/lib/libgeom/geom_stats.c index 7ae5c947b7b1..510636eb9a8b 100644 --- a/lib/libgeom/geom_stats.c +++ b/lib/libgeom/geom_stats.c @@ -54,9 +54,12 @@ geom_stats_close(void) { if (statsfd == -1) return; - munmap(statp, npages * pagesize); - statp = NULL; - close (statsfd); + if (statp != NULL) { + if (munmap(statp, npages * pagesize) != 0) + err(1, "munmap"); + statp = NULL; + } + close(statsfd); statsfd = -1; } @@ -73,22 +76,18 @@ geom_stats_resync(void) if (error) err(1, "DIOCGMEDIASIZE(" _PATH_DEV DEVSTAT_DEVICE_NAME ")"); - munmap(statp, npages * pagesize); - p = mmap(statp, mediasize, PROT_READ, MAP_SHARED, statsfd, 0); + if (statp != NULL && munmap(statp, npages * pagesize) != 0) + err(1, "munmap"); + p = mmap(NULL, mediasize, PROT_READ, MAP_SHARED, statsfd, 0); if (p == MAP_FAILED) - err(1, "mmap(/dev/devstat):"); - else { - statp = p; - npages = mediasize / pagesize; - } + err(1, "mmap(/dev/devstat)"); + statp = p; + npages = mediasize / pagesize; } int geom_stats_open(void) { - int error; - void *p; - if (statsfd != -1) return (EBUSY); statsfd = open(_PATH_DEV DEVSTAT_DEVICE_NAME, O_RDONLY); @@ -96,15 +95,6 @@ geom_stats_open(void) return (errno); pagesize = getpagesize(); spp = pagesize / sizeof(struct devstat); - p = mmap(NULL, pagesize, PROT_READ, MAP_SHARED, statsfd, 0); - if (p == MAP_FAILED) { - error = errno; - close(statsfd); - statsfd = -1; - errno = error; - return (error); - } - statp = p; npages = 1; geom_stats_resync(); return (0); From nobody Tue Sep 3 14:55:02 2024 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 4WypZH1TgQz5TMld; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZH0hNwz4wpm; Tue, 3 Sep 2024 14:55:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5bjVY8Fp78RFv0HBmWsPiIQbL32+VclYorvjvh4F3cM=; b=P37VCCi6LSejBZS112up1EYMFnftlEzmeZ9fvpTc7QGTS7iunbBTbFtyR9nt1PI0hoZrFd BpDhsGqOaGET1TBNaLgqHDlwC73kemq6JM/te8FSwHuQOBRShy33/qgEZefzHKeOBbodNG 8Dd3Yd7omU7OMVTuyxqVWCGw84wHlfpFM6vRB2fMGFa69zoRnomfc5g4r6Xa5O215YBj62 GP8QJnTOPea673O8JMK4tZVDwmTGUeL7ALNdavrf8J6uWDcge30erchjou66wqvrHmRDpz 0CkjFfZeHlqr7BA0BoUi0mkeXK19D8uj1oFLLNMnsjyYUlhIyW+mJrqqTVrw9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375303; a=rsa-sha256; cv=none; b=NLEk15adg3pCxKua3XSz3Hx7jakVewouwRtzvp8fVS7V0LKahHeVqaJpGIqAkizL9LhAeZ DYlgYQhdX+9b4o8jC+kjP+t72o879Y3OdEFtLLyCOHPHoOLD/8Uzaq6MX2bUpVQaOXGqs6 I1r+41FzLL4j/ai9T04pPKqjEDQTfMNVkqpIbFIo/GFZYlKSSXBW877RH4FH0MFTeyWlXr 9/1Xm/2mKEG+i9GMVJ8Tz/Bxxc5uMLwDbYqbe1yUndsFdtbx86FQSS4EvqwTxEAPZZg8dW KV8wRTbhO9E8bxb5JN+kIp/Krtr6wdkLWBCGAhiaYzmBVLhlVYXK31iezCXn9w== 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=1725375303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5bjVY8Fp78RFv0HBmWsPiIQbL32+VclYorvjvh4F3cM=; b=Unh1wcURZ4+80B4wrC6FmMSWI5Ge1EyVajB/uwCuJdkFKmxm2RRMNsVFAq3E6Lda7VoHjy /BOtJDjFoUDp/+JfRj1NK2XiNyWhAh9XR4Pf5Fzbs3u/PZWL5+yQz9umYU0hkGWLmT8/Wx tQmMUDLyrzANAO1M/kewbe5nv1Q0DTO699RtNY8HSQ39st5hanzQkKFPbp/qi3bUOr8T/I 1sg9YNEuNurx3neJcnTjmQa7n7g8mjnFm3kU8a25lagk+HaiTlkaVmvOEMj6Dc3S9q8LOs rDjTCo+Z9GGCJ3e3FdSHeZLLhxsmA8MzUT8xRM7/g0pO0GeueFuC5h9LesgI0A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZH0Jcxzl7t; Tue, 3 Sep 2024 14:55:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et2W8070685; Tue, 3 Sep 2024 14:55:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et2qc070682; Tue, 3 Sep 2024 14:55:02 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:02 GMT Message-Id: <202409031455.483Et2qc070682@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: e6c6f46dd5ea - stable/14 - pkgbase: Avoid hard-coding the package prefix in generate-ucl.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 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: e6c6f46dd5ea100f291b49d9d580283d127d54db Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e6c6f46dd5ea100f291b49d9d580283d127d54db commit e6c6f46dd5ea100f291b49d9d580283d127d54db Author: Mark Johnston AuthorDate: 2024-08-26 20:46:53 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 pkgbase: Avoid hard-coding the package prefix in generate-ucl.sh MFC after: 1 week Sponsored by: Innovate UK (cherry picked from commit b4dd5ff5f4f159a566c64e3348e67c33b80f2bbf) --- release/packages/generate-ucl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh index c7147a97a868..ec9cd0149228 100755 --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -133,7 +133,7 @@ main() { echo 'deps: {' >> ${uclfile} for dep in ${pkgdeps}; do cat <> ${uclfile} - FreeBSD-${dep}: { + ${PKG_NAME_PREFIX}-${dep}: { origin: "base", version: "${PKG_VERSION}" } From nobody Tue Sep 3 14:55:04 2024 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 4WypZJ43qqz5TMrL; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZJ1gsyz4xF0; Tue, 3 Sep 2024 14:55:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375304; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r9n3FCvIITpjyewOuO3p9IVQqiNcMAV6J8vUdHmAQtg=; b=rCoPTxfBXwAThx5D0qorIVMr32ht1SYD0B6eH+AwbBaj/iL+YyTtE1te7HSB1IYdLVAG3A tEZkVMsBviuMHOT9Kd/J+GIVRro/C3xY/YrVLgMobiZ3QhyNktuE5YzyVnfkRV+VKYD2CK Te6nqQZFnMVk/QnQvAnBiPQ2ARAzhqIZ8BrSfesjTZ42RH/TQ76uWmgplinX8xAE+YNv/L wDeH9ipHt3GgF4FlZEEnAq5YYH9Ju/oqFiCO49UKf2RELCbMkMs4jbWRGnoPHHV0XHOLl4 rJTkSher8t9xkiYQEt4f7w37z7A6bx3HsxfyilLEtujctn8FHIaEcNC0hQTd8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375304; a=rsa-sha256; cv=none; b=iSmgnGDlKKVB7irzDo5yEWwdbCmcydcia14LmRxZ6Fhfz3NkUc+DmfzcQU3/Hcog99klBF IWewLS9G1xBxSiLozn1MBUSRPktmXxxcy8Qb58C1ynD1z7GF6fJ6fIH85P53lR+hP2rXbB rpZeSQ4IiV/PuMeGAy7yQDYXqo7OplqA60mMvdfnMnWy4D1Z0BBw7rdx3s4w0LU73oZhSr MmHtxKnvtmF0OcHT3cYQ2eXHkHvaP8+esCR5mN4YovfUVVNDStLNd0juhZd9OF2cz8jXF0 ZXKNzytWHaIePYut/Lhfvumw0QEvHmV6P3ND2/C7zbRrqyX8UGbWcpCEYLl4SQ== 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=1725375304; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r9n3FCvIITpjyewOuO3p9IVQqiNcMAV6J8vUdHmAQtg=; b=nmFE4sErdaDRbnImyWZOjtpqNJ4/tLqmXvfaqqVOgetkAZJTlldlhZeY8tG4PrLszMM70V 0FHf+SzUrklWdoaPfkq5VGeTb71DevZGNrxYCWtOtiV1r/TEUIhs8VKK7x2/Rwi3vRA4oi 03me8eY0evkC5m3rVoUPR9TuPxzL8sf5F+HQ/6arRzEawyujm0oXGpjcNVLAbBcTy24KLB sUwIBJQuSWjaomwYGxx3GJNfkLdNZynZkdQmO8sUKbxjM4vENGNmTkChzmO2+NGamqGn0m a8pWvEWBBZFxTKSDOl+D3WbElIjszbCOyeb+kijbt6y/5j8WLLm6BTW/+LKmOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZJ1JDzzlSf; Tue, 3 Sep 2024 14:55:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et4Ik070726; Tue, 3 Sep 2024 14:55:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et4Ac070723; Tue, 3 Sep 2024 14:55:04 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:04 GMT Message-Id: <202409031455.483Et4Ac070723@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 20bef7f7c2e2 - stable/14 - socket: Split up soreceive_stream() 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 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: 20bef7f7c2e249a073a22677785b1c51a5ce36c2 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=20bef7f7c2e249a073a22677785b1c51a5ce36c2 commit 20bef7f7c2e249a073a22677785b1c51a5ce36c2 Author: Mark Johnston AuthorDate: 2024-08-19 14:20:03 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 socket: Split up soreceive_stream() Factor out the bits that run with the sock I/O lock held into a separate function. No functional change intended. Reviewed by: gallatin, glebius MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46303 (cherry picked from commit aa141adc039a5418d7b7800094115d861baf91a0) --- sys/kern/uipc_socket.c | 109 ++++++++++++++++++++++++++++--------------------- sys/sys/socketvar.h | 4 ++ 2 files changed, 66 insertions(+), 47 deletions(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 7801054315ef..8a688e41ee88 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2517,56 +2517,15 @@ release: /* * Optimized version of soreceive() for stream (TCP) sockets. */ -int -soreceive_stream(struct socket *so, struct sockaddr **psa, struct uio *uio, - struct mbuf **mp0, struct mbuf **controlp, int *flagsp) +static int +soreceive_stream_locked(struct socket *so, struct sockbuf *sb, + struct sockaddr **psa, struct uio *uio, struct mbuf **mp0, + struct mbuf **controlp, int flags) { - int len = 0, error = 0, flags, oresid; - struct sockbuf *sb; + int len = 0, error = 0, oresid; struct mbuf *m, *n = NULL; - /* We only do stream sockets. */ - if (so->so_type != SOCK_STREAM) - return (EINVAL); - if (psa != NULL) - *psa = NULL; - if (flagsp != NULL) - flags = *flagsp &~ MSG_EOR; - else - flags = 0; - if (controlp != NULL) - *controlp = NULL; - if (flags & MSG_OOB) - return (soreceive_rcvoob(so, uio, flags)); - if (mp0 != NULL) - *mp0 = NULL; - - sb = &so->so_rcv; - -#ifdef KERN_TLS - /* - * KTLS store TLS records as records with a control message to - * describe the framing. - * - * We check once here before acquiring locks to optimize the - * common case. - */ - if (sb->sb_tls_info != NULL) - return (soreceive_generic(so, psa, uio, mp0, controlp, - flagsp)); -#endif - - /* Prevent other readers from entering the socket. */ - error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(flags)); - if (error) - return (error); -#ifdef KERN_TLS - if (__predict_false(sb->sb_tls_info != NULL)) { - SOCK_IO_RECV_UNLOCK(so); - return (soreceive_generic(so, psa, uio, mp0, controlp, - flagsp)); - } -#endif + SOCK_IO_RECV_ASSERT_LOCKED(so); SOCKBUF_LOCK(sb); /* Easy one, no space to copyout anything. */ @@ -2729,6 +2688,62 @@ out: SBLASTRECORDCHK(sb); SBLASTMBUFCHK(sb); SOCKBUF_UNLOCK(sb); + return (error); +} + +int +soreceive_stream(struct socket *so, struct sockaddr **psa, struct uio *uio, + struct mbuf **mp0, struct mbuf **controlp, int *flagsp) +{ + struct sockbuf *sb; + int error, flags; + + sb = &so->so_rcv; + + /* We only do stream sockets. */ + if (so->so_type != SOCK_STREAM) + return (EINVAL); + if (psa != NULL) + *psa = NULL; + if (flagsp != NULL) + flags = *flagsp & ~MSG_EOR; + else + flags = 0; + if (controlp != NULL) + *controlp = NULL; + if (flags & MSG_OOB) + return (soreceive_rcvoob(so, uio, flags)); + if (mp0 != NULL) + *mp0 = NULL; + +#ifdef KERN_TLS + /* + * KTLS store TLS records as records with a control message to + * describe the framing. + * + * We check once here before acquiring locks to optimize the + * common case. + */ + if (sb->sb_tls_info != NULL) + return (soreceive_generic(so, psa, uio, mp0, controlp, + flagsp)); +#endif + + /* + * Prevent other threads from reading from the socket. This lock may be + * dropped in order to sleep waiting for data to arrive. + */ + error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(flags)); + if (error) + return (error); +#ifdef KERN_TLS + if (__predict_false(sb->sb_tls_info != NULL)) { + SOCK_IO_RECV_UNLOCK(so); + return (soreceive_generic(so, psa, uio, mp0, controlp, + flagsp)); + } +#endif + error = soreceive_stream_locked(so, sb, psa, uio, mp0, controlp, flags); SOCK_IO_RECV_UNLOCK(so); return (error); } diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 485494b605ec..7d194462acba 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -313,11 +313,15 @@ soeventmtx(struct socket *so, const sb_which which) #define SOCK_IO_SEND_UNLOCK(so) \ soiounlock(&(so)->so_snd_sx) #define SOCK_IO_SEND_OWNED(so) sx_xlocked(&(so)->so_snd_sx) +#define SOCK_IO_SEND_ASSERT_LOCKED(so) \ + sx_assert(&(so)->so_snd_sx, SA_XLOCKED) #define SOCK_IO_RECV_LOCK(so, flags) \ soiolock((so), &(so)->so_rcv_sx, (flags)) #define SOCK_IO_RECV_UNLOCK(so) \ soiounlock(&(so)->so_rcv_sx) #define SOCK_IO_RECV_OWNED(so) sx_xlocked(&(so)->so_rcv_sx) +#define SOCK_IO_RECV_ASSERT_LOCKED(so) \ + sx_assert(&(so)->so_rcv_sx, SA_XLOCKED) /* do we have to send all at once on a socket? */ #define sosendallatonce(so) \ From nobody Tue Sep 3 14:55:05 2024 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 4WypZK4xdsz5TMnx; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZK2j19z4x8C; Tue, 3 Sep 2024 14:55:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uE+pTMTRWV2jmbH9nIW3i5cuch+dbmMwnTmpti1J6aM=; b=RjmiQzWHc003su48XwF8SAqJkzUfO069koHy44RPnxpLfPKf8C8uxLCaekkCjm7YJabB0O DUw0XQ1265QnAE3X6o2fcjJ/H/26hmwcV5Px3QV7SFI40gpC5zo7jhIThBaM7wSxd0vmYM GSycD4abvb9lSUbAmYnWw9ODWwvVXl5/1BCK5tlhYQbt1ckZSklYYeZdFthPPufp6R1Pfl 2HApVClSCs1eOvu4ffzx/WCYxV5avD1MvCy0sYCCO6vlFVbsY2QqIkyxkSSBL8NqHVQxix Kp2Ly2nCqpkDZxU6s/EwBL/7JrmlcsFbn7dOK52WMJa1c45AX1AIQHs+Epq9Jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375305; a=rsa-sha256; cv=none; b=U5K8xnI+8cYLfRYJ10AbS1sIzsVWOxJZYmzeZLnrafRKt0ZD3Civ7AWa94LMdZwfA9sH1m XaatadDiDBkmYrzZpYHTF4vOlgJRSKkd7Y+9TUPCqPnhdu2l9mnGa7e+gxd7HkOkq7qti4 94AcowUQmbYVz4+jaflBMGqCHV3sPAX/zlqlIgtgKCIeAwE/9Sj4sZ1+AiO+IdQZ3y0Fhd z8ixzcsQIjRS2flY7SR+HalWVgDxmTPXSs97RWAx0LCf+WR1WkX/f6oVOpGGXq0keZlqWi HX41/2i0MLMxWQACCXKgrba3YAEUnduVSOP3gpQXlwJWbIFIV42VYfkT4KIYsw== 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=1725375305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uE+pTMTRWV2jmbH9nIW3i5cuch+dbmMwnTmpti1J6aM=; b=r63jS7yz2N+8qIXS3aAkFrn4K3EaBwfRKeIzGO/LrkeqeD34Eii6QyKjpU/ChC6V92uYjl JbkoMGEqSUKB6NsXAuzOv7MSOTro8Qg8j+UTY1pGknWvPbq9v2RVqput1sMRqXVZxBOaOq BskDFJ7dNeh4eHsDSbEvlKgAGYJdjSQDPyM895Hy+8V+eSDY7nqWaRKH+OFaV+xy9zbzH3 T8XNcbYFkafvho6EY/1m9maa44d3J7/JzOJRbA7JMK0tdI6MzKWpZpK0wJI4FqxshTH1pL v5ntRkmkW6fN26bdZQ+KyNskoy2LXAIko/O0C/D6yQPzT4RdFQYFLE9AZ/k0BA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZK2Gzjzllg; Tue, 3 Sep 2024 14:55:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et5jt070774; Tue, 3 Sep 2024 14:55:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et5kp070771; Tue, 3 Sep 2024 14:55:05 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:05 GMT Message-Id: <202409031455.483Et5kp070771@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0480918c0904 - stable/14 - socket: Split up soreceive_generic() 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 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: 0480918c09042ce6a71733a53a562152af035564 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0480918c09042ce6a71733a53a562152af035564 commit 0480918c09042ce6a71733a53a562152af035564 Author: Mark Johnston AuthorDate: 2024-08-19 14:20:19 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 socket: Split up soreceive_generic() Factor out the bits that run with the sock I/O lock held into a separate function. No functional change intended. Reviewed by: gallatin, glebius MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46304 (cherry picked from commit 0a68f644dca19670686007071479f919a56ea37f) --- sys/kern/uipc_socket.c | 61 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 8a688e41ee88..99073121d7de 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2016,11 +2016,11 @@ sockbuf_pushsync(struct sockbuf *sb, struct mbuf *nextrecord) * mbuf **mp0 for use in returning the chain. The uio is then used only for * the count in uio_resid. */ -int -soreceive_generic(struct socket *so, struct sockaddr **psa, struct uio *uio, - struct mbuf **mp0, struct mbuf **controlp, int *flagsp) +static int +soreceive_generic_locked(struct socket *so, struct sockaddr **psa, + struct uio *uio, struct mbuf **mp, struct mbuf **controlp, int *flagsp) { - struct mbuf *m, **mp; + struct mbuf *m; int flags, error, offset; ssize_t len; struct protosw *pr = so->so_proto; @@ -2029,30 +2029,15 @@ soreceive_generic(struct socket *so, struct sockaddr **psa, struct uio *uio, ssize_t orig_resid = uio->uio_resid; bool report_real_len = false; - mp = mp0; - if (psa != NULL) - *psa = NULL; - if (controlp != NULL) - *controlp = NULL; + SOCK_IO_RECV_ASSERT_LOCKED(so); + + error = 0; if (flagsp != NULL) { report_real_len = *flagsp & MSG_TRUNC; *flagsp &= ~MSG_TRUNC; flags = *flagsp &~ MSG_EOR; } else flags = 0; - if (flags & MSG_OOB) - return (soreceive_rcvoob(so, uio, flags)); - if (mp != NULL) - *mp = NULL; - if ((pr->pr_flags & PR_WANTRCVD) && (so->so_state & SS_ISCONFIRMING) - && uio->uio_resid) { - VNET_SO_ASSERT(so); - pr->pr_rcvd(so, 0); - } - - error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(flags)); - if (error) - return (error); restart: SOCKBUF_LOCK(&so->so_rcv); @@ -2510,6 +2495,38 @@ dontblock: if (flagsp != NULL) *flagsp |= flags; release: + return (error); +} + +int +soreceive_generic(struct socket *so, struct sockaddr **psa, struct uio *uio, + struct mbuf **mp, struct mbuf **controlp, int *flagsp) +{ + int error, flags; + + if (psa != NULL) + *psa = NULL; + if (controlp != NULL) + *controlp = NULL; + if (flagsp != NULL) { + flags = *flagsp; + if ((flags & MSG_OOB) != 0) + return (soreceive_rcvoob(so, uio, flags)); + } else { + flags = 0; + } + if (mp != NULL) + *mp = NULL; + if ((so->so_proto->pr_flags & PR_WANTRCVD) && + (so->so_state & SS_ISCONFIRMING) && uio->uio_resid) { + VNET_SO_ASSERT(so); + so->so_proto->pr_rcvd(so, 0); + } + + error = SOCK_IO_RECV_LOCK(so, SBLOCKWAIT(flags)); + if (error) + return (error); + error = soreceive_generic_locked(so, psa, uio, mp, controlp, flagsp); SOCK_IO_RECV_UNLOCK(so); return (error); } From nobody Tue Sep 3 14:55:06 2024 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 4WypZL5BXWz5TN97; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZL3dDvz4x1f; Tue, 3 Sep 2024 14:55:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375306; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XsNPNR7hoMW+aE2RFJIjLELnZi1McUygIuBQS9AfsAQ=; b=hGE0D4V/LqPdL5tsUkCpSTn/C2j50PDK8s3/f2tkVtmpt0C5pKUr5nooWr2W2AB9HLg9Ad QdognFSXSesZhYO97oTjrJTLnBGBN0YsRRXZyG75xpAGfdmI16WWrDfrALilk4KSBV2v/A t+t/ZayqBnnlCISXzDOxYRTAZHNjh30K4DqTmr8eJe2R54mTjz703OFziavysJBXnzS7cQ npzlQyka6HIDnZLb46G83GTqIFa4SIe9yw9Xik7StznrQ+dysEL6xzfunGWyLSLVNNWtbj GE6PmIYBiWG4rtUOdXOPD02GNLw9srFqzWNHO24ZWRrtkPbb4j198ikn2iHw8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375306; a=rsa-sha256; cv=none; b=qzr+gW+i/IsT58CMYgiah2z7dcyTcEL7l/ElRUJjkejIUBc/yD2vyaHze8UqrIHxK1Mt7d fYmO+7gmmGJQGqjcI2OiKIyS0f0dzqwqDJCNRjjt9quGUavlRIhbuKTxYSFmJHLhkVplLT 2kwGJa3swkasZRJcB8+7dU0yrznDrR+vx8wqzRrAQv8ccGa711PKMtOfvX3v2Hvvu+raLf YQy2PbgTL2PFq8r9y3Ln6TxnRFKNKY4wV2n+3QEHS6rDH8JFGpjzUNdDt0I1g9E1gyR2AH qPtw826oJs5MAlQ4a2Ne95DAqxiqJDvAWedu/n74Pu+XxHQmMDnLcaxK6fb1Og== 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=1725375306; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XsNPNR7hoMW+aE2RFJIjLELnZi1McUygIuBQS9AfsAQ=; b=ld6/tuN8cDalUL41qf3f/lAmoFh1wlHmuHehfCoS/RZYafb5TX6y/Q1Y6DQRdnn9vemOG+ QbrHzsUb/GImNEVHG4IZ0k/9dgHt4zS8FqoJnyiT+TMz7dwE/wyxaI19FJcLWBYsoaV3kc qUhfp5yq+E+OZ4q3J3JkpY1ipJnGBuZDo2SyydRr8zAOXAks0vOj+PeyNYe8c0xA/ZO31N YNj1S7mshwGEAJQ/rYmR/W0P8Db+Qi5hDryRKLuLeNUhH6xq2nr8ycgU+5AGA2x/6/87AQ ZDiAs8ydrhwIWpiKkNYS1Z9JhXOTHoJ2UJrBGqIm7iGFf2y8KRmz3neRWmKmjQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZL3DYjzllh; Tue, 3 Sep 2024 14:55:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et6av070814; Tue, 3 Sep 2024 14:55:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et6xp070811; Tue, 3 Sep 2024 14:55:06 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:06 GMT Message-Id: <202409031455.483Et6xp070811@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 2537245ecd01 - stable/14 - socket: Split up sosend_generic() 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 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: 2537245ecd0188c0db1fd36565e1175a177637c3 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2537245ecd0188c0db1fd36565e1175a177637c3 commit 2537245ecd0188c0db1fd36565e1175a177637c3 Author: Mark Johnston AuthorDate: 2024-08-19 14:20:43 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 socket: Split up sosend_generic() Factor out the bits that run with the sock I/O lock held into a separate function. In this implementation, we are doing a bit more work under the I/O lock than before. However, lock contention is only a problem when multiple threads are transmitting on the same socket, which is an unusual case that is not expected to perform well in any case. No functional change intended. Reviewed by: gallatin, glebius MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D46305 (cherry picked from commit fb901935f257ddcc492fe9efb605797f181c6597) --- sys/kern/uipc_socket.c | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 99073121d7de..dfe75978ac39 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1601,8 +1601,8 @@ out: * counts if EINTR/ERESTART are returned. Data and control buffers are freed * on return. */ -int -sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, +static int +sosend_generic_locked(struct socket *so, struct sockaddr *addr, struct uio *uio, struct mbuf *top, struct mbuf *control, int flags, struct thread *td) { long space; @@ -1618,6 +1618,9 @@ sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, tls = NULL; tls_rtype = TLS_RLTYPE_APP; #endif + + SOCK_IO_SEND_ASSERT_LOCKED(so); + if (uio != NULL) resid = uio->uio_resid; else if ((top->m_flags & M_PKTHDR) != 0) @@ -1647,10 +1650,6 @@ sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, if (control != NULL) clen = control->m_len; - error = SOCK_IO_SEND_LOCK(so, SBLOCKWAIT(flags)); - if (error) - goto out; - #ifdef KERN_TLS tls_send_flag = 0; tls = ktls_hold(so->so_snd.sb_tls_info); @@ -1673,7 +1672,7 @@ sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, if (resid == 0 && !ktls_permit_empty_frames(tls)) { error = EINVAL; - goto release; + goto out; } } #endif @@ -1684,13 +1683,13 @@ restart: if (so->so_snd.sb_state & SBS_CANTSENDMORE) { SOCKBUF_UNLOCK(&so->so_snd); error = EPIPE; - goto release; + goto out; } if (so->so_error) { error = so->so_error; so->so_error = 0; SOCKBUF_UNLOCK(&so->so_snd); - goto release; + goto out; } if ((so->so_state & SS_ISCONNECTED) == 0) { /* @@ -1705,7 +1704,7 @@ restart: !(resid == 0 && clen != 0)) { SOCKBUF_UNLOCK(&so->so_snd); error = ENOTCONN; - goto release; + goto out; } } else if (addr == NULL) { SOCKBUF_UNLOCK(&so->so_snd); @@ -1713,7 +1712,7 @@ restart: error = ENOTCONN; else error = EDESTADDRREQ; - goto release; + goto out; } } space = sbspace(&so->so_snd); @@ -1723,7 +1722,7 @@ restart: clen > so->so_snd.sb_hiwat) { SOCKBUF_UNLOCK(&so->so_snd); error = EMSGSIZE; - goto release; + goto out; } if (space < resid + clen && (atomic || space < so->so_snd.sb_lowat || space < clen)) { @@ -1731,12 +1730,12 @@ restart: (flags & (MSG_NBIO | MSG_DONTWAIT)) != 0) { SOCKBUF_UNLOCK(&so->so_snd); error = EWOULDBLOCK; - goto release; + goto out; } error = sbwait(so, SO_SND); SOCKBUF_UNLOCK(&so->so_snd); if (error) - goto release; + goto out; goto restart; } SOCKBUF_UNLOCK(&so->so_snd); @@ -1781,7 +1780,7 @@ restart: ((flags & MSG_EOR) ? M_EOR : 0)); if (top == NULL) { error = EFAULT; /* only possible error */ - goto release; + goto out; } space -= resid - uio->uio_resid; resid = uio->uio_resid; @@ -1845,12 +1844,10 @@ restart: control = NULL; top = NULL; if (error) - goto release; + goto out; } while (resid && space > 0); } while (resid); -release: - SOCK_IO_SEND_UNLOCK(so); out: #ifdef KERN_TLS if (tls != NULL) @@ -1863,6 +1860,20 @@ out: return (error); } +int +sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, + struct mbuf *top, struct mbuf *control, int flags, struct thread *td) +{ + int error; + + error = SOCK_IO_SEND_LOCK(so, 0); + if (error) + return (error); + error = sosend_generic_locked(so, addr, uio, top, control, flags, td); + SOCK_IO_SEND_UNLOCK(so); + return (error); +} + /* * Send to a socket from a kernel thread. * From nobody Tue Sep 3 14:55:07 2024 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 4WypZM6Q7sz5TN79; Tue, 03 Sep 2024 14:55:07 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZM4NtZz4xJ0; Tue, 3 Sep 2024 14:55:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375307; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+egRtzmR1lmCeDhCU0nY8JPJ0CboUOsInAiZAkJcj/c=; b=m2PJqzBGY/YZcGX1veyWL4A/cPaHHj+LYNVXVUUj7md27kKcCuqcyEV4HE9R7hPmWEMRXo DxNgZo3z+V1nbsJe5a6Pxd72P6hcN1vE1eFUazRqAL8zdHYBIhXrAvy9Sa6Exh1vKAnODR 3j8Ed7rPV3WZeGnTlV+kavZcqqu3YKcp9k90tgptEAIptqGi2Ldz9VEE312hc2Rk1mFZt6 m/R7pyn38UZDPA/SYS6Of+JoV+qOymhke6RSWszcAv2/ZW2kDW4FEkLdFGnMUVl5NFmLHQ F/R+dLt4iOAskyhMXtGTrBiozFapltgMCE0vY5AFqInFEshRJvfk3gdEDzqj2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375307; a=rsa-sha256; cv=none; b=n+dPTXqBQcs7gaS3Xl4Ncv839zWosd30SIkKrDdvEucdrGG8jHAbbIU08UEiFB3j8Q/kj2 cYHTiY0Q/qCJYDJdeggHM4p5jGTfoYY5eppMh/dLJXX4J+ivFMEo780A2STe9pgqw/itvn jWdv/1fw8EQrufwI5hpnjCSaBouZK4xgei76IBpv5E0oIQ+0SNt6WoIt8/zB4xvmam6+1f tsdOcpvOlskyHgEC0nw/ja8iAuvMaXl8Ux2w7F2t0v2oYKWBaLH4EoojlDoDfKyFIpydPO 3DHqaueFipNdIf7nJpBpr9fXJjptpubUag51Pdy0+2sRedlOt8BPUOscWm/9wQ== 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=1725375307; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+egRtzmR1lmCeDhCU0nY8JPJ0CboUOsInAiZAkJcj/c=; b=ggcwh7vQ5IiEPeC3NJgXcU5P2TLLrapXOBte6un2TGkZYAy80Q6GVeUC13dGUG195XEq8h D2O0sWcJlehOnGra0Joc/wDaSm2ZiZU5rGYQ7qnE7RqmGpBOcdfQTDT8/OvtuQs0o2brWF AOcCN6IseLbFtb1hbMX0FetlSP518jAdbCqOQht5pERmGf6zy/Lfl4DrNA7XCp1Ogs/4wt toMcsEE0xnSsa1193qeI9z9a/y5TiyhKe4QgBqUTZLkbUa2yvsNGB5oLHOmHZxOmolPMBk DlT4YBwS0qI4tbLfpUj5vspdJyM1wrFa2xfUeeTk+JlUx5HFjTJR+6u3FitEdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZM40sczlWS; Tue, 3 Sep 2024 14:55:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et7ps070857; Tue, 3 Sep 2024 14:55:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et7wN070854; Tue, 3 Sep 2024 14:55:07 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:07 GMT Message-Id: <202409031455.483Et7wN070854@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 441fc34c6f01 - stable/14 - socket: Microoptimize soreceive_stream_locked() 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 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: 441fc34c6f01ffe72278f3ba696a3ec06924743d Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=441fc34c6f01ffe72278f3ba696a3ec06924743d commit 441fc34c6f01ffe72278f3ba696a3ec06924743d Author: Mark Johnston AuthorDate: 2024-07-05 18:01:29 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 socket: Microoptimize soreceive_stream_locked() There is no need to hold the sockbuf lock while checking uio_resid. No functional change intended. MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Stormshield (cherry picked from commit 6982be38cb7e4254ff4ffbb334cd7e234b5f6cc2) --- sys/kern/uipc_socket.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index dfe75978ac39..adb11e08a7ac 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -2555,14 +2555,12 @@ soreceive_stream_locked(struct socket *so, struct sockbuf *sb, SOCK_IO_RECV_ASSERT_LOCKED(so); - SOCKBUF_LOCK(sb); /* Easy one, no space to copyout anything. */ - if (uio->uio_resid == 0) { - error = EINVAL; - goto out; - } + if (uio->uio_resid == 0) + return (EINVAL); oresid = uio->uio_resid; + SOCKBUF_LOCK(sb); /* We will never ever get anything unless we are or were connected. */ if (!(so->so_state & (SS_ISCONNECTED|SS_ISDISCONNECTED))) { error = ENOTCONN; From nobody Tue Sep 3 14:55:08 2024 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 4WypZN6nwWz5TN7B; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZN4V34z4x95; Tue, 3 Sep 2024 14:55:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cxu314/U+lT8zfRQYMMz+Akl5+eMBR0SF+WWHg2ex4Q=; b=oktI83/k0PQ6gbrYNRYdfKpx3jhx0vFjWZ6qRqjrQymldQTNSE7QwMxQgabmBFmaAuUqFK do+V2RFnz70/w0nPv86Cy8xRXcNMqoWaDoMJCVEY00fA/5+5CtS8zvejBm2Xg7NyceiBpj tKHsVzEjOVlrC2KWnmmiPM+VLBAMF5R3xYQwZbkktL3WDD9Mh73k17FKYID477yD9qFn+I HvQYfi+7cYDFBAdebwJhragfkYvqRR/kMXJr/T2NWYgPRl6EnLJdd6m87Mi0IQ1PIx+n5b hyz7P5AQ9GzElVuDMyMipEnEjD5XOqudilALyG10dzpJYas3MHsMUdFa19Bdtg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375308; a=rsa-sha256; cv=none; b=o4UU8PoiY75HBsH7O9zZUx55B9EXcXNeN0/znzqg6S/yEyQB4UKTYpJV33s49ZK3ZGIIFq 4KeHY2YDC2vbC/tCL5weS7etL7KZ9vhRYjV0tjXoMqzACva549FUUSNXwnRDxVp/tQz4xg RuBRQ1VBJaBj6Cmsv12cSXhxzvw2ZrgbIJfbBv3qBZArKSUF6jvQRJh9IlSLioJ5p0NydF CRHC3xia3lrEAGcdlTRV/U64izfb3KsvdCLUg8EP+OHs2/opYCBvsu9mvpkahOajJTvEex nDzEdj5+N1CygD4kFVcsP8qc8uVTsW5+ABCbuvfjF3Zb8kHbRuzn+H2EPJ9AFA== 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=1725375308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cxu314/U+lT8zfRQYMMz+Akl5+eMBR0SF+WWHg2ex4Q=; b=ydtjT+WKb4XU+YFNy0Jy+BneAyUquGHgvDHiC2Ze0tfQXtoDpl3MVj2o0sI3Gq8GYWSkRo SqnInte6xRy4n/xe0iqJV0PFBbi7hsDSdtCP/r4mvl+Rjz1D4nFliG6v3ra2GaZsKNh8Os vvQEjAjyhwjNqnd0EKB9ZgK63WS5Mv1Siz+sywg3msFdgPyIyF6OxOKpRL8ms0U/EhWPCE U+srDcwgNy3zR0A4NkUEeVWy5GLFKkG4Z35NGVzEBGhie54BFy90Ny4zsitkJwwM06mf1a VxQtFyk34Jwy/uB3BD8wdsijHIAjwjTnGSfjjF0AvlKrI98wNnCWFoVYgY+oow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZN3YS6zlrC; Tue, 3 Sep 2024 14:55:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et8Xb070968; Tue, 3 Sep 2024 14:55:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et8ng070965; Tue, 3 Sep 2024 14:55:08 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:08 GMT Message-Id: <202409031455.483Et8ng070965@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 10f7e124eadf - stable/13 - bhyve: avoid updating fbaddr when vm_mmap_memseg fails 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 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/13 X-Git-Reftype: branch X-Git-Commit: 10f7e124eadf4a3423f0a3859fc6946017b2229b Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=10f7e124eadf4a3423f0a3859fc6946017b2229b commit 10f7e124eadf4a3423f0a3859fc6946017b2229b Author: Pierre Pronchery AuthorDate: 2024-07-24 20:51:20 +0000 Commit: Ed Maste CommitDate: 2024-09-03 14:54:45 +0000 bhyve: avoid updating fbaddr when vm_mmap_memseg fails In the function pci_fbuf_baraddr the field sc->fbaddr was set with a user-controlled value, even though the call to vm_mmap_memseg failed. No security risk as currently sc->fbaddr is not really used in the source code. Reported by: Synacktiv Reviewed by: emaste Sponsored by: Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D46109 (cherry picked from commit 85707cfdaddc179af8bd2623091eb1b8c58fed4a) (cherry picked from commit 4a81e501337cf160d56af2d638f080983e520654) --- usr.sbin/bhyve/pci_fbuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_fbuf.c b/usr.sbin/bhyve/pci_fbuf.c index 32ccdabec8b5..61dd8133f8c0 100644 --- a/usr.sbin/bhyve/pci_fbuf.c +++ b/usr.sbin/bhyve/pci_fbuf.c @@ -231,7 +231,8 @@ pci_fbuf_baraddr(struct pci_devinst *pi, int baridx, int enabled, if (vm_mmap_memseg(pi->pi_vmctx, address, VM_FRAMEBUFFER, 0, FB_SIZE, prot) != 0) EPRINTLN("pci_fbuf: mmap_memseg failed"); - sc->fbaddr = address; + else + sc->fbaddr = address; } } From nobody Tue Sep 3 14:55:08 2024 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 4WypZN6fwKz5TMt6; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZN5LcTz4xKx; Tue, 3 Sep 2024 14:55:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSnlzcc4T1QUCfsaSbWRi/cNeZ4D8n4SGaEXQ2UZmhQ=; b=V7ecBKzalCZQB0k8ccXiEPJrWhmQRxoRbr7YpvN32NpIMpHIjG2nFcXXEfDeodKNSXrFZ5 m2e5v7jNcCwc1pFuweN4W47U9GQLg4OIfVlrAaYJDOU7QGDhja+zoqGc4u523SX+sT7jhX 7KfDKiegFlax0r1R4+KjEiF7W46+SGn+AGlztJho+dnyvX5fsALeCqQRuHRWCv2Jl6ty5m gr4txlBkplJecOoXvldrog7a7rcjPESuEgf3oavfxGPbdKmcasNnpTqeDwWpSz+p4q8xN6 Xim7kBhPJPnklVflngb41eeq8NDrtin1PGXBh8Kbj0SFnNHHuayk5smQ5BrMrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375308; a=rsa-sha256; cv=none; b=TOvtqhwUNsprqgEn3SI4Ogn8ZP8hGs5OErlwcChsuulDl3WnEGvlFsbcNlntf2dFShqYyA jzPukUb7ak7gRJqO44G8VPQDnvouzdvl450WvBTUWdJ/m35z2VOEv4jQ/ySVUr+QDIvQHs hpxrWKBhiytE+py1a7yN+JRoY0bbZGA0XRxy86qNH814QnPmzFUf47cWDrzvjZOca4FznC 6nPWxODEss8UTBtZAPGCy1sQX4Xq7xJMsmUwfAM0wa/lCvy5viu1EUtCYdoX6/NibmavDi osCB5DGi3CIjbYiFKYl5KgK/1+kEAG4Y+wkS0uVNff8b+TDw82xHnkaJ3j2B7Q== 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=1725375308; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSnlzcc4T1QUCfsaSbWRi/cNeZ4D8n4SGaEXQ2UZmhQ=; b=B4oaeJhpKFJD+1911CZLodu0jX4KPgu6wOuPXy+b4xsxC+Ly7g2OxVu2aj+Y1mQ8AAjcJv c0FASA+FIhxOmuGGb+96/1P/4W3HXqzoFktMsLqmyXguIRBZOqqn9Iu/dv8wIfWyZ4BW3I WvG+i2g46wCEGGGKlsdubENx6k82u4duX58O3AJo1kaHW7a6IGUYotD2JjtSiA8TA189a0 ikJBAGi9Ps7qBlZakx2QT2WGSwkCZKaywPKG7mLiLnqq8vpnCxhMwtb+7JD7KnVeL1c2ON etPn0iabexniB9Y4c6Z7B4+FDtVnfLSVcnuyNA9O7f4qSBxCXbILq/k6bbLsxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZN4qqfzlrD; Tue, 3 Sep 2024 14:55:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et8Zl071010; Tue, 3 Sep 2024 14:55:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et8eu071007; Tue, 3 Sep 2024 14:55:08 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:08 GMT Message-Id: <202409031455.483Et8eu071007@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1c8e1e50f009 - stable/14 - socket: Set lock flags properly 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 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: 1c8e1e50f0097d202f42d0fc3b2080d09ac9ae92 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1c8e1e50f0097d202f42d0fc3b2080d09ac9ae92 commit 1c8e1e50f0097d202f42d0fc3b2080d09ac9ae92 Author: Mark Johnston AuthorDate: 2024-08-20 14:52:02 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 socket: Set lock flags properly Fixes: fb901935f257 ("socket: Split up sosend_generic()") Reported by: cy Sponsored by: Klara, Inc. Sponsored by: Stormshield (cherry picked from commit 66aed7e3488aa60195abcf846da5e04aa82fb1bf) --- sys/kern/uipc_socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index adb11e08a7ac..cdff5f23de0a 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1866,7 +1866,7 @@ sosend_generic(struct socket *so, struct sockaddr *addr, struct uio *uio, { int error; - error = SOCK_IO_SEND_LOCK(so, 0); + error = SOCK_IO_SEND_LOCK(so, SBLOCKWAIT(flags)); if (error) return (error); error = sosend_generic_locked(so, addr, uio, top, control, flags, td); From nobody Tue Sep 3 14:55:09 2024 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 4WypZQ1JYmz5TMp2; Tue, 03 Sep 2024 14:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WypZP6DVmz4xJS; Tue, 3 Sep 2024 14:55:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725375309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7sULYSoM2hTBWn6S/W52zC+3Yu/nPXQikvtujPHiOBw=; b=fBVy7PyQplKDitvWi1MOkCZP7DxKMLZa44Tb42EL3RY0eyE06YV4D7U4UAHCO0anpRKiFu fZoHTo/xBWW32Htbu/cPROlGWR1f3xre+WXjEQhi3wGqfrlVSMrOCipTL9AfrZuqA+y2w5 2AoEVENWqMFxqbj/pcK5bbULv4GODKcLwwo3XZS1FS7AYQc0iUb+DO1EB4vTGS2LE54iT3 j7D6qdgni0XI152z4cO7IA6ZpWJAXt//ciLiDQ5wTFD4VkeaFn5fTvrDlDbZaAYTGoKmNl 87cuttrgDzBLwvWYz/Ni0HrIfQqY/pJef9h78sQDuUhHIcp3JZmQvTQlqZ2UcQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725375309; a=rsa-sha256; cv=none; b=DP3aIlGyiWwqjeqbs89vrrVv8YFfHJLqu1i42zNxnV/eLjqVqm/Oj3A+MmSKJ/4PvR05hT nCk7di6l0tm9OC7B6kepQEvee+egwteU43EZB2W0LzNK2MwwSVgA4HymctNawgH97ZgyVM r6qCARihmlZou4WOAYLntlNdqRYIE5u8ySAJDofeorTfuvtdPNd2YUB894p9GAeiSxA8AL HTd7TtTM4M1xL8xZ1cQhDRtnzIswiSux7rZIdtSxfyF4FrMOGBd1+uIAYINc1+uQkvLlGl PkAGk0jDyvyv9FWXDcdmZYAQFjAnS7RGpT1mcvlenq0J+T0AdXIwYVT448gqVw== 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=1725375309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7sULYSoM2hTBWn6S/W52zC+3Yu/nPXQikvtujPHiOBw=; b=EVoCvlnuiNd8icaCbAp8MEBn2bgS+arnCFBvo24xENxswwiGaiYwhm4LvImQb0d+8Po5y4 R5zDRWJ9TuW9C4TBEniOeJW7BGOSvbThMdtosucLQAqw0HWiMGBV3SuHOy80zexFdg94gF 2EJOuvpaZEg1d9X4iVXcIyFhgJ6Q8osa/hl6oYJgfoU7xTdo/LCsKfR5d06M114NnPHB5t 2z7VxumS1IMG0RZrUJy0Bira8JAkSk2En579/ptgWJtsxn5SaA/8qG5Vpb0KusWmtV2Yjo KzkIJMYSylpKco76IgVT51w/MQZBhJfsqmcAPkqAIQrZ6P0+LMf7oZXC7aRElg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WypZP5pPJzl7v; Tue, 3 Sep 2024 14:55:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483Et9ww071072; Tue, 3 Sep 2024 14:55:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483Et9oq071069; Tue, 3 Sep 2024 14:55:09 GMT (envelope-from git) Date: Tue, 3 Sep 2024 14:55:09 GMT Message-Id: <202409031455.483Et9oq071069@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 00f60781122a - stable/14 - fusefs: Fix warning formatting 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 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: 00f60781122a12fd4997630c91e0a638e24ae20c Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=00f60781122a12fd4997630c91e0a638e24ae20c commit 00f60781122a12fd4997630c91e0a638e24ae20c Author: Mark Johnston AuthorDate: 2024-08-27 20:29:05 +0000 Commit: Mark Johnston CommitDate: 2024-09-03 14:54:43 +0000 fusefs: Fix warning formatting Reviewed by: asomers MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D46456 (cherry picked from commit 705008fbfdbeff147fe624ae506f3781b5ba10bf) --- sys/fs/fuse/fuse_internal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/fs/fuse/fuse_internal.c b/sys/fs/fuse/fuse_internal.c index 30e3cebfa500..f67bfe0e91c3 100644 --- a/sys/fs/fuse/fuse_internal.c +++ b/sys/fs/fuse/fuse_internal.c @@ -283,12 +283,12 @@ fuse_internal_cache_attrs(struct vnode *vp, struct fuse_attr *attr, * dirty writes! That's a server bug. */ if (fuse_libabi_geq(data, 7, 23)) { - msg = "writeback cache incoherent!." + msg = "writeback cache incoherent! " "To prevent data corruption, disable " "the writeback cache according to your " "FUSE server's documentation."; } else { - msg = "writeback cache incoherent!." + msg = "writeback cache incoherent! " "To prevent data corruption, disable " "the writeback cache by setting " "vfs.fusefs.data_cache_mode to 0 or 1."; From nobody Tue Sep 3 16:29:58 2024 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 4Wyrgp4WQnz5TXJ4; Tue, 03 Sep 2024 16:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wyrgp45P5z3y1c; Tue, 3 Sep 2024 16:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725380998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lptwF8PbJIzue1lO2pi8EkubO4VbD8FysTyWXfhl1nE=; b=WtN9kiD7xWVIG+LqdlHdwTELZFt2+dIXsCZJ45dXro3xMVmPioLVg4HVWZMtoIgfmax0Nq Qz17weWxx10ZBXnyvgo7spAvwrkomzF3AOHrzKX1cWqGOeXQz/2VD5ufnpFNqPkorBnlRm mkoM1zjVPdFfnovrC9fYJ315s4MalAuJdUu8klSpPthl0FyvXjF0su9XsrsMZiqc/ks9zI gh4rjDSSsPaF1SE+lToeAiPntN6x5iZKDXYQ/deHkYz2NnX9WqNzr1vZWfHSbkZNYK0yqJ 4McZAkciztuT46AelCa81RqOI5hESBwvP8u9yCVw5m9ccC/mQCLqQt1u8ZGXzw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725380998; a=rsa-sha256; cv=none; b=XgtVoN3n9MPdn8RGP9HRt5/cn7sOse6e7ohHi2MW4d4Bv9VpfhJKh3FFg6+FUBOyhnoIa2 Xndh0eTwMUP80gQ1wdkmnO+iyYS7nAcu/jbvhT7+MwYIHCLIiKAFQDxtE8vfkA05QJk3xZ rAjuzF8BPwVC0VFDcabfic+47Voc3QWhQfmKwr6rnEyvi/WRZBJZDK7hwY+XJHWCrSTImc sF+s75KHsNG7eNWg6R3Igf4EtG+XQJuBBMcglBZsIV5hohJLeDlsDdfzfXniFd1MIN3raw xG/VqudPpl+4lveFHM8ceKfu30lpg90P4Dly/6zk74k+1Se2sxITJDXQxpuU+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=1725380998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lptwF8PbJIzue1lO2pi8EkubO4VbD8FysTyWXfhl1nE=; b=tY+ezpTmyz7/yNEs1DqHzTSB2BBWhodNCZiUSojzGvRhunO9Wuq6nhGlJMC2OLQ70hhbet MjQnwG+5eDMeh4BDTZFqsxf7qr5MMmGheUnn/2gCBJpsRgKmVWz6zK9cusxy2DWVYKD0Zx e2y15NxbrN3S9to3aMRBPEwvyA2lh91q+l9pHoXZXANTzbatyHF/XzdgUIbAW9e3wFDaS0 KVkXO2rrjtKjEsJQk1eNBvdvFF409MpIqt26shdYYn6vnQaKnGwVGWNnJCWg1vCRr+olzW kTnJhoRbk7GEINR4hhCPfz3kuUCmaFETNTm9Nj1bRcEnIy13QSTi2QBUsZJCzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wyrgp3gpQznmR; Tue, 3 Sep 2024 16:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483GTw1W024944; Tue, 3 Sep 2024 16:29:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483GTwGF024941; Tue, 3 Sep 2024 16:29:58 GMT (envelope-from git) Date: Tue, 3 Sep 2024 16:29:58 GMT Message-Id: <202409031629.483GTwGF024941@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Stefan =?utf-8?Q?E=C3=9Fer?= Subject: git: e0fd6004ef0e - stable/14 - vendor/bc: upgrade to version 7.0.0 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: se X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e0fd6004ef0edee3d858564271bcea3eb70145d1 Auto-Submitted: auto-generated The branch stable/14 has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=e0fd6004ef0edee3d858564271bcea3eb70145d1 commit e0fd6004ef0edee3d858564271bcea3eb70145d1 Author: Stefan Eßer AuthorDate: 2024-08-23 16:45:58 +0000 Commit: Stefan Eßer CommitDate: 2024-09-03 16:28:14 +0000 vendor/bc: upgrade to version 7.0.0 This is a production release to fix three bugs, none of which affects well formed scripts on FreeBSD: The first bug is that bc/dc will exit on macOS when the terminal is resized. The second bug is that an array, which should only be a function parameter, was accepted as part of larger expressions. The third bug is that the value stack for dc was cleared on any error. However, this is not how other dc behave. To bring dc more in line with other implementations, this behavior was changed. This change is why this version is a new major version. (cherry picked from commit 54d20d67e2af28d948ce2df13feb039fa10900fc) MFC after: 3 days (cherry picked from commit 12e0d316644a4f80f5f1f78cf07bd93def43b1ca) --- contrib/bc/Makefile.in | 10 +++- contrib/bc/NEWS.md | 14 +++++ contrib/bc/compile_flags.txt | 1 + contrib/bc/configure.sh | 120 ++++++++++++++++++++++++++++++-------- contrib/bc/include/args.h | 2 +- contrib/bc/include/bc.h | 2 +- contrib/bc/include/dc.h | 2 +- contrib/bc/include/opt.h | 6 +- contrib/bc/include/ossfuzz.h | 79 +++++++++++++++++++++++++ contrib/bc/include/status.h | 25 ++------ contrib/bc/include/version.h | 2 +- contrib/bc/include/vm.h | 2 +- contrib/bc/manuals/dc/A.1 | 7 ++- contrib/bc/manuals/dc/A.1.md | 9 ++- contrib/bc/manuals/dc/E.1 | 7 ++- contrib/bc/manuals/dc/E.1.md | 9 ++- contrib/bc/manuals/dc/EH.1 | 7 ++- contrib/bc/manuals/dc/EH.1.md | 9 ++- contrib/bc/manuals/dc/EHN.1 | 7 ++- contrib/bc/manuals/dc/EHN.1.md | 9 ++- contrib/bc/manuals/dc/EN.1 | 7 ++- contrib/bc/manuals/dc/EN.1.md | 9 ++- contrib/bc/manuals/dc/H.1 | 7 ++- contrib/bc/manuals/dc/H.1.md | 9 ++- contrib/bc/manuals/dc/HN.1 | 7 ++- contrib/bc/manuals/dc/HN.1.md | 9 ++- contrib/bc/manuals/dc/N.1 | 7 ++- contrib/bc/manuals/dc/N.1.md | 9 ++- contrib/bc/scripts/os.c | 59 +++++++++++++++++++ contrib/bc/src/args.c | 4 +- contrib/bc/src/bc.c | 3 +- contrib/bc/src/bc_fuzzer.c | 112 +++++++++++++++++++++++++++++++++++ contrib/bc/src/bc_lex.c | 2 + contrib/bc/src/bc_parse.c | 23 +++++++- contrib/bc/src/data.c | 59 +++++++++++++++++++ contrib/bc/src/dc.c | 3 +- contrib/bc/src/dc_fuzzer.c | 112 +++++++++++++++++++++++++++++++++++ contrib/bc/src/dc_lex.c | 2 + contrib/bc/src/history.c | 2 +- contrib/bc/src/lang.c | 4 +- contrib/bc/src/lex.c | 8 +++ contrib/bc/src/main.c | 21 +++++-- contrib/bc/src/num.c | 4 ++ contrib/bc/src/opt.c | 14 ++--- contrib/bc/src/program.c | 13 +++-- contrib/bc/src/vm.c | 38 ++++++++++-- contrib/bc/tests/bc/errors/37.txt | 37 ++++++++++++ contrib/bc/tests/bc/errors/38.txt | 37 ++++++++++++ contrib/bc/vs/bc.vcxproj | 18 +++--- include/ossfuzz.h | 79 +++++++++++++++++++++++++ 50 files changed, 914 insertions(+), 133 deletions(-) diff --git a/contrib/bc/Makefile.in b/contrib/bc/Makefile.in index 4adb76ddaa17..c63dc242e79a 100644 --- a/contrib/bc/Makefile.in +++ b/contrib/bc/Makefile.in @@ -94,6 +94,10 @@ BC = bc DC = dc BC_EXEC = $(BIN)/$(EXEC_PREFIX)$(BC) DC_EXEC = $(BIN)/$(EXEC_PREFIX)$(DC) +BC_FUZZER = $(BIN)/$(BC)_fuzzer_c +BC_FUZZER_C = $(BIN)/$(BC)_fuzzer_C +DC_FUZZER = $(BIN)/$(DC)_fuzzer_c +DC_FUZZER_C = $(BIN)/$(DC)_fuzzer_C BC_TEST_OUTPUTS = tests/bc_outputs BC_FUZZ_OUTPUTS = tests/fuzzing/bc_outputs1 tests/fuzzing/bc_outputs2 tests/fuzzing/bc_outputs3 @@ -149,8 +153,11 @@ BC_ENABLE_NLS = %%NLS%% BC_EXCLUDE_EXTRA_MATH = %%EXCLUDE_EXTRA_MATH%% BC_ENABLE_AFL = %%FUZZ%% +BC_ENABLE_OSSFUZZ = %%OSSFUZZ%% BC_ENABLE_MEMCHECK = %%MEMCHECK%% +LIB_FUZZING_ENGINE = %%LIB_FUZZING_ENGINE%% + BC_DEFAULT_BANNER = %%BC_DEFAULT_BANNER%% BC_DEFAULT_SIGINT_RESET = %%BC_DEFAULT_SIGINT_RESET%% DC_DEFAULT_SIGINT_RESET = %%DC_DEFAULT_SIGINT_RESET%% @@ -210,7 +217,8 @@ CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN) CPPFLAGS6 = $(CPPFLAGS5) -DBC_ENABLE_NLS=$(BC_ENABLE_NLS) CPPFLAGS7 = $(CPPFLAGS6) -D$(BC_ENABLE_EXTRA_MATH_NAME)=$(BC_ENABLE_EXTRA_MATH) CPPFLAGS8 = $(CPPFLAGS7) -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) -DBC_ENABLE_LIBRARY=$(BC_ENABLE_LIBRARY) -CPPFLAGS = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL) +CPPFLAGS9 = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL) +CPPFLAGS = $(CPPFLAGS9) -DBC_ENABLE_OSSFUZZ=$(BC_ENABLE_OSSFUZZ) CFLAGS = $(CPPFLAGS) $(BC_DEFS) $(DC_DEFS) %%CPPFLAGS%% %%CFLAGS%% LDFLAGS = %%LDFLAGS%% diff --git a/contrib/bc/NEWS.md b/contrib/bc/NEWS.md index 95de7e5182c4..1775fa0b6533 100644 --- a/contrib/bc/NEWS.md +++ b/contrib/bc/NEWS.md @@ -1,5 +1,19 @@ # News +## 7.0.0 + +This is a production release to fix three bugs. + +The first bug is that `bc`/`dc` will exit on macOS when the terminal is resized. + +The second bug is that an array, which should only be a function parameter, was +accepted as part of larger expressions. + +The third bug is that value stack for `dc` was cleared on any error. However, +this is not how other `dc` behave. To bring `dc` more in line with other +implementations, this behavior was changed. This change is why this version is a +new major version. + ## 6.7.6 This is a production release to fix one bug. diff --git a/contrib/bc/compile_flags.txt b/contrib/bc/compile_flags.txt index 7a08c87f3876..3324798013c6 100644 --- a/contrib/bc/compile_flags.txt +++ b/contrib/bc/compile_flags.txt @@ -13,3 +13,4 @@ -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_NLS=1 +-DBC_ENABLE_OSSFUZZ=0 diff --git a/contrib/bc/configure.sh b/contrib/bc/configure.sh index 43bb502ea817..442165d15693 100755 --- a/contrib/bc/configure.sh +++ b/contrib/bc/configure.sh @@ -68,7 +68,7 @@ usage() { printf ' [--man3dir=MAN3DIR]\n' if [ "$_usage_val" -ne 0 ]; then - exit + exit "$_usage_val" fi printf '\n' @@ -181,6 +181,8 @@ usage() { printf ' Enable a build appropriate for valgrind. For development only.\n' printf ' -z, --enable-fuzz-mode\n' printf ' Enable fuzzing mode. THIS IS FOR DEVELOPMENT ONLY.\n' + printf ' -Z, --enable-ossfuzz-mode\n' + printf ' Enable fuzzing mode for OSS-Fuzz. THIS IS FOR DEVELOPMENT ONLY.\n' printf ' --prefix PREFIX\n' printf ' The prefix to install to. Overrides "$PREFIX" if it exists.\n' printf ' If PREFIX is "/usr", install path will be "/usr/bin".\n' @@ -722,6 +724,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -755,6 +758,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -772,7 +776,8 @@ predefined_build() { dc_default_digit_clamp=0;; GDH) - CFLAGS="-flto -Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories -Werror -pedantic -std=c11" + CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories" + CFLAGS="$CFLAGS -Wno-switch-default -Werror -pedantic -std=c11" bc_only=0 dc_only=0 coverage=0 @@ -789,6 +794,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -806,7 +812,8 @@ predefined_build() { dc_default_digit_clamp=1;; DBG) - CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories -Werror -pedantic -std=c11" + CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories" + CFLAGS="$CFLAGS -Wno-switch-default -Werror -pedantic -std=c11" bc_only=0 dc_only=0 coverage=0 @@ -823,6 +830,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=1 @@ -888,6 +896,7 @@ strip_bin=1 all_locales=0 library=0 fuzz=0 +ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -911,7 +920,7 @@ dc_default_digit_clamp=0 # getopts is a POSIX utility, but it cannot handle long options. Thus, the # handling of long options is done by hand, and that's the reason that short and # long options cannot be mixed. -while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do +while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvzZ-" opt; do case "$opt" in a) library=1 ;; @@ -944,6 +953,7 @@ while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do T) strip_bin=0 ;; v) vg=1 ;; z) fuzz=1 ;; + Z) ossfuzz=1 ;; -) arg="$1" arg="${arg#--}" @@ -1070,6 +1080,7 @@ while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do enable-test-timing) time_tests=1 ;; enable-valgrind) vg=1 ;; enable-fuzz-mode) fuzz=1 ;; + enable-ossfuzz-mode) ossfuzz=1 ;; enable-memcheck) memcheck=1 ;; install-all-locales) all_locales=1 ;; help* | bc-only* | dc-only* | coverage* | debug*) @@ -1320,6 +1331,45 @@ elif [ "$dc_only" -eq 1 ]; then tests="test_dc" +elif [ "$ossfuzz" -eq 1 ]; then + + if [ "$bc_only" -ne 0 ] || [ "$dc_only" -ne 0 ]; then + usage "An OSS-Fuzz build must build both fuzzers." + fi + + bc=1 + dc=1 + + # Expressions *cannot* exit in an OSS-Fuzz build. + bc_default_expr_exit=0 + dc_default_expr_exit=0 + + executables="bc_fuzzer and dc_fuzzer" + + karatsuba="@\$(KARATSUBA) 30 0 \$(BC_EXEC)" + karatsuba_test="@\$(KARATSUBA) 1 100 \$(BC_EXEC)" + + if [ "$library" -eq 0 ]; then + install_prereqs=" install_execs" + install_man_prereqs=" install_bc_manpage install_dc_manpage" + uninstall_prereqs=" uninstall_bc uninstall_dc" + uninstall_man_prereqs=" uninstall_bc_manpage uninstall_dc_manpage" + else + install_prereqs=" install_library install_bcl_header" + install_man_prereqs=" install_bcl_manpage" + uninstall_prereqs=" uninstall_library uninstall_bcl_header" + uninstall_man_prereqs=" uninstall_bcl_manpage" + tests="test_library" + fi + + second_target_prereqs="src/bc_fuzzer.o $default_target_prereqs" + default_target_prereqs="\$(BC_FUZZER) src/dc_fuzzer.o $default_target_prereqs" + default_target_cmd="\$(CXX) \$(CFLAGS) src/dc_fuzzer.o \$(LIB_FUZZING_ENGINE) \$(OBJS) \$(LDFLAGS) -o \$(DC_FUZZER) \&\& ln -sf ./dc_fuzzer_c \$(DC_FUZZER_C)" + second_target_cmd="\$(CXX) \$(CFLAGS) src/bc_fuzzer.o \$(LIB_FUZZING_ENGINE) \$(OBJS) \$(LDFLAGS) -o \$(BC_FUZZER) \&\& ln -sf ./bc_fuzzer_c \$(BC_FUZZER_C)" + + default_target="\$(DC_FUZZER) \$(DC_FUZZER_C)" + second_target="\$(BC_FUZZER) \$(BC_FUZZER_C)" + else bc=1 @@ -1349,8 +1399,12 @@ else fi +if [ "$fuzz" -ne 0 ] && [ "$ossfuzz" -ne 0 ]; then + usage "Fuzzing mode and OSS-Fuzz mode are mutually exclusive" +fi + # We need specific stuff for fuzzing. -if [ "$fuzz" -ne 0 ]; then +if [ "$fuzz" -ne 0 ] || [ "$ossfuzz" -ne 0 ]; then debug=1 hist=0 nls=0 @@ -1395,7 +1449,6 @@ else COVERAGE_PREREQS="" fi - # Set some defaults. if [ -z "${DESTDIR+set}" ]; then destdir="" @@ -1485,8 +1538,8 @@ if [ "$nls" -ne 0 ]; then flags="-DBC_ENABLE_NLS=1 -DBC_ENABLED=$bc -DDC_ENABLED=$dc" flags="$flags -DBC_ENABLE_HISTORY=$hist -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_AFL=0" - flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -I$scriptdir/include/" - flags="$flags -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" + flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -DBC_ENABLE_OSSFUZZ=0" + flags="$flags -I$scriptdir/include/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" ccbase=$(basename "$CC") @@ -1494,14 +1547,14 @@ if [ "$nls" -ne 0 ]; then flags="$flags -Wno-unreachable-code" fi - "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/vm.c" -o "./vm.o" > /dev/null 2>&1 + "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/vm.c" -E > /dev/null err="$?" rm -rf "./vm.o" - # If this errors, it is probably because of building on Windows, - # and NLS is not supported on Windows, so disable it. + # If this errors, it is probably because of building on Windows or musl, + # and NLS is not supported on Windows or musl, so disable it. if [ "$err" -ne 0 ]; then printf 'NLS does not work.\n' if [ $force -eq 0 ]; then @@ -1514,7 +1567,7 @@ if [ "$nls" -ne 0 ]; then printf 'NLS works.\n\n' printf 'Testing gencat...\n' - gencat "./en_US.cat" "$scriptdir/locales/en_US.msg" > /dev/null 2>&1 + gencat "./en_US.cat" "$scriptdir/locales/en_US.msg" > /dev/null err="$?" @@ -1587,10 +1640,10 @@ if [ "$hist" -eq 1 ]; then flags="-DBC_ENABLE_HISTORY=1 -DBC_ENABLED=$bc -DDC_ENABLED=$dc" flags="$flags -DBC_ENABLE_NLS=$nls -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_AFL=0" flags="$flags -DBC_ENABLE_EDITLINE=$editline -DBC_ENABLE_READLINE=$readline" - flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -I$scriptdir/include/" - flags="$flags -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" + flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -DBC_ENABLE_OSSFUZZ=0" + flags="$flags -I$scriptdir/include/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" - "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/history.c" -o "./history.o" > /dev/null 2>&1 + "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/history.c" -E > /dev/null err="$?" @@ -1660,7 +1713,7 @@ set +e printf 'Testing for FreeBSD...\n' flags="-DBC_TEST_FREEBSD -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1677,7 +1730,7 @@ fi printf 'Testing for macOS...\n' flags="-DBC_TEST_APPLE -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1705,7 +1758,7 @@ fi printf 'Testing for OpenBSD...\n' flags="-DBC_TEST_OPENBSD -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1741,7 +1794,7 @@ GEN_DIR="$scriptdir/gen" # These lines set the appropriate targets based on whether `gen/strgen.c` or # `gen/strgen.sh` is used. GEN="strgen" -GEN_EXEC_TARGET="\$(HOSTCC) -DBC_ENABLE_AFL=0 -I$scriptdir/include/ \$(HOSTCFLAGS) -o \$(GEN_EXEC) \$(GEN_C)" +GEN_EXEC_TARGET="\$(HOSTCC) -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -I$scriptdir/include/ \$(HOSTCFLAGS) -o \$(GEN_EXEC) \$(GEN_C)" CLEAN_PREREQS=" clean_gen clean_coverage" if [ -z "${GEN_HOST+set}" ]; then @@ -1754,8 +1807,9 @@ else fi fi +# The fuzzer files are always unneeded because they'll be built separately. manpage_args="" -unneeded="" +unneeded="bc_fuzzer.c dc_fuzzer.c" headers="\$(HEADERS)" # This series of if statements figure out what source files are *not* needed. @@ -1826,6 +1880,14 @@ if [ "$library" -ne 0 ]; then fi +elif [ "$ossfuzz" -ne 0 ]; then + + unneeded="$unneeded library.c main.c" + + PC_PATH="" + pkg_config_install="" + pkg_config_uninstall="" + else unneeded="$unneeded library.c" @@ -1836,9 +1898,10 @@ else fi -# library.c is not needed under normal circumstances. +# library.c, bc_fuzzer.c, and dc_fuzzer.c are not needed under normal +# circumstances. if [ "$unneeded" = "" ]; then - unneeded="library.c" + unneeded="library.c bc_fuzzer.c dc_fuzzer.c" fi # This sets the appropriate manpage for a full build. @@ -1846,7 +1909,7 @@ if [ "$manpage_args" = "" ]; then manpage_args="A" fi -if [ "$vg" -ne 0 ]; then +if [ "$vg" -ne 0 ] || [ "$ossfuzz" -ne 0 ]; then memcheck=1 fi @@ -2011,7 +2074,9 @@ contents=$(replace "$contents" "HISTORY" "$hist") contents=$(replace "$contents" "EXTRA_MATH" "$extra_math") contents=$(replace "$contents" "NLS" "$nls") contents=$(replace "$contents" "FUZZ" "$fuzz") +contents=$(replace "$contents" "OSSFUZZ" "$ossfuzz") contents=$(replace "$contents" "MEMCHECK" "$memcheck") +contents=$(replace "$contents" "LIB_FUZZING_ENGINE" "$LIB_FUZZING_ENGINE") contents=$(replace "$contents" "BC_LIB_O" "$bc_lib") contents=$(replace "$contents" "BC_HELP_O" "$bc_help") @@ -2117,6 +2182,15 @@ if [ "$dc" -ne 0 ]; then gen_err_tests dc $dc_test_exec fi +if [ "$ossfuzz" -ne 0 ]; then + + printf 'bc_fuzzer_c: $(BC_FUZZER)\n\tln -sf $(BC_FUZZER) bc_fuzzer_c\n' >> Makefile + printf 'bc_fuzzer_C: $(BC_FUZZER)\n\tln -sf $(BC_FUZZER) bc_fuzzer_C\n' >> Makefile + printf 'dc_fuzzer_c: $(DC_FUZZER)\n\tln -sf $(DC_FUZZER) dc_fuzzer_c\n' >> Makefile + printf 'dc_fuzzer_C: $(DC_FUZZER)\n\tln -sf $(DC_FUZZER) dc_fuzzer_C\n' >> Makefile + +fi + # Copy the correct manuals to the expected places. mkdir -p manuals cp -f "$scriptdir/manuals/bc/$manpage_args.1.md" manuals/bc.1.md diff --git a/contrib/bc/include/args.h b/contrib/bc/include/args.h index f1e9f007bddf..8f8f00be4630 100644 --- a/contrib/bc/include/args.h +++ b/contrib/bc/include/args.h @@ -54,7 +54,7 @@ * any. */ void -bc_args(int argc, char* argv[], bool exit_exprs, BcBigDig* scale, +bc_args(int argc, const char* argv[], bool exit_exprs, BcBigDig* scale, BcBigDig* ibase, BcBigDig* obase); #if BC_ENABLED diff --git a/contrib/bc/include/bc.h b/contrib/bc/include/bc.h index b25df09a174e..2213278be1da 100644 --- a/contrib/bc/include/bc.h +++ b/contrib/bc/include/bc.h @@ -51,7 +51,7 @@ * @return A status. */ BcStatus -bc_main(int argc, char* argv[]); +bc_main(int argc, const char* argv[]); // These are references to the help text, the library text, and the "filename" // for the library. diff --git a/contrib/bc/include/dc.h b/contrib/bc/include/dc.h index 1328f1c63b38..63f5ccbd10e3 100644 --- a/contrib/bc/include/dc.h +++ b/contrib/bc/include/dc.h @@ -48,7 +48,7 @@ * @return A status. */ BcStatus -dc_main(int argc, char* argv[]); +dc_main(int argc, const char* argv[]); // A reference to the dc help text. extern const char dc_help[]; diff --git a/contrib/bc/include/opt.h b/contrib/bc/include/opt.h index e60328994d8c..41058cb4e29c 100644 --- a/contrib/bc/include/opt.h +++ b/contrib/bc/include/opt.h @@ -47,7 +47,7 @@ typedef struct BcOpt { /// The array of arguments. - char** argv; + const char** argv; /// The index of the current argument. size_t optind; @@ -59,7 +59,7 @@ typedef struct BcOpt int subopt; /// The option argument. - char* optarg; + const char* optarg; } BcOpt; @@ -103,7 +103,7 @@ typedef struct BcOptLong * @param argv The array of arguments. */ void -bc_opt_init(BcOpt* o, char** argv); +bc_opt_init(BcOpt* o, const char** argv); /** * Parse an option. This returns a value the same way getopt() and getopt_long() diff --git a/contrib/bc/include/ossfuzz.h b/contrib/bc/include/ossfuzz.h new file mode 100644 index 000000000000..5c12a3c9c9fb --- /dev/null +++ b/contrib/bc/include/ossfuzz.h @@ -0,0 +1,79 @@ +/* + * ***************************************************************************** + * + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2018-2024 Gavin D. Howard and contributors. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. + * + * ***************************************************************************** + * + * Declarations for the OSS-Fuzz build of bc and dc. + * + */ + +#include +#include + +#ifndef BC_OSSFUZZ_H +#define BC_OSSFUZZ_H + +/// The number of args in fuzzer arguments, including the NULL terminator. +extern const size_t bc_fuzzer_args_len; + +/// The standard arguments for the bc fuzzer with the -c argument. +extern const char* bc_fuzzer_args_c[]; + +/// The standard arguments for the bc fuzzer with the -C argument. +extern const char* bc_fuzzer_args_C[]; + +/// The standard arguments for the dc fuzzer with the -c argument. +extern const char* dc_fuzzer_args_c[]; + +/// The standard arguments for the dc fuzzer with the -C argument. +extern const char* dc_fuzzer_args_C[]; + +/// The data pointer. +extern uint8_t* bc_fuzzer_data; + +/** + * The function that the fuzzer runs. + * @param Data The data. + * @param Size The number of bytes in @a Data. + * @return 0 on success, -1 on error. + * @pre @a Data must not be equal to NULL if @a Size > 0. + */ +int +LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); + +/** + * The initialization function for the fuzzer. + * @param argc A pointer to the argument count. + * @param argv A pointer to the argument list. + * @return 0 on success, -1 on error. + */ +int +LLVMFuzzerInitialize(int* argc, char*** argv); + +#endif // BC_OSSFUZZ_H diff --git a/contrib/bc/include/status.h b/contrib/bc/include/status.h index f579df8c649b..203f09af628b 100644 --- a/contrib/bc/include/status.h +++ b/contrib/bc/include/status.h @@ -46,27 +46,6 @@ #include #include -// This is used by configure.sh to test for OpenBSD. -#ifdef BC_TEST_OPENBSD -#ifdef __OpenBSD__ -#error On OpenBSD without _BSD_SOURCE -#endif // __OpenBSD__ -#endif // BC_TEST_OPENBSD - -// This is used by configure.sh to test for FreeBSD. -#ifdef BC_TEST_FREEBSD -#ifdef __FreeBSD__ -#error On FreeBSD with _POSIX_C_SOURCE -#endif // __FreeBSD__ -#endif // BC_TEST_FREEBSD - -// This is used by configure.sh to test for macOS. -#ifdef BC_TEST_APPLE -#ifdef __APPLE__ -#error On macOS without _DARWIN_C_SOURCE -#endif // __APPLE__ -#endif // BC_TEST_APPLE - // Windows has deprecated isatty() and the rest of these. Or doesn't have them. // So these are just fixes for Windows. #ifdef _WIN32 @@ -676,9 +655,13 @@ typedef enum BcMode /// File mode. BC_MODE_FILE, +#if !BC_ENABLE_OSSFUZZ + /// stdin mode. BC_MODE_STDIN, +#endif // !BC_ENABLE_OSSFUZZ + } BcMode; /// Do a longjmp(). This is what to use when activating an "exception", i.e., a diff --git a/contrib/bc/include/version.h b/contrib/bc/include/version.h index 586691a6e7ef..897a19530e3f 100644 --- a/contrib/bc/include/version.h +++ b/contrib/bc/include/version.h @@ -37,6 +37,6 @@ #define BC_VERSION_H /// The current version. -#define VERSION 6.7.6 +#define VERSION 7.0.0 #endif // BC_VERSION_H diff --git a/contrib/bc/include/vm.h b/contrib/bc/include/vm.h index 052c1d14c237..e81206b63871 100644 --- a/contrib/bc/include/vm.h +++ b/contrib/bc/include/vm.h @@ -794,7 +794,7 @@ bc_vm_info(const char* const help); * @return A status. */ BcStatus -bc_vm_boot(int argc, char* argv[]); +bc_vm_boot(int argc, const char* argv[]); /** * Initializes some of the BcVm global. This is separate to make things easier diff --git a/contrib/bc/manuals/dc/A.1 b/contrib/bc/manuals/dc/A.1 index 33ecb8e2031e..d59e0fa68a58 100644 --- a/contrib/bc/manuals/dc/A.1 +++ b/contrib/bc/manuals/dc/A.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1275,11 +1275,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/A.1.md b/contrib/bc/manuals/dc/A.1.md index 613f98f76814..ad0c59934fd1 100644 --- a/contrib/bc/manuals/dc/A.1.md +++ b/contrib/bc/manuals/dc/A.1.md @@ -1130,11 +1130,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/E.1 b/contrib/bc/manuals/dc/E.1 index 91f68dfd7467..a5febe44705f 100644 --- a/contrib/bc/manuals/dc/E.1 +++ b/contrib/bc/manuals/dc/E.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/E.1.md b/contrib/bc/manuals/dc/E.1.md index 3a47f789bd3e..54b877999d0d 100644 --- a/contrib/bc/manuals/dc/E.1.md +++ b/contrib/bc/manuals/dc/E.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EH.1 b/contrib/bc/manuals/dc/EH.1 index e60e6e0d8497..61fbaa4efe92 100644 --- a/contrib/bc/manuals/dc/EH.1 +++ b/contrib/bc/manuals/dc/EH.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EH.1.md b/contrib/bc/manuals/dc/EH.1.md index 761b9a89947b..6398477a84dd 100644 --- a/contrib/bc/manuals/dc/EH.1.md +++ b/contrib/bc/manuals/dc/EH.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EHN.1 b/contrib/bc/manuals/dc/EHN.1 index d26d49c5ce3d..974cb3c86791 100644 --- a/contrib/bc/manuals/dc/EHN.1 +++ b/contrib/bc/manuals/dc/EHN.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EHN.1.md b/contrib/bc/manuals/dc/EHN.1.md index 58ae149bb686..51e30849996e 100644 --- a/contrib/bc/manuals/dc/EHN.1.md +++ b/contrib/bc/manuals/dc/EHN.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EN.1 b/contrib/bc/manuals/dc/EN.1 index 03cb5743602c..5ce8defc91c7 100644 --- a/contrib/bc/manuals/dc/EN.1 +++ b/contrib/bc/manuals/dc/EN.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EN.1.md b/contrib/bc/manuals/dc/EN.1.md index 64c945be8857..ab9647a196be 100644 --- a/contrib/bc/manuals/dc/EN.1.md +++ b/contrib/bc/manuals/dc/EN.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/H.1 b/contrib/bc/manuals/dc/H.1 index 36f7458a3316..82c1bbd5c2b9 100644 --- a/contrib/bc/manuals/dc/H.1 +++ b/contrib/bc/manuals/dc/H.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1275,11 +1275,14 @@ handler for, it resets. *** 1274 LINES SKIPPED *** From nobody Tue Sep 3 16:29:59 2024 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 4Wyrgq5vYZz5TXCG; Tue, 03 Sep 2024 16:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wyrgq51Krz3yB3; Tue, 3 Sep 2024 16:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725380999; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wGsY7aP0QrsEiAhAMfENWpAnfRCFmJ1/bMp6Uk+sBSY=; b=OSdXk/irA9ihSuUc6wpkxmMEB7pJFwzjU7t7f4+bjFDW17VWpLRnz9mqaUC5QhTJ3ubxJb JHb3Fd3ORU7o1gCPH2t2LBuXSDb2aphai+wNwNj/1F56TsdPwbrq0+LSRsl2Got1AXFLAt NCHIa/+Y4Us087BUPFguate+9S9yNb0KVUxXDv/I/yXRsILGRFmM8l3Yk/tax9A1DsjTog rchA8bfG5Fm6P1KBijshGYGJqiesSjeLlKdHR+jO3h3RXHmVyNJr6CJuov6C3+BICyk2N2 NffboGHxg5INrXcKEgELQE7csgH/tcsTgb0SURGhh3idqYkMKbtpxhJzzGimWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725380999; a=rsa-sha256; cv=none; b=wtTenjb9neKGzFyo+pQmfWARBfaLhoFryK/v/Vh/5jw4YtZzTeY0lB3+wk8xoQ3f08WFSh kip1XAFbvLwH/e/C1/yOWMXiyX1rVomF8koL7ksvGThJD7VF6gPuuhPQ59Mf7h7tAD3MZ+ 7a7nXEH/9SQXg+wTAbZIvirS1nxlWY4g0KD9AgBltpoQzF3QZYtTGYxYTpFiPyQXOGxNMA tiIHO+mtz6jGF+nmURJRN6NdmxGTpc02hOuwGDKyxnuv13iF5NlmGwPbyVBp5HgP645jNi 5qe7OCm3cp9lMsKIjlxhX/JfJ8WDTetQkxV5VEsmeShU8DzZcJrlfCGGxyfpsw== 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=1725380999; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wGsY7aP0QrsEiAhAMfENWpAnfRCFmJ1/bMp6Uk+sBSY=; b=xwUFw0aiepHabL6jhtElp6DfkYDtFfqcggzwPSVv2NduZ/16PIcyzlp1Otkf8YzjhtloH5 9HCer5pbL4ftV9+U62WgZEsRDUSOE4lzZllmFTb4klbVu8tJEFnqx5/FhHx+7XxRAPMDsz VCMDcapatjPvifSW8xKzyih7SbRqltMIri3cAgHN5PmjWZv4VCgT7pwH85o7FwvGEJ61FF cfVqwszmCu9GzpMYqBd/zgZboXTidgmPy3nCqZLnIV55zcT0xJG7syVuqQ9JoZ9GraeAC4 qjx0LjA3gI9nG4sDto5DB/YJ3yLyhnQWaNJy+/N8tfzU/yJZ6YgV4CsW5ANCWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wyrgq4dm0znmS; Tue, 3 Sep 2024 16:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483GTxK3024990; Tue, 3 Sep 2024 16:29:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483GTxCf024987; Tue, 3 Sep 2024 16:29:59 GMT (envelope-from git) Date: Tue, 3 Sep 2024 16:29:59 GMT Message-Id: <202409031629.483GTxCf024987@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Stefan =?utf-8?Q?E=C3=9Fer?= Subject: git: 06bb8e1dab00 - stable/14 - contrib/bc: fix build with GCC 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: se X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 06bb8e1dab004ccb283f7a20fe84aa1326baf6b7 Auto-Submitted: auto-generated The branch stable/14 has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=06bb8e1dab004ccb283f7a20fe84aa1326baf6b7 commit 06bb8e1dab004ccb283f7a20fe84aa1326baf6b7 Author: Stefan Eßer AuthorDate: 2024-08-27 07:11:58 +0000 Commit: Stefan Eßer CommitDate: 2024-09-03 16:28:14 +0000 contrib/bc: fix build with GCC Building with GCC failed with the following error message: error: to be safe all intermediate pointers in cast from 'char **' to 'const char **' must be 'const' qualified [-Werror=cast-qual] This was caused by main() being declared with "char *argv[]" as the 3rd parameter, but argv later being passed cast to "const char**": 113 | if (BC_IS_BC) s = bc_main(argc, (const char**) argv); | ^ This is fixed by declaring the 3rd parameter of main() as "const char *argv[]". Reported by: CI MFC after: 3 days (cherry picked from commit ef5752762ba9ec54d5c02023167d24bcdbb45fd7) vendor/bc: upgrade to version 7.0.1 This update fixes building bc on FreeBSD with non-default compilers (GCC-12, GCC-13). GCC warned about casting argv from non-const to const and since warnings are treated as errors, the build failed. (cherry picked from commit 1e19146fc7692f59e8dfc5da7957e938cd0b81b8) (cherry picked from commit 5b0dc991093c82824f6fe566af947f64f5072264) --- contrib/bc/NEWS.md | 6 ++++++ contrib/bc/include/version.h | 2 +- contrib/bc/src/main.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/bc/NEWS.md b/contrib/bc/NEWS.md index 1775fa0b6533..8156b673ce04 100644 --- a/contrib/bc/NEWS.md +++ b/contrib/bc/NEWS.md @@ -1,5 +1,11 @@ # News +## 7.0.1 + +This is a production release that fixes a warning using GCC on FreeBSD. + +Other users do ***NOT*** need to upgrade. + ## 7.0.0 This is a production release to fix three bugs. diff --git a/contrib/bc/include/version.h b/contrib/bc/include/version.h index 897a19530e3f..4d2f6acfb433 100644 --- a/contrib/bc/include/version.h +++ b/contrib/bc/include/version.h @@ -37,6 +37,6 @@ #define BC_VERSION_H /// The current version. -#define VERSION 7.0.0 +#define VERSION 7.0.1 #endif // BC_VERSION_H diff --git a/contrib/bc/src/main.c b/contrib/bc/src/main.c index e4a1f7399bb4..da4c27156029 100644 --- a/contrib/bc/src/main.c +++ b/contrib/bc/src/main.c @@ -54,7 +54,7 @@ #include int -main(int argc, char* argv[]) +main(int argc, const char* argv[]) { BcStatus s; char* name; From nobody Tue Sep 3 16:34:41 2024 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 4WyrnF23ynz5TXJd; Tue, 03 Sep 2024 16:34: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WyrnF1lXxz417b; Tue, 3 Sep 2024 16:34:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725381281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yuXhPC6MooeYhhviMAcNcYio0RSEKCSTixvohgCx0fg=; b=UHaxkGfsdcS9pc3srEDfpyOnbYUQRiXzwFEMh/WoZWaIr1mQrAzAMIRAvHSuAGADfT3GrP AzIeVkhsJZ49RHW8sQwZr7J71VSttuJRb49xh7x6sJJWaPsZ0OaVK58zh4/0yC4/qpDy3p dwHhd2MIjICHGNtCSIDdTVhwl6C2pVM+YwpkU46aGt2GRKibnMJh4Gve+DhuZggi5H48Sm CO3Xgf0iJkwxmQ8S4Rwhei848jQMUhLAGjkyHYblSFcJHlIy7t5sygWWWS4niJszMIj4eL RQh2ZU7Cy66yWzHAZMzZ+oH1Foj7hGgvU0RL1H5j3ZNtgiPVfORaVeUwz0MEzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725381281; a=rsa-sha256; cv=none; b=ZtNIgS0s5hICts35eYgh9iHgqyJePCVNoX5v+Lxq/pweW7fHBfknTBGUwEfK+ezGZhCG0F cY0lqAV00DJ4A8aipB+9f2o5149RsGjVoZIZKGK7TkaSyx64XH9tL++kaIU7mUJlj91jt4 gwHr8bIbgE4SjZbo6nluqwFC8LkM3NupMKTlQ5ruqA6FbyKfTl4gv++YsdMSK9F50pUaqK i0LjYxDSAKNmFHveM9Dbv0B7/GPt8268CCopSJDG+7054523ukvrsThc86BVbtTPwo64t0 Qpx+yFlKtOUp0gAgfJH5gaPORzqUOJnfsd6LJ5D14YVgJ8f7cecF+s+hZms2Pg== 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=1725381281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yuXhPC6MooeYhhviMAcNcYio0RSEKCSTixvohgCx0fg=; b=rQ5A7EMI+abdAywoQUBJ6RpIUhk1mzD8PW/LIYnqZ2OzcWtEcU+gu0OoqU9zccSeKTck+c HBtrNf4XWocXoH6jygceiAp+AftDCmmXZHngED2yoK6vlJ3VtofTcHexVpDf/B6TKZItYz K1TLgx0mIjbW25208POQLuCHGst6AVRUx3oHvws+pr5X+1wm7y1lQKSJGyUst+1C5HgNJx oCQ8tyKPJp8piblkF7GDPeu1f6j61+gCXqVd5ks6KzC8PsQUrVZwq5kmyfK89iB7XWRrAf OyBHb1eS3K5waqy6Vi54wvvLzK5F3z7s9NLzFPu9UkTH53IMSxMUqzcHOgMnlA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WyrnF1LYsznnL; Tue, 3 Sep 2024 16:34:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483GYfNK041002; Tue, 3 Sep 2024 16:34:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483GYf8e040999; Tue, 3 Sep 2024 16:34:41 GMT (envelope-from git) Date: Tue, 3 Sep 2024 16:34:41 GMT Message-Id: <202409031634.483GYf8e040999@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Stefan =?utf-8?Q?E=C3=9Fer?= Subject: git: 1d669b3d15bc - stable/13 - vendor/bc: upgrade to version 7.0.0 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: se X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1d669b3d15bcbb38bbec8023a370b7a56e85a26d Auto-Submitted: auto-generated The branch stable/13 has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=1d669b3d15bcbb38bbec8023a370b7a56e85a26d commit 1d669b3d15bcbb38bbec8023a370b7a56e85a26d Author: Stefan Eßer AuthorDate: 2024-08-23 16:45:58 +0000 Commit: Stefan Eßer CommitDate: 2024-09-03 16:30:44 +0000 vendor/bc: upgrade to version 7.0.0 This is a production release to fix three bugs, none of which affects well formed scripts on FreeBSD: The first bug is that bc/dc will exit on macOS when the terminal is resized. The second bug is that an array, which should only be a function parameter, was accepted as part of larger expressions. The third bug is that the value stack for dc was cleared on any error. However, this is not how other dc behave. To bring dc more in line with other implementations, this behavior was changed. This change is why this version is a new major version. (cherry picked from commit 54d20d67e2af28d948ce2df13feb039fa10900fc) (cherry picked from commit 12e0d316644a4f80f5f1f78cf07bd93def43b1ca) --- contrib/bc/Makefile.in | 10 +++- contrib/bc/NEWS.md | 14 +++++ contrib/bc/compile_flags.txt | 1 + contrib/bc/configure.sh | 120 ++++++++++++++++++++++++++++++-------- contrib/bc/include/args.h | 2 +- contrib/bc/include/bc.h | 2 +- contrib/bc/include/dc.h | 2 +- contrib/bc/include/opt.h | 6 +- contrib/bc/include/ossfuzz.h | 79 +++++++++++++++++++++++++ contrib/bc/include/status.h | 25 ++------ contrib/bc/include/version.h | 2 +- contrib/bc/include/vm.h | 2 +- contrib/bc/manuals/dc/A.1 | 7 ++- contrib/bc/manuals/dc/A.1.md | 9 ++- contrib/bc/manuals/dc/E.1 | 7 ++- contrib/bc/manuals/dc/E.1.md | 9 ++- contrib/bc/manuals/dc/EH.1 | 7 ++- contrib/bc/manuals/dc/EH.1.md | 9 ++- contrib/bc/manuals/dc/EHN.1 | 7 ++- contrib/bc/manuals/dc/EHN.1.md | 9 ++- contrib/bc/manuals/dc/EN.1 | 7 ++- contrib/bc/manuals/dc/EN.1.md | 9 ++- contrib/bc/manuals/dc/H.1 | 7 ++- contrib/bc/manuals/dc/H.1.md | 9 ++- contrib/bc/manuals/dc/HN.1 | 7 ++- contrib/bc/manuals/dc/HN.1.md | 9 ++- contrib/bc/manuals/dc/N.1 | 7 ++- contrib/bc/manuals/dc/N.1.md | 9 ++- contrib/bc/scripts/os.c | 59 +++++++++++++++++++ contrib/bc/src/args.c | 4 +- contrib/bc/src/bc.c | 3 +- contrib/bc/src/bc_fuzzer.c | 112 +++++++++++++++++++++++++++++++++++ contrib/bc/src/bc_lex.c | 2 + contrib/bc/src/bc_parse.c | 23 +++++++- contrib/bc/src/data.c | 59 +++++++++++++++++++ contrib/bc/src/dc.c | 3 +- contrib/bc/src/dc_fuzzer.c | 112 +++++++++++++++++++++++++++++++++++ contrib/bc/src/dc_lex.c | 2 + contrib/bc/src/history.c | 2 +- contrib/bc/src/lang.c | 4 +- contrib/bc/src/lex.c | 8 +++ contrib/bc/src/main.c | 21 +++++-- contrib/bc/src/num.c | 4 ++ contrib/bc/src/opt.c | 14 ++--- contrib/bc/src/program.c | 13 +++-- contrib/bc/src/vm.c | 38 ++++++++++-- contrib/bc/tests/bc/errors/37.txt | 37 ++++++++++++ contrib/bc/tests/bc/errors/38.txt | 37 ++++++++++++ contrib/bc/vs/bc.vcxproj | 18 +++--- include/ossfuzz.h | 79 +++++++++++++++++++++++++ 50 files changed, 914 insertions(+), 133 deletions(-) diff --git a/contrib/bc/Makefile.in b/contrib/bc/Makefile.in index 4adb76ddaa17..c63dc242e79a 100644 --- a/contrib/bc/Makefile.in +++ b/contrib/bc/Makefile.in @@ -94,6 +94,10 @@ BC = bc DC = dc BC_EXEC = $(BIN)/$(EXEC_PREFIX)$(BC) DC_EXEC = $(BIN)/$(EXEC_PREFIX)$(DC) +BC_FUZZER = $(BIN)/$(BC)_fuzzer_c +BC_FUZZER_C = $(BIN)/$(BC)_fuzzer_C +DC_FUZZER = $(BIN)/$(DC)_fuzzer_c +DC_FUZZER_C = $(BIN)/$(DC)_fuzzer_C BC_TEST_OUTPUTS = tests/bc_outputs BC_FUZZ_OUTPUTS = tests/fuzzing/bc_outputs1 tests/fuzzing/bc_outputs2 tests/fuzzing/bc_outputs3 @@ -149,8 +153,11 @@ BC_ENABLE_NLS = %%NLS%% BC_EXCLUDE_EXTRA_MATH = %%EXCLUDE_EXTRA_MATH%% BC_ENABLE_AFL = %%FUZZ%% +BC_ENABLE_OSSFUZZ = %%OSSFUZZ%% BC_ENABLE_MEMCHECK = %%MEMCHECK%% +LIB_FUZZING_ENGINE = %%LIB_FUZZING_ENGINE%% + BC_DEFAULT_BANNER = %%BC_DEFAULT_BANNER%% BC_DEFAULT_SIGINT_RESET = %%BC_DEFAULT_SIGINT_RESET%% DC_DEFAULT_SIGINT_RESET = %%DC_DEFAULT_SIGINT_RESET%% @@ -210,7 +217,8 @@ CPPFLAGS5 = $(CPPFLAGS4) -DBC_NUM_KARATSUBA_LEN=$(BC_NUM_KARATSUBA_LEN) CPPFLAGS6 = $(CPPFLAGS5) -DBC_ENABLE_NLS=$(BC_ENABLE_NLS) CPPFLAGS7 = $(CPPFLAGS6) -D$(BC_ENABLE_EXTRA_MATH_NAME)=$(BC_ENABLE_EXTRA_MATH) CPPFLAGS8 = $(CPPFLAGS7) -DBC_ENABLE_HISTORY=$(BC_ENABLE_HISTORY) -DBC_ENABLE_LIBRARY=$(BC_ENABLE_LIBRARY) -CPPFLAGS = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL) +CPPFLAGS9 = $(CPPFLAGS8) -DBC_ENABLE_MEMCHECK=$(BC_ENABLE_MEMCHECK) -DBC_ENABLE_AFL=$(BC_ENABLE_AFL) +CPPFLAGS = $(CPPFLAGS9) -DBC_ENABLE_OSSFUZZ=$(BC_ENABLE_OSSFUZZ) CFLAGS = $(CPPFLAGS) $(BC_DEFS) $(DC_DEFS) %%CPPFLAGS%% %%CFLAGS%% LDFLAGS = %%LDFLAGS%% diff --git a/contrib/bc/NEWS.md b/contrib/bc/NEWS.md index 95de7e5182c4..1775fa0b6533 100644 --- a/contrib/bc/NEWS.md +++ b/contrib/bc/NEWS.md @@ -1,5 +1,19 @@ # News +## 7.0.0 + +This is a production release to fix three bugs. + +The first bug is that `bc`/`dc` will exit on macOS when the terminal is resized. + +The second bug is that an array, which should only be a function parameter, was +accepted as part of larger expressions. + +The third bug is that value stack for `dc` was cleared on any error. However, +this is not how other `dc` behave. To bring `dc` more in line with other +implementations, this behavior was changed. This change is why this version is a +new major version. + ## 6.7.6 This is a production release to fix one bug. diff --git a/contrib/bc/compile_flags.txt b/contrib/bc/compile_flags.txt index 7a08c87f3876..3324798013c6 100644 --- a/contrib/bc/compile_flags.txt +++ b/contrib/bc/compile_flags.txt @@ -13,3 +13,4 @@ -DBC_ENABLE_EXTRA_MATH=1 -DBC_ENABLE_HISTORY=1 -DBC_ENABLE_NLS=1 +-DBC_ENABLE_OSSFUZZ=0 diff --git a/contrib/bc/configure.sh b/contrib/bc/configure.sh index 43bb502ea817..442165d15693 100755 --- a/contrib/bc/configure.sh +++ b/contrib/bc/configure.sh @@ -68,7 +68,7 @@ usage() { printf ' [--man3dir=MAN3DIR]\n' if [ "$_usage_val" -ne 0 ]; then - exit + exit "$_usage_val" fi printf '\n' @@ -181,6 +181,8 @@ usage() { printf ' Enable a build appropriate for valgrind. For development only.\n' printf ' -z, --enable-fuzz-mode\n' printf ' Enable fuzzing mode. THIS IS FOR DEVELOPMENT ONLY.\n' + printf ' -Z, --enable-ossfuzz-mode\n' + printf ' Enable fuzzing mode for OSS-Fuzz. THIS IS FOR DEVELOPMENT ONLY.\n' printf ' --prefix PREFIX\n' printf ' The prefix to install to. Overrides "$PREFIX" if it exists.\n' printf ' If PREFIX is "/usr", install path will be "/usr/bin".\n' @@ -722,6 +724,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -755,6 +758,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -772,7 +776,8 @@ predefined_build() { dc_default_digit_clamp=0;; GDH) - CFLAGS="-flto -Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories -Werror -pedantic -std=c11" + CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories" + CFLAGS="$CFLAGS -Wno-switch-default -Werror -pedantic -std=c11" bc_only=0 dc_only=0 coverage=0 @@ -789,6 +794,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -806,7 +812,8 @@ predefined_build() { dc_default_digit_clamp=1;; DBG) - CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories -Werror -pedantic -std=c11" + CFLAGS="-Weverything -Wno-padded -Wno-unsafe-buffer-usage -Wno-poison-system-directories" + CFLAGS="$CFLAGS -Wno-switch-default -Werror -pedantic -std=c11" bc_only=0 dc_only=0 coverage=0 @@ -823,6 +830,7 @@ predefined_build() { all_locales=0 library=0 fuzz=0 + ossfuzz=0 time_tests=0 vg=0 memcheck=1 @@ -888,6 +896,7 @@ strip_bin=1 all_locales=0 library=0 fuzz=0 +ossfuzz=0 time_tests=0 vg=0 memcheck=0 @@ -911,7 +920,7 @@ dc_default_digit_clamp=0 # getopts is a POSIX utility, but it cannot handle long options. Thus, the # handling of long options is done by hand, and that's the reason that short and # long options cannot be mixed. -while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do +while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvzZ-" opt; do case "$opt" in a) library=1 ;; @@ -944,6 +953,7 @@ while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do T) strip_bin=0 ;; v) vg=1 ;; z) fuzz=1 ;; + Z) ossfuzz=1 ;; -) arg="$1" arg="${arg#--}" @@ -1070,6 +1080,7 @@ while getopts "abBcdDeEfgGhHik:lMmNO:p:PrS:s:tTvz-" opt; do enable-test-timing) time_tests=1 ;; enable-valgrind) vg=1 ;; enable-fuzz-mode) fuzz=1 ;; + enable-ossfuzz-mode) ossfuzz=1 ;; enable-memcheck) memcheck=1 ;; install-all-locales) all_locales=1 ;; help* | bc-only* | dc-only* | coverage* | debug*) @@ -1320,6 +1331,45 @@ elif [ "$dc_only" -eq 1 ]; then tests="test_dc" +elif [ "$ossfuzz" -eq 1 ]; then + + if [ "$bc_only" -ne 0 ] || [ "$dc_only" -ne 0 ]; then + usage "An OSS-Fuzz build must build both fuzzers." + fi + + bc=1 + dc=1 + + # Expressions *cannot* exit in an OSS-Fuzz build. + bc_default_expr_exit=0 + dc_default_expr_exit=0 + + executables="bc_fuzzer and dc_fuzzer" + + karatsuba="@\$(KARATSUBA) 30 0 \$(BC_EXEC)" + karatsuba_test="@\$(KARATSUBA) 1 100 \$(BC_EXEC)" + + if [ "$library" -eq 0 ]; then + install_prereqs=" install_execs" + install_man_prereqs=" install_bc_manpage install_dc_manpage" + uninstall_prereqs=" uninstall_bc uninstall_dc" + uninstall_man_prereqs=" uninstall_bc_manpage uninstall_dc_manpage" + else + install_prereqs=" install_library install_bcl_header" + install_man_prereqs=" install_bcl_manpage" + uninstall_prereqs=" uninstall_library uninstall_bcl_header" + uninstall_man_prereqs=" uninstall_bcl_manpage" + tests="test_library" + fi + + second_target_prereqs="src/bc_fuzzer.o $default_target_prereqs" + default_target_prereqs="\$(BC_FUZZER) src/dc_fuzzer.o $default_target_prereqs" + default_target_cmd="\$(CXX) \$(CFLAGS) src/dc_fuzzer.o \$(LIB_FUZZING_ENGINE) \$(OBJS) \$(LDFLAGS) -o \$(DC_FUZZER) \&\& ln -sf ./dc_fuzzer_c \$(DC_FUZZER_C)" + second_target_cmd="\$(CXX) \$(CFLAGS) src/bc_fuzzer.o \$(LIB_FUZZING_ENGINE) \$(OBJS) \$(LDFLAGS) -o \$(BC_FUZZER) \&\& ln -sf ./bc_fuzzer_c \$(BC_FUZZER_C)" + + default_target="\$(DC_FUZZER) \$(DC_FUZZER_C)" + second_target="\$(BC_FUZZER) \$(BC_FUZZER_C)" + else bc=1 @@ -1349,8 +1399,12 @@ else fi +if [ "$fuzz" -ne 0 ] && [ "$ossfuzz" -ne 0 ]; then + usage "Fuzzing mode and OSS-Fuzz mode are mutually exclusive" +fi + # We need specific stuff for fuzzing. -if [ "$fuzz" -ne 0 ]; then +if [ "$fuzz" -ne 0 ] || [ "$ossfuzz" -ne 0 ]; then debug=1 hist=0 nls=0 @@ -1395,7 +1449,6 @@ else COVERAGE_PREREQS="" fi - # Set some defaults. if [ -z "${DESTDIR+set}" ]; then destdir="" @@ -1485,8 +1538,8 @@ if [ "$nls" -ne 0 ]; then flags="-DBC_ENABLE_NLS=1 -DBC_ENABLED=$bc -DDC_ENABLED=$dc" flags="$flags -DBC_ENABLE_HISTORY=$hist -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_AFL=0" - flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -I$scriptdir/include/" - flags="$flags -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" + flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -DBC_ENABLE_OSSFUZZ=0" + flags="$flags -I$scriptdir/include/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" ccbase=$(basename "$CC") @@ -1494,14 +1547,14 @@ if [ "$nls" -ne 0 ]; then flags="$flags -Wno-unreachable-code" fi - "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/vm.c" -o "./vm.o" > /dev/null 2>&1 + "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/vm.c" -E > /dev/null err="$?" rm -rf "./vm.o" - # If this errors, it is probably because of building on Windows, - # and NLS is not supported on Windows, so disable it. + # If this errors, it is probably because of building on Windows or musl, + # and NLS is not supported on Windows or musl, so disable it. if [ "$err" -ne 0 ]; then printf 'NLS does not work.\n' if [ $force -eq 0 ]; then @@ -1514,7 +1567,7 @@ if [ "$nls" -ne 0 ]; then printf 'NLS works.\n\n' printf 'Testing gencat...\n' - gencat "./en_US.cat" "$scriptdir/locales/en_US.msg" > /dev/null 2>&1 + gencat "./en_US.cat" "$scriptdir/locales/en_US.msg" > /dev/null err="$?" @@ -1587,10 +1640,10 @@ if [ "$hist" -eq 1 ]; then flags="-DBC_ENABLE_HISTORY=1 -DBC_ENABLED=$bc -DDC_ENABLED=$dc" flags="$flags -DBC_ENABLE_NLS=$nls -DBC_ENABLE_LIBRARY=0 -DBC_ENABLE_AFL=0" flags="$flags -DBC_ENABLE_EDITLINE=$editline -DBC_ENABLE_READLINE=$readline" - flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -I$scriptdir/include/" - flags="$flags -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" + flags="$flags -DBC_ENABLE_EXTRA_MATH=$extra_math -DBC_ENABLE_OSSFUZZ=0" + flags="$flags -I$scriptdir/include/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700" - "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/history.c" -o "./history.o" > /dev/null 2>&1 + "$CC" $CPPFLAGS $CFLAGS $flags -c "$scriptdir/src/history.c" -E > /dev/null err="$?" @@ -1660,7 +1713,7 @@ set +e printf 'Testing for FreeBSD...\n' flags="-DBC_TEST_FREEBSD -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1677,7 +1730,7 @@ fi printf 'Testing for macOS...\n' flags="-DBC_TEST_APPLE -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1705,7 +1758,7 @@ fi printf 'Testing for OpenBSD...\n' flags="-DBC_TEST_OPENBSD -DBC_ENABLE_AFL=0" -"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/src/vm.c" > /dev/null 2>&1 +"$CC" $CPPFLAGS $CFLAGS $flags "-I$scriptdir/include" -E "$scriptdir/scripts/os.c" > /dev/null err="$?" @@ -1741,7 +1794,7 @@ GEN_DIR="$scriptdir/gen" # These lines set the appropriate targets based on whether `gen/strgen.c` or # `gen/strgen.sh` is used. GEN="strgen" -GEN_EXEC_TARGET="\$(HOSTCC) -DBC_ENABLE_AFL=0 -I$scriptdir/include/ \$(HOSTCFLAGS) -o \$(GEN_EXEC) \$(GEN_C)" +GEN_EXEC_TARGET="\$(HOSTCC) -DBC_ENABLE_AFL=0 -DBC_ENABLE_OSSFUZZ=0 -I$scriptdir/include/ \$(HOSTCFLAGS) -o \$(GEN_EXEC) \$(GEN_C)" CLEAN_PREREQS=" clean_gen clean_coverage" if [ -z "${GEN_HOST+set}" ]; then @@ -1754,8 +1807,9 @@ else fi fi +# The fuzzer files are always unneeded because they'll be built separately. manpage_args="" -unneeded="" +unneeded="bc_fuzzer.c dc_fuzzer.c" headers="\$(HEADERS)" # This series of if statements figure out what source files are *not* needed. @@ -1826,6 +1880,14 @@ if [ "$library" -ne 0 ]; then fi +elif [ "$ossfuzz" -ne 0 ]; then + + unneeded="$unneeded library.c main.c" + + PC_PATH="" + pkg_config_install="" + pkg_config_uninstall="" + else unneeded="$unneeded library.c" @@ -1836,9 +1898,10 @@ else fi -# library.c is not needed under normal circumstances. +# library.c, bc_fuzzer.c, and dc_fuzzer.c are not needed under normal +# circumstances. if [ "$unneeded" = "" ]; then - unneeded="library.c" + unneeded="library.c bc_fuzzer.c dc_fuzzer.c" fi # This sets the appropriate manpage for a full build. @@ -1846,7 +1909,7 @@ if [ "$manpage_args" = "" ]; then manpage_args="A" fi -if [ "$vg" -ne 0 ]; then +if [ "$vg" -ne 0 ] || [ "$ossfuzz" -ne 0 ]; then memcheck=1 fi @@ -2011,7 +2074,9 @@ contents=$(replace "$contents" "HISTORY" "$hist") contents=$(replace "$contents" "EXTRA_MATH" "$extra_math") contents=$(replace "$contents" "NLS" "$nls") contents=$(replace "$contents" "FUZZ" "$fuzz") +contents=$(replace "$contents" "OSSFUZZ" "$ossfuzz") contents=$(replace "$contents" "MEMCHECK" "$memcheck") +contents=$(replace "$contents" "LIB_FUZZING_ENGINE" "$LIB_FUZZING_ENGINE") contents=$(replace "$contents" "BC_LIB_O" "$bc_lib") contents=$(replace "$contents" "BC_HELP_O" "$bc_help") @@ -2117,6 +2182,15 @@ if [ "$dc" -ne 0 ]; then gen_err_tests dc $dc_test_exec fi +if [ "$ossfuzz" -ne 0 ]; then + + printf 'bc_fuzzer_c: $(BC_FUZZER)\n\tln -sf $(BC_FUZZER) bc_fuzzer_c\n' >> Makefile + printf 'bc_fuzzer_C: $(BC_FUZZER)\n\tln -sf $(BC_FUZZER) bc_fuzzer_C\n' >> Makefile + printf 'dc_fuzzer_c: $(DC_FUZZER)\n\tln -sf $(DC_FUZZER) dc_fuzzer_c\n' >> Makefile + printf 'dc_fuzzer_C: $(DC_FUZZER)\n\tln -sf $(DC_FUZZER) dc_fuzzer_C\n' >> Makefile + +fi + # Copy the correct manuals to the expected places. mkdir -p manuals cp -f "$scriptdir/manuals/bc/$manpage_args.1.md" manuals/bc.1.md diff --git a/contrib/bc/include/args.h b/contrib/bc/include/args.h index f1e9f007bddf..8f8f00be4630 100644 --- a/contrib/bc/include/args.h +++ b/contrib/bc/include/args.h @@ -54,7 +54,7 @@ * any. */ void -bc_args(int argc, char* argv[], bool exit_exprs, BcBigDig* scale, +bc_args(int argc, const char* argv[], bool exit_exprs, BcBigDig* scale, BcBigDig* ibase, BcBigDig* obase); #if BC_ENABLED diff --git a/contrib/bc/include/bc.h b/contrib/bc/include/bc.h index b25df09a174e..2213278be1da 100644 --- a/contrib/bc/include/bc.h +++ b/contrib/bc/include/bc.h @@ -51,7 +51,7 @@ * @return A status. */ BcStatus -bc_main(int argc, char* argv[]); +bc_main(int argc, const char* argv[]); // These are references to the help text, the library text, and the "filename" // for the library. diff --git a/contrib/bc/include/dc.h b/contrib/bc/include/dc.h index 1328f1c63b38..63f5ccbd10e3 100644 --- a/contrib/bc/include/dc.h +++ b/contrib/bc/include/dc.h @@ -48,7 +48,7 @@ * @return A status. */ BcStatus -dc_main(int argc, char* argv[]); +dc_main(int argc, const char* argv[]); // A reference to the dc help text. extern const char dc_help[]; diff --git a/contrib/bc/include/opt.h b/contrib/bc/include/opt.h index e60328994d8c..41058cb4e29c 100644 --- a/contrib/bc/include/opt.h +++ b/contrib/bc/include/opt.h @@ -47,7 +47,7 @@ typedef struct BcOpt { /// The array of arguments. - char** argv; + const char** argv; /// The index of the current argument. size_t optind; @@ -59,7 +59,7 @@ typedef struct BcOpt int subopt; /// The option argument. - char* optarg; + const char* optarg; } BcOpt; @@ -103,7 +103,7 @@ typedef struct BcOptLong * @param argv The array of arguments. */ void -bc_opt_init(BcOpt* o, char** argv); +bc_opt_init(BcOpt* o, const char** argv); /** * Parse an option. This returns a value the same way getopt() and getopt_long() diff --git a/contrib/bc/include/ossfuzz.h b/contrib/bc/include/ossfuzz.h new file mode 100644 index 000000000000..5c12a3c9c9fb --- /dev/null +++ b/contrib/bc/include/ossfuzz.h @@ -0,0 +1,79 @@ +/* + * ***************************************************************************** + * + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2018-2024 Gavin D. Howard and contributors. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. + * + * ***************************************************************************** + * + * Declarations for the OSS-Fuzz build of bc and dc. + * + */ + +#include +#include + +#ifndef BC_OSSFUZZ_H +#define BC_OSSFUZZ_H + +/// The number of args in fuzzer arguments, including the NULL terminator. +extern const size_t bc_fuzzer_args_len; + +/// The standard arguments for the bc fuzzer with the -c argument. +extern const char* bc_fuzzer_args_c[]; + +/// The standard arguments for the bc fuzzer with the -C argument. +extern const char* bc_fuzzer_args_C[]; + +/// The standard arguments for the dc fuzzer with the -c argument. +extern const char* dc_fuzzer_args_c[]; + +/// The standard arguments for the dc fuzzer with the -C argument. +extern const char* dc_fuzzer_args_C[]; + +/// The data pointer. +extern uint8_t* bc_fuzzer_data; + +/** + * The function that the fuzzer runs. + * @param Data The data. + * @param Size The number of bytes in @a Data. + * @return 0 on success, -1 on error. + * @pre @a Data must not be equal to NULL if @a Size > 0. + */ +int +LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); + +/** + * The initialization function for the fuzzer. + * @param argc A pointer to the argument count. + * @param argv A pointer to the argument list. + * @return 0 on success, -1 on error. + */ +int +LLVMFuzzerInitialize(int* argc, char*** argv); + +#endif // BC_OSSFUZZ_H diff --git a/contrib/bc/include/status.h b/contrib/bc/include/status.h index f579df8c649b..203f09af628b 100644 --- a/contrib/bc/include/status.h +++ b/contrib/bc/include/status.h @@ -46,27 +46,6 @@ #include #include -// This is used by configure.sh to test for OpenBSD. -#ifdef BC_TEST_OPENBSD -#ifdef __OpenBSD__ -#error On OpenBSD without _BSD_SOURCE -#endif // __OpenBSD__ -#endif // BC_TEST_OPENBSD - -// This is used by configure.sh to test for FreeBSD. -#ifdef BC_TEST_FREEBSD -#ifdef __FreeBSD__ -#error On FreeBSD with _POSIX_C_SOURCE -#endif // __FreeBSD__ -#endif // BC_TEST_FREEBSD - -// This is used by configure.sh to test for macOS. -#ifdef BC_TEST_APPLE -#ifdef __APPLE__ -#error On macOS without _DARWIN_C_SOURCE -#endif // __APPLE__ -#endif // BC_TEST_APPLE - // Windows has deprecated isatty() and the rest of these. Or doesn't have them. // So these are just fixes for Windows. #ifdef _WIN32 @@ -676,9 +655,13 @@ typedef enum BcMode /// File mode. BC_MODE_FILE, +#if !BC_ENABLE_OSSFUZZ + /// stdin mode. BC_MODE_STDIN, +#endif // !BC_ENABLE_OSSFUZZ + } BcMode; /// Do a longjmp(). This is what to use when activating an "exception", i.e., a diff --git a/contrib/bc/include/version.h b/contrib/bc/include/version.h index 586691a6e7ef..897a19530e3f 100644 --- a/contrib/bc/include/version.h +++ b/contrib/bc/include/version.h @@ -37,6 +37,6 @@ #define BC_VERSION_H /// The current version. -#define VERSION 6.7.6 +#define VERSION 7.0.0 #endif // BC_VERSION_H diff --git a/contrib/bc/include/vm.h b/contrib/bc/include/vm.h index 052c1d14c237..e81206b63871 100644 --- a/contrib/bc/include/vm.h +++ b/contrib/bc/include/vm.h @@ -794,7 +794,7 @@ bc_vm_info(const char* const help); * @return A status. */ BcStatus -bc_vm_boot(int argc, char* argv[]); +bc_vm_boot(int argc, const char* argv[]); /** * Initializes some of the BcVm global. This is separate to make things easier diff --git a/contrib/bc/manuals/dc/A.1 b/contrib/bc/manuals/dc/A.1 index 33ecb8e2031e..d59e0fa68a58 100644 --- a/contrib/bc/manuals/dc/A.1 +++ b/contrib/bc/manuals/dc/A.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1275,11 +1275,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/A.1.md b/contrib/bc/manuals/dc/A.1.md index 613f98f76814..ad0c59934fd1 100644 --- a/contrib/bc/manuals/dc/A.1.md +++ b/contrib/bc/manuals/dc/A.1.md @@ -1130,11 +1130,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/E.1 b/contrib/bc/manuals/dc/E.1 index 91f68dfd7467..a5febe44705f 100644 --- a/contrib/bc/manuals/dc/E.1 +++ b/contrib/bc/manuals/dc/E.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/E.1.md b/contrib/bc/manuals/dc/E.1.md index 3a47f789bd3e..54b877999d0d 100644 --- a/contrib/bc/manuals/dc/E.1.md +++ b/contrib/bc/manuals/dc/E.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EH.1 b/contrib/bc/manuals/dc/EH.1 index e60e6e0d8497..61fbaa4efe92 100644 --- a/contrib/bc/manuals/dc/EH.1 +++ b/contrib/bc/manuals/dc/EH.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EH.1.md b/contrib/bc/manuals/dc/EH.1.md index 761b9a89947b..6398477a84dd 100644 --- a/contrib/bc/manuals/dc/EH.1.md +++ b/contrib/bc/manuals/dc/EH.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EHN.1 b/contrib/bc/manuals/dc/EHN.1 index d26d49c5ce3d..974cb3c86791 100644 --- a/contrib/bc/manuals/dc/EHN.1 +++ b/contrib/bc/manuals/dc/EHN.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EHN.1.md b/contrib/bc/manuals/dc/EHN.1.md index 58ae149bb686..51e30849996e 100644 --- a/contrib/bc/manuals/dc/EHN.1.md +++ b/contrib/bc/manuals/dc/EHN.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/EN.1 b/contrib/bc/manuals/dc/EN.1 index 03cb5743602c..5ce8defc91c7 100644 --- a/contrib/bc/manuals/dc/EN.1 +++ b/contrib/bc/manuals/dc/EN.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1061,11 +1061,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the -stack. +execution stack. The behavior is not unlike that of exceptions in programming languages. Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. .PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error diff --git a/contrib/bc/manuals/dc/EN.1.md b/contrib/bc/manuals/dc/EN.1.md index 64c945be8857..ab9647a196be 100644 --- a/contrib/bc/manuals/dc/EN.1.md +++ b/contrib/bc/manuals/dc/EN.1.md @@ -961,11 +961,14 @@ the next non-space characters do not match that regex. When dc(1) encounters an error or a signal that it has a non-default handler for, it resets. This means that several things happen. -First, any macros that are executing are stopped and popped off the stack. -The behavior is not unlike that of exceptions in programming languages. Then -the execution point is set so that any code waiting to execute (after all +First, any macros that are executing are stopped and popped off the execution +stack. The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute (after all macros returned) is skipped. +However, the stack of values is *not* cleared; in interactive mode, users can +inspect the stack and manipulate it. + Thus, when dc(1) resets, it skips any remaining code waiting to be executed. Then, if it is interactive mode, and the error was not a fatal error (see the **EXIT STATUS** section), it asks for more input; otherwise, it exits with the diff --git a/contrib/bc/manuals/dc/H.1 b/contrib/bc/manuals/dc/H.1 index 36f7458a3316..82c1bbd5c2b9 100644 --- a/contrib/bc/manuals/dc/H.1 +++ b/contrib/bc/manuals/dc/H.1 @@ -25,7 +25,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.TH "DC" "1" "January 2024" "Gavin D. Howard" "General Commands Manual" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" .nh .ad l .SH Name @@ -1275,11 +1275,14 @@ handler for, it resets. This means that several things happen. .PP First, any macros that are executing are stopped and popped off the *** 1271 LINES SKIPPED *** From nobody Tue Sep 3 17:09:21 2024 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 4WysYF4WJXz5Tbfn; Tue, 03 Sep 2024 17:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WysYF42Wrz46yc; Tue, 3 Sep 2024 17:09:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725383361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MjqrciptQ8LsvaVuPme0E+P2beG1tXCXsKBurv0dsig=; b=PVsDsa7aTZkjO0HtpquYRZGTNsKj6EEfYLX8ReKe/sPJt7abEB+G+u+tn2PLv8CHoTrxWv nbzzUkolfI7kLTJKh0LL9434ISc10jiorTx/ni2DihuJbpG9PMgOnHU0kmqkluUxhvgWDu 41KztQaFNDnZ8AIpUVSiFnZbK+3F4/OwwSm7NyqETpvnp/R36vw/LrYsE6CsFoyLShYa5V CDbtYNmISHgtltX9UwVWttkbusazy+0jwRgBXJhL4fQiwnPpywy9qA65/CL9LO4t6MqHd1 wR3ZZuLf985zGWgQCAkFBstDuuWmC7mKf6g1ga4/ENE3UO5BunWjji0UmzfpHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725383361; a=rsa-sha256; cv=none; b=tt/a669F35UI5eJFCW4cY3BxcUt7pPIGLLG7eeKe9WYHJbMvaJrLZzxL5vgAMgWW4DWsK/ nStIUI1GvY1/OodxnkhFbdAARQ5HWo/Aq6lbyeQtCzlZo3EapefP8X0mJa0FbokrEIGIYh ZPu6KWBgAme9l9SoKXj3pY4TdNDJqFApf88SfkKoI8oQDTHckiqfnXSFBk2rc/8KFKJOC6 lL3hkZYgaRr0xJhtZ6V+jtab1qEwg+UKNV+lIknEw/oAGFadG13SLc+0MaxnFLRMiEoOF1 gQF+WIwHintl5ZZxNlq+JxouQNh9IqqYhXrTNXE6Qs8PqDvEVPGXOSbseo/AWw== 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=1725383361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MjqrciptQ8LsvaVuPme0E+P2beG1tXCXsKBurv0dsig=; b=PYK9ZuH/hzoFPrel2ZUNcRAJ3yH1t9YodCI2C0D/3xM3F/MZJIhc/nLdvr3ifg6ygcrsso dQxf3b+mg0Y5B6BORpYXxcODTqDQhrZPo7nMLBQyzUAboRGLzo827m+Y3+0TLf7InD0h+V LIoUX3HKdLHragI7k59pkjYE5ihgNGCFobUw9S1C9+541DQx2EQZ5THGg05vYm22IMXnbb F7jEwgrczLMfXOOwM4xWhDjuowv396o4MWsIXnvE8a9R7w7tWosofbr9anup1HnVggrNKv WA4af+lwlx3F+x45hj9w0rzYg9s5BJBFW68ArZ/0Pl9tJFWOvKHVd6O25S18gA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WysYF2zVQzprs; Tue, 3 Sep 2024 17:09:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483H9LR3093304; Tue, 3 Sep 2024 17:09:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483H9L20093301; Tue, 3 Sep 2024 17:09:21 GMT (envelope-from git) Date: Tue, 3 Sep 2024 17:09:21 GMT Message-Id: <202409031709.483H9L20093301@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gordon Tetlow Subject: git: 5946b0c6cbc7 - stable/14 - openssl: Avoid type errors in EAI-related name check logic. 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gordon X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5946b0c6cbc77e6c5f62f5f7e635c6036e14f4d0 Auto-Submitted: auto-generated The branch stable/14 has been updated by gordon: URL: https://cgit.FreeBSD.org/src/commit/?id=5946b0c6cbc77e6c5f62f5f7e635c6036e14f4d0 commit 5946b0c6cbc77e6c5f62f5f7e635c6036e14f4d0 Author: Viktor Dukhovni AuthorDate: 2024-06-19 11:04:11 +0000 Commit: Gordon Tetlow CommitDate: 2024-09-03 17:07:59 +0000 openssl: Avoid type errors in EAI-related name check logic. The incorrectly typed data is read only, used in a compare operation, so neither remote code execution, nor memory content disclosure were possible. However, applications performing certificate name checks were vulnerable to denial of service. The GENERAL_TYPE data type is a union, and we must take care to access the correct member, based on `gen->type`, not all the member fields have the same structure, and a segfault is possible if the wrong member field is read. The code in question was lightly refactored with the intent to make it more obviously correct. Security: CVE-2024-6119 Obtained from: OpenSSL Project (cherry picked from commit 1486960d6cdb052e4fc0109a56a0597b4e902ba1) --- crypto/openssl/crypto/x509/v3_utl.c | 78 +++++++++++++++------- crypto/openssl/test/recipes/25-test_eai_data.t | 12 +++- .../test/recipes/25-test_eai_data/kdc-cert.pem | 21 ++++++ .../recipes/25-test_eai_data/kdc-root-cert.pem | 16 +++++ .../openssl/test/recipes/25-test_eai_data/kdc.sh | 41 ++++++++++++ 5 files changed, 142 insertions(+), 26 deletions(-) diff --git a/crypto/openssl/crypto/x509/v3_utl.c b/crypto/openssl/crypto/x509/v3_utl.c index 6e4ef26ed608..304463d572c6 100644 --- a/crypto/openssl/crypto/x509/v3_utl.c +++ b/crypto/openssl/crypto/x509/v3_utl.c @@ -916,36 +916,64 @@ static int do_x509_check(X509 *x, const char *chk, size_t chklen, ASN1_STRING *cstr; gen = sk_GENERAL_NAME_value(gens, i); - if ((gen->type == GEN_OTHERNAME) && (check_type == GEN_EMAIL)) { - if (OBJ_obj2nid(gen->d.otherName->type_id) == - NID_id_on_SmtpUTF8Mailbox) { - san_present = 1; - - /* - * If it is not a UTF8String then that is unexpected and we - * treat it as no match - */ - if (gen->d.otherName->value->type == V_ASN1_UTF8STRING) { - cstr = gen->d.otherName->value->value.utf8string; - - /* Positive on success, negative on error! */ - if ((rv = do_check_string(cstr, 0, equal, flags, - chk, chklen, peername)) != 0) - break; - } - } else + switch (gen->type) { + default: + continue; + case GEN_OTHERNAME: + switch (OBJ_obj2nid(gen->d.otherName->type_id)) { + default: continue; - } else { - if ((gen->type != check_type) && (gen->type != GEN_OTHERNAME)) + case NID_id_on_SmtpUTF8Mailbox: + /*- + * https://datatracker.ietf.org/doc/html/rfc8398#section-3 + * + * Due to name constraint compatibility reasons described + * in Section 6, SmtpUTF8Mailbox subjectAltName MUST NOT + * be used unless the local-part of the email address + * contains non-ASCII characters. When the local-part is + * ASCII, rfc822Name subjectAltName MUST be used instead + * of SmtpUTF8Mailbox. This is compatible with legacy + * software that supports only rfc822Name (and not + * SmtpUTF8Mailbox). [...] + * + * SmtpUTF8Mailbox is encoded as UTF8String. + * + * If it is not a UTF8String then that is unexpected, and + * we ignore the invalid SAN (neither set san_present nor + * consider it a candidate for equality). This does mean + * that the subject CN may be considered, as would be the + * case when the malformed SmtpUtf8Mailbox SAN is instead + * simply absent. + * + * When CN-ID matching is not desirable, applications can + * choose to turn it off, doing so is at this time a best + * practice. + */ + if (check_type != GEN_EMAIL + || gen->d.otherName->value->type != V_ASN1_UTF8STRING) + continue; + alt_type = 0; + cstr = gen->d.otherName->value->value.utf8string; + break; + } + break; + case GEN_EMAIL: + if (check_type != GEN_EMAIL) continue; - } - san_present = 1; - if (check_type == GEN_EMAIL) cstr = gen->d.rfc822Name; - else if (check_type == GEN_DNS) + break; + case GEN_DNS: + if (check_type != GEN_DNS) + continue; cstr = gen->d.dNSName; - else + break; + case GEN_IPADD: + if (check_type != GEN_IPADD) + continue; cstr = gen->d.iPAddress; + break; + } + san_present = 1; /* Positive on success, negative on error! */ if ((rv = do_check_string(cstr, alt_type, equal, flags, chk, chklen, peername)) != 0) diff --git a/crypto/openssl/test/recipes/25-test_eai_data.t b/crypto/openssl/test/recipes/25-test_eai_data.t index 522982ddfb80..e18735d89aad 100644 --- a/crypto/openssl/test/recipes/25-test_eai_data.t +++ b/crypto/openssl/test/recipes/25-test_eai_data.t @@ -21,16 +21,18 @@ setup("test_eai_data"); #./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/utf8_chain.pem test/recipes/25-test_eai_data/ascii_leaf.pem #./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/ascii_chain.pem test/recipes/25-test_eai_data/utf8_leaf.pem -plan tests => 12; +plan tests => 16; require_ok(srctop_file('test','recipes','tconversion.pl')); my $folder = "test/recipes/25-test_eai_data"; my $ascii_pem = srctop_file($folder, "ascii_leaf.pem"); my $utf8_pem = srctop_file($folder, "utf8_leaf.pem"); +my $kdc_pem = srctop_file($folder, "kdc-cert.pem"); my $ascii_chain_pem = srctop_file($folder, "ascii_chain.pem"); my $utf8_chain_pem = srctop_file($folder, "utf8_chain.pem"); +my $kdc_chain_pem = srctop_file($folder, "kdc-root-cert.pem"); my $out; my $outcnt = 0; @@ -56,10 +58,18 @@ SKIP: { ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $ascii_pem]))); ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem, $utf8_pem]))); +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $kdc_chain_pem, $kdc_pem]))); ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $utf8_pem]))); ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem, $ascii_pem]))); +# Check an otherName does not get misparsed as an DNS name, (should trigger ASAN errors if violated). +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_hostname", 'mx1.example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); +# Check an otherName does not get misparsed as an email address, (should trigger ASAN errors if violated). +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", 'joe@example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); +# We expect SmtpUTF8Mailbox to be a UTF8 String, not an IA5String. +ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", 'moe@example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); + #Check that we get the expected failure return code with({ exit_checker => sub { return shift == 2; } }, sub { diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem new file mode 100644 index 000000000000..e8a2c6f55d45 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDbDCCAlSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARSb290 +MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAXMRUwEwYDVQQDDAxU +RVNULkVYQU1QTEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6wfP+ +6go79dkpo/dGLMlPZ7Gw/Q6gUYrCWZWUEgEeRVHCrqOlgUEyA+PcWas/XDPUxXry +BQlJHLvlqamAQn8gs4QPBARFYWKNiTVGyaRkgNA1N5gqyZdrP9UE+ZJmdqxRAAe8 +vvpGZWSgevPhLUiSCFYDiD0Rtji2Hm3rGUrReQFBQDEw2pNGwz9zIaxUs08kQZcx +Yzyiplz5Oau+R/6sAgUwDlrD9xOlUxx/tA/MSDIfkK8qioU11uUZtO5VjkNQy/bT +7zQMmXxWgm2MIgOs1u4YN7YGOtgqHE9v9iPHHfgrkbQDtVDGQsa8AQEhkUDSCtW9 +3VFAKx6dGNXYzFwfAgMBAAGjgcgwgcUwHQYDVR0OBBYEFFR5tZycW19DmtbL4Zqj +te1c2vZLMAkGA1UdIwQCMAAwCQYDVR0TBAIwADCBjQYDVR0RBIGFMIGCoD8GBisG +AQUCAqA1MDOgDhsMVEVTVC5FWEFNUExFoSEwH6ADAgEBoRgwFhsGa3JidGd0GwxU +RVNULkVYQU1QTEWgHQYIKwYBBQUHCAmgERYPbW9lQGV4YW1wbGUuY29tgQ9qb2VA +ZXhhbXBsZS5jb22CD214MS5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA +T0xzVtVpRtaOzIhgzw7XQUdzWD5UEGSJJ1cBCOmKUWwDLTAouCYLFB4TbEE7MMUb +iuMy60bjmVtvfJIXorGUgSadRe5RWJ5DamJWvPA0Q9x7blnEcXqEF+9Td+ypevgU +UYHFmg83OYwxOsFXZ5cRuXMk3WCsDHQIBi6D1L6oDDZ2pfArs5mqm3thQKVlqyl1 +El3XRYEdqAz/5eCOFNfwxF0ALxjxVr/Z50StUZU8I7Zfev6+kHhyrR7dqzYJImv9 +0fTCOBEMjIETDsrA70OxAMu4V16nrWZdJdvzblS2qrt97Omkj+2kiPAJFB76RpwI +oDQ9fKfUOAmUFth2/R/eGA== +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem new file mode 100644 index 000000000000..a74c96bf3146 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICnDCCAYQCCQCBswYcrlZSHjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARS +b290MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAPMQ0wCwYDVQQD +DARSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqRj8S4kBbIUj +61kZfi6nE35Q38U140+qt4uAiwAhKumfVHlBM0zQ98WFt5zMHIBQwIb3yjc2zj+0 +qzUnQfwm1r/RfcMmBPEti9Ge+aEMSsds2gMXziOFM8wd2aAFPy7UVE0XpEWofsRK +MGi61MKVdPSbGIxBwY9VW38/7D/wf1HtJe7y0xpuecR7GB2XAs+qST59NjuF+7wS +dLM8Hb3TATgeYbXXWsRJgwz+SPzExg5WmLnU+7y4brZ32dHtdSmkRVSgSlaIf7Xj +3Tc6Zi7I+W/JYk7hy1zUexVdWCak4PHcoWrXe0gNNN/t8VfLfMExt5z/HIylXnU7 +pGUyqZlTGQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAHpLF1UCRy7b6Hk0rLokxI +lgwiH9BU9mktigAGASvkbllpt+YbUbWnuYAvpHBGiP1qZtfX2r96UrSJaGO9BEzT +Gp9ThnSjoj4Srul0+s/NArU22irFLmDzbalgevAmm9gMGkdqkiIm/mXbwrPj0ncl +KGicevXryVpvaP62eZ8cc3C4p97frMmXxRX8sTdQpD/gRI7prdEILRSKveqT+AEW +7rFGM5AOevb4U8ddop8A3D/kX0wcCAIBF6jCNk3uEJ57jVcagL04kPnVfdRiedTS +vfq1DRNcD29d1H/9u0fHdSn1/+8Ep3X+afQ3C6//5NvOEaXcIGO4QSwkprQydfv8 +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh new file mode 100755 index 000000000000..7a8dbc719fb7 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh @@ -0,0 +1,41 @@ +#! /usr/bin/env bash + +# Create a root CA, signing a leaf cert with a KDC principal otherName SAN, and +# also a non-UTF8 smtpUtf8Mailbox SAN followed by an rfc822Name SAN and a DNS +# name SAN. In the vulnerable EAI code, the KDC principal `otherName` should +# trigger ASAN errors in DNS name checks, while the non-UTF8 `smtpUtf8Mailbox` +# should likewise lead to ASAN issues with email name checks. + +rm -f root-key.pem root-cert.pem +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-root-key.pem \ + -x509 -subj /CN=Root -days 36524 -out kdc-root-cert.pem + +exts=$( + printf "%s\n%s\n%s\n%s = " \ + "subjectKeyIdentifier = hash" \ + "authorityKeyIdentifier = keyid" \ + "basicConstraints = CA:false" \ + "subjectAltName" + printf "%s, " "otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name" + printf "%s, " "otherName:1.3.6.1.5.5.7.8.9;IA5:moe@example.com" + printf "%s, " "email:joe@example.com" + printf "%s\n" "DNS:mx1.example.com" + printf "[kdc_princ_name]\n" + printf "realm = EXP:0, GeneralString:TEST.EXAMPLE\n" + printf "principal_name = EXP:1, SEQUENCE:kdc_principal_seq\n" + printf "[kdc_principal_seq]\n" + printf "name_type = EXP:0, INTEGER:1\n" + printf "name_string = EXP:1, SEQUENCE:kdc_principal_components\n" + printf "[kdc_principal_components]\n" + printf "princ1 = GeneralString:krbtgt\n" + printf "princ2 = GeneralString:TEST.EXAMPLE\n" + ) + +printf "%s\n" "$exts" + +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-key.pem \ + -subj "/CN=TEST.EXAMPLE" | + openssl x509 -req -out kdc-cert.pem \ + -CA "kdc-root-cert.pem" -CAkey "kdc-root-key.pem" \ + -set_serial 2 -days 36524 \ + -extfile <(printf "%s\n" "$exts") From nobody Tue Sep 3 23:56:48 2024 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 4Wz2bP0JjRz5MhQ0; Tue, 03 Sep 2024 23:56: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wz2bN6pllz4RJj; Tue, 3 Sep 2024 23:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725407809; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CmzVXJic0kAkteiWyISG5C2SZ9JVxESW+i1tHfooBRw=; b=ZINsdEZtSBtIPoMiBhmvr7WJaJLwYKYzVF4qaIwtC91DAwUN+qbPIrWy/VSUZp7bB795/J fgOPLpu9Phu5EliS8WbCt/ubIY0sofxpYSeFspUz8IfHRN3lDYA8DWQYwLCQHaBwfUwoW4 E1UwuS6E1na9PtcFUukZhUeOZP6Y8I34B+FmES1pJK8t3/7awsK2uO5jDDwtQKur33oTxB En59IA7jCcygn2Pu304AM37/ZSjk1HVmzyQVkMtHC3oVSsmyVDaCdj9FdktfmMQnI68oAp jn3g9MGXq/oYwWYOWEBgPyBdQMlvXY9et0/tOPB8yQ4KGFrVeBD9TVdFQfAu0Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725407809; a=rsa-sha256; cv=none; b=uZqkXCSVVxADqJvQ6erI17BbRn8r13pn5LNHQbhoCUjCAU8blo5xtbdRWuqERZVXc3Xp82 /k6d91xwnon7se3TdYrwo4sv5/0ijhfwsIHJLLE27ElhoX7V94VGws17EKIUOFRWBjEQ8t nDJpjnt1YRyKXg7XhtLlx8pXsxlTtP/CC9U8yY/u7PnuEp/IAEsxzKnSAgd9/QMu7gvjZO 0qkPD74BAKzIT7dcQSUix1NyOCw0AStNrQ+DN0f48lJmVXf6n0UUrSu/nWT1TV3II9Z9O9 hTtIdMIlqFNVQYENPd18SjXi5tAIAQ2W+5KmHCmROubzd4byNTm0kOOVvJ94CQ== 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=1725407809; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CmzVXJic0kAkteiWyISG5C2SZ9JVxESW+i1tHfooBRw=; b=dF97vjU22BOCYwzJWEq1u0tPF5/0CSXTjHOcHPmhjrhRHfzFabqBdxdmPOlnxLW5kW/yvh 8BOA7AQpXCGpfCYJyobrtpg09bFJD5A9B5Pjfr48RBahFDRrisUJU3PwcFEUvGsCe2RoyM tGABandM+a5BzaENxnUTu/jcsaxVpgiGhmm0euZZhXI+1QlHKZb7G4EAS9rz2YYgor3xTn CpPg11b71ubVvgBt6czRAoYlGdCVVPP9SHh+/zRUwemtNwqukhgF82oknlbuguxzq6U/1Z 97NUSvXVzgICJhYYj674/i6TlxfFuRgQpqvuU5PyrXyiluBLbvX713rCcbOr2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wz2bN6DjSz11g8; Tue, 3 Sep 2024 23:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483NumX9088373; Tue, 3 Sep 2024 23:56:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483NumSC088370; Tue, 3 Sep 2024 23:56:48 GMT (envelope-from git) Date: Tue, 3 Sep 2024 23:56:48 GMT Message-Id: <202409032356.483NumSC088370@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 898f6d26deb8 - stable/14 - loader.efi.8: Remove rogue duplicated lines 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 898f6d26deb8408252444d48bf210cb90cb993de Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=898f6d26deb8408252444d48bf210cb90cb993de commit 898f6d26deb8408252444d48bf210cb90cb993de Author: Jessica Clarke AuthorDate: 2024-09-03 20:14:44 +0000 Commit: Warner Losh CommitDate: 2024-09-03 23:56:38 +0000 loader.efi.8: Remove rogue duplicated lines Fixes: 871911a4ab73 ("loader.efi(8): beef up the updating the ESP") MFC after: 1 week (cherry picked from commit 18f7683e0d6ee6858865d8b0c2d7e2c14abf0bc4) --- stand/man/loader.efi.8 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/stand/man/loader.efi.8 b/stand/man/loader.efi.8 index a0c0df9a9c35..3527d8b66a99 100644 --- a/stand/man/loader.efi.8 +++ b/stand/man/loader.efi.8 @@ -30,7 +30,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 20, 2024 +.Dd September 3, 2024 .Dt LOADER.EFI 8 .Os .Sh NAME @@ -450,9 +450,6 @@ copy the loader to the default location: # cp /boot/loader.efi /boot/efi/EFI/BOOT/BOOTX64.EFI .Ed .Pp -.Bd -literal -offset indent -# umount /boot/efi -.Ed Finally, if you mounted the ESP, you may wish to unmount it. .Bd -literal -offset indent # umount /boot/efi From nobody Tue Sep 3 23:57:10 2024 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 4Wz2bp4Xkdz5MhyD; Tue, 03 Sep 2024 23:57: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wz2bp2xnQz4RQr; Tue, 3 Sep 2024 23:57:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725407830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fXiWL1XVIX4764bnSY3Ju1dmeX1A21WUToNwgEoiyQQ=; b=o03XHtF9/V1+yquM2grnoNm0i9pYyLvANhqj6gYRd16rwxSuz3xnZR04iLvw9EyZwKHdKD SHv10WsTJeCHW+Lxnbh0ckYjQNCFngCeAsng97uMHsfQ8STQt3Hk7ahyYmjN4Rc2mBcvqo YOfP+qvDfplB1UG9HuAk+BB/1f6jOUSM3682wzDaBn8aQ6FvI1lJ+L0Q5YEAHcYmv0M+KA QcUpIQYktVaHirwE6kLbu9ZpB5EqKXzzCzY8j87lb6SL/UOuPpOEhk5WdFEIhfVTcoRc5W jhUP0oUr3YQEaGxnszJkxA7dJ1e/QceldXg4xnhcpE2TMy9jFutApMuJtBay7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725407830; a=rsa-sha256; cv=none; b=aMp4DjS2FLCv6VMAEvMJ5sPy+gmLq+77j46WAtb8SrzRp3kn0CkzS0PNPqjt3q8hSrefvc z+SLHvuuc4nY22en6jqNZ+nPTA0V2u8q0fEfq+qXXMKyr6OovwWGeze8hpzImG4XxuvfxX gxwAG2ppGDZ3WZK+SPEd7a96jZaMkHFzglArOAShJkriv92AWNCACvcGjVF+mrw79KZiz7 RODz45KgRHuCtWmA99VKgywX6PLCUDIOEDbSYJcqdzMsKLxJHqBRvCT54CLBoVAy6Vsp6k 6tST5OmCnjCRyo36LqJbUA7UW6bnRfMF0FW92zkA/VqAacWnWoseeVL0892fCA== 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=1725407830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fXiWL1XVIX4764bnSY3Ju1dmeX1A21WUToNwgEoiyQQ=; b=u5YqA5UVep6OSc9l5vgiw4Ts6tjOMuTXtpe5JnB5GnLtlfFYEwNQW0zTxgtT1/EU+S+3Sy gOVTRVRGT9SMQCwVRJbsCALdUODg0o4lSbOCI3eeaaue8ZwIfVGYI4TFOV4tqo+0tpvk6S ECp9saxDihhYfLrtRbhksnQ6IELM0wgciHF27km4TjJpSsPqObTT2CkTmWpZDk3Xd0yZ8Q ES3MhbGGs8PFhyOG0qffVpW1KbM8mzGLP+cbjkA8XQd/KSVI5ZfztR2N0sViWc0FhsUxk2 TpoLD0lVgfPAGTYkuQ96nmKhcMl4ijTvw88DQK2UIdqB9eF6SCvrcJK72MP0kg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wz2bp2XT1z125K; Tue, 3 Sep 2024 23:57:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 483NvATT088566; Tue, 3 Sep 2024 23:57:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 483NvAh7088563; Tue, 3 Sep 2024 23:57:10 GMT (envelope-from git) Date: Tue, 3 Sep 2024 23:57:10 GMT Message-Id: <202409032357.483NvAh7088563@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 8aa8d0aa64ba - stable/13 - loader.efi.8: Remove rogue duplicated lines 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8aa8d0aa64babc579a55a7ed27ea6385895901d3 Auto-Submitted: auto-generated The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8aa8d0aa64babc579a55a7ed27ea6385895901d3 commit 8aa8d0aa64babc579a55a7ed27ea6385895901d3 Author: Jessica Clarke AuthorDate: 2024-09-03 20:14:44 +0000 Commit: Warner Losh CommitDate: 2024-09-03 23:57:14 +0000 loader.efi.8: Remove rogue duplicated lines Fixes: 871911a4ab73 ("loader.efi(8): beef up the updating the ESP") MFC after: 1 week (cherry picked from commit 18f7683e0d6ee6858865d8b0c2d7e2c14abf0bc4) --- stand/man/loader.efi.8 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/stand/man/loader.efi.8 b/stand/man/loader.efi.8 index 4dd9f66790f8..2128cc99c2a5 100644 --- a/stand/man/loader.efi.8 +++ b/stand/man/loader.efi.8 @@ -30,7 +30,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 20, 2024 +.Dd September 3, 2024 .Dt LOADER.EFI 8 .Os .Sh NAME @@ -440,9 +440,6 @@ copy the loader to the default location: # cp /boot/loader.efi /boot/efi/EFI/BOOT/BOOTX64.EFI .Ed .Pp -.Bd -literal -offset indent -# umount /boot/efi -.Ed Finally, if you mounted the ESP, you may wish to unmount it. .Bd -literal -offset indent # umount /boot/efi From nobody Wed Sep 4 00:50:29 2024 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 4Wz3nK4LD5z5Mnfk; Wed, 04 Sep 2024 00:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wz3nK34dxz4Xf6; Wed, 4 Sep 2024 00:50:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725411029; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=opAJ3rmIaP4jncYh9LlRwH56DAHVENwRry+k3P11AC8=; b=xV9WYAk6s9fxyQrn7QWzGqh7acqccmm68OvMo+/OedX4qfT1VsaH74Qukz+wymSg+lZUtt cA50N3AB7E+KRKAfYAlgUVP4gXCLwPzTVG/RAqUPhVxhp+sZtVe8gFZT/1ALBaXaWt2DQ9 VEI3CCm+ldVhY4HZqAYatKfrAUam2PG52+3PTOE1x0Gl6rM+/nNUB5XNU8pe2asCkNwuLm DyGzKsztrWGTVYWg6WNmMw5+ZUnDdIY7JbJ0Xa9pDwfP6QcnSuRlygOK/VUQZK9gRiuueJ nLsajdkLS41j4GHtcs/6Bjxjorq2mwKG/8msM0uOkmY3RPbCCviMB40BDnHBMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725411029; a=rsa-sha256; cv=none; b=b2SX8C/6ga0DhAaR0eQPgDKY/xOusaZ4TBJb4Kd9YKpCb1Z0VgNN8mTY0TnmTiMIdoUNJ1 fQYOt+pbHrWXh79c7saDCNnw9YEMo4RZZmDuhEEDmXz5Hq7bXaUzzEUE75E7QEigM8sarx flrFWPf52YdS3XpPY1VeEZEZoi51mdUpvR6GK9XSlE1faQz8TyS9xNQWfQRR44nL8tGlx5 ff4ycpf2IfLhL6lG1IJoqWgDzrZ/T9WiWNOn9kfXt0/F5CUvKE4vsZWT8Os2X3tv6w0eIC X/NnykScFEatAda95gWlmqYag1AXu7YS6HGM3ENpUytQBieDOkLOhWlKnIqSEw== 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=1725411029; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=opAJ3rmIaP4jncYh9LlRwH56DAHVENwRry+k3P11AC8=; b=QZQ6CZs3IwN0yaU2Ay3/vRdfkFjk66n/J9smdRdH77eytGiIYGUJGLd1j0wl/8nb9YWkvi qlvOCcId7XIFxg0m2hRkiyNCrqgMNANwQUCbQJw0RFtpX/b8v0F/yZpLpT6g7IMBQ/EvS4 FmBHRQaBGyF1NV5F59ZKL4NaPxt5dAqqmYCvIsqqPulJFWg+pWwPmAflhwJsbzk7iIN9xj aTG6iBaBXZIuDIkhbvmiTBcV16xtYCbZs64FYcNO0LpIDls4GlaUYFwcRN4UnM90865rtJ DSu+rbhIkkqsU/7tiHnl6+cIxybcMnBq/OFC6xAEOOJ5hr39WwqTPNziMHgs8Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wz3nK2fy0z12j1; Wed, 4 Sep 2024 00:50:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4840oTrK081767; Wed, 4 Sep 2024 00:50:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4840oTXl081764; Wed, 4 Sep 2024 00:50:29 GMT (envelope-from git) Date: Wed, 4 Sep 2024 00:50:29 GMT Message-Id: <202409040050.4840oTXl081764@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 34f40baca641 - stable/14 - x86: Detect NVMM hypervisor 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 34f40baca6413a85e2531d21a616f1b2042c08cd Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=34f40baca6413a85e2531d21a616f1b2042c08cd commit 34f40baca6413a85e2531d21a616f1b2042c08cd Author: Kevin Bowling AuthorDate: 2024-08-28 09:31:35 +0000 Commit: Kevin Bowling CommitDate: 2024-09-04 00:46:48 +0000 x86: Detect NVMM hypervisor (cherry picked from commit f622dc5daecc5c05504cfc605b6f2d66a3bd90e8) --- sys/kern/subr_param.c | 1 + sys/sys/systm.h | 2 +- sys/x86/x86/identcpu.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index b7dbf606f492..c0a4ac747d00 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -158,6 +158,7 @@ static const char *const vm_guest_sysctl_names[] = { [VM_GUEST_BHYVE] = "bhyve", [VM_GUEST_VBOX] = "vbox", [VM_GUEST_PARALLELS] = "parallels", + [VM_GUEST_NVMM] = "nvmm", [VM_LAST] = NULL }; CTASSERT(nitems(vm_guest_sysctl_names) - 1 == VM_LAST); diff --git a/sys/sys/systm.h b/sys/sys/systm.h index eb690b1cf4b4..581b981ef9e0 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -81,7 +81,7 @@ extern u_long maxphys; /* max raw I/O transfer size */ */ enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV, VM_GUEST_VMWARE, VM_GUEST_KVM, VM_GUEST_BHYVE, VM_GUEST_VBOX, - VM_GUEST_PARALLELS, VM_LAST }; + VM_GUEST_PARALLELS, VM_GUEST_NVMM, VM_LAST }; #endif /* KERNEL */ diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c index 7df20053a9d1..36056b85101b 100644 --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -1361,6 +1361,7 @@ static struct { { "KVMKVMKVM", VM_GUEST_KVM }, /* KVM */ { "bhyve bhyve ", VM_GUEST_BHYVE }, /* bhyve */ { "VBoxVBoxVBox", VM_GUEST_VBOX }, /* VirtualBox */ + { "___ NVMM ___", VM_GUEST_NVMM }, /* NVMM */ }; static void From nobody Wed Sep 4 00:55:43 2024 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 4Wz3vM5cc2z5Mp6q; Wed, 04 Sep 2024 00:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wz3vM56Shz4Yhr; Wed, 4 Sep 2024 00:55:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725411343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U36518dUvQP0GZfrmjIlvQv70jcBRZ/hgZBeTyJ2aGc=; b=U34NJVQOfVvJQawKIiRRxZuMVTp5uJqcDR6otdtzdNTuoo6sWRm80KYxUf2j7V57NtKRIK QymGoqZyC+ekuIK/0MfYBfYgREIeCKC08g+E8lrLj6yzlt+q11oKiAQG9hSjUnW3TOKo/9 6+FYkCEls39kKpImdMdc+WQp08eSs1F3lVDY/OIc3W0qWopY3bR24c5TrpVSYaoErtFWWU OzKgwqBITLtxXn6Ga5BLnhnz6ZLMEKOLxVMjubTR0fa8zzHb2EbpaLk+8D4hA3C0DO/eQk i7xrA+IESDkL3w6HbRFS3txFT8YxSafl39HyDhG3hVFlSakVaSgH6FSltkHp+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725411343; a=rsa-sha256; cv=none; b=kLmEqPOBIKstPhKH0F9fhANyTepG10s2++tw7LbWLBTGh9CmJBjNgwyuTVYbNNW0Z0aprC c/GEUZhvQb9YN+8VNch74AGpcfucQqzYCXFPcHF1w0S6le0avYBfTrnLCFZjCai9SywcpX KYfdiyyQC35qBVfFxDU7r1XgyOpQ7rtxDbwy8904tiYdd/cahw59LCELSsA4fgbD7VA+vY mOr7skDjuwflmctRLMcTQ8bY4qIY7+jSGYo3RkG39MVphTBHj+YYD7tQ23Gtb6cO5PsiVx 7HGSJXEq+kWakuCiGypwHFtRvhJx53rPRq+FjFYf0+7Dj46OENVW1T4nl3eSpA== 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=1725411343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U36518dUvQP0GZfrmjIlvQv70jcBRZ/hgZBeTyJ2aGc=; b=nRt9EaFO7gbOKZFg1uU6Fqk2i/RWOMj/ybcpXz/tssSm76z4Sb+47RyKSM51nz1YPcVxnH I1kify+b78DrJrea9u4dekCLf8pX9O+OifSI/+LXoMTYOjWDXQzZW5JfQWGVYwyZ/pj4EC CCFQ8o0XOGpgauJabjdGW5UfCpQ0Y47W6HX9bmGmJ61CGZ9rhkM4V5loWLEeyBZvF+BFcD 88biwh0oBg8dmn+62276Zvqyls6WDCSTuhLN2D6MWKDj7dmC9DopmcSUpfezmuGIGFgji8 qoLRBlcPfJtXAKqNfVX8Iaep8xNY1HvrWwZOxhmPLiDLZToOaeYLUrNvVHnfXQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wz3vM4jwQz13WM; Wed, 4 Sep 2024 00:55:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4840thB1090082; Wed, 4 Sep 2024 00:55:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4840thg5090079; Wed, 4 Sep 2024 00:55:43 GMT (envelope-from git) Date: Wed, 4 Sep 2024 00:55:43 GMT Message-Id: <202409040055.4840thg5090079@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 9fe5e83e44d6 - stable/13 - x86: Detect NVMM hypervisor 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9fe5e83e44d6f7dde23b60ed6e09626d31e5c46a Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=9fe5e83e44d6f7dde23b60ed6e09626d31e5c46a commit 9fe5e83e44d6f7dde23b60ed6e09626d31e5c46a Author: Kevin Bowling AuthorDate: 2024-08-28 09:31:35 +0000 Commit: Kevin Bowling CommitDate: 2024-09-04 00:52:30 +0000 x86: Detect NVMM hypervisor (cherry picked from commit f622dc5daecc5c05504cfc605b6f2d66a3bd90e8) --- sys/kern/subr_param.c | 1 + sys/sys/systm.h | 2 +- sys/x86/x86/identcpu.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_param.c b/sys/kern/subr_param.c index c2672d98ba8d..0ea2279ef2e6 100644 --- a/sys/kern/subr_param.c +++ b/sys/kern/subr_param.c @@ -162,6 +162,7 @@ static const char *const vm_guest_sysctl_names[] = { [VM_GUEST_BHYVE] = "bhyve", [VM_GUEST_VBOX] = "vbox", [VM_GUEST_PARALLELS] = "parallels", + [VM_GUEST_NVMM] = "nvmm", [VM_LAST] = NULL }; CTASSERT(nitems(vm_guest_sysctl_names) - 1 == VM_LAST); diff --git a/sys/sys/systm.h b/sys/sys/systm.h index d073c87af163..ee432fb0d864 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -81,7 +81,7 @@ extern u_long maxphys; /* max raw I/O transfer size */ */ enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV, VM_GUEST_VMWARE, VM_GUEST_KVM, VM_GUEST_BHYVE, VM_GUEST_VBOX, - VM_GUEST_PARALLELS, VM_LAST }; + VM_GUEST_PARALLELS, VM_GUEST_NVMM, VM_LAST }; #endif /* KERNEL */ diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c index 992dbb421aa4..8a5d74ca5a2d 100644 --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -1388,6 +1388,7 @@ static struct { { "KVMKVMKVM", VM_GUEST_KVM }, /* KVM */ { "bhyve bhyve ", VM_GUEST_BHYVE }, /* bhyve */ { "VBoxVBoxVBox", VM_GUEST_VBOX }, /* VirtualBox */ + { "___ NVMM ___", VM_GUEST_NVMM }, /* NVMM */ }; static void From nobody Wed Sep 4 08:53:28 2024 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 4WzGVc5tWcz5TS4s; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVc5PkXz4XmD; Wed, 4 Sep 2024 08:53:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yGpTJ51JRDqE475dux3Py6l+qx+CiKSsWzB4zR0Wk6A=; b=rQpiy8etRFCyYoQiCNbBYPMqN+bxVgYZW4DYgO7m+Mo/uqS89j4gDB7OazpkY6QwK57rtH peFlPKTOq8SbvE0XHcqo7PkeZflQq6WnH99g4Q5efQrg3SFYZ/JFWq9yoR5xx9R1qx8FYA b0NTpwPbRpW9fFRczgyLBGHP8FgyoAbeBQSA/FYAaDNsnxZ/IZXrP/iTEJqOIRPiSyyKeL MM49PWq8rTZgYvKRTCcqUSbGAhP9K6rn2oQQerulL4gEFmTFUePl2LD3F/iYeEea9G6NUc 1RYqF30RVhhsYsdGLNWRVGPlo9PPKGsF0NN9nhQQSh1mbiUKAVROuQDyRwVHYw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440008; a=rsa-sha256; cv=none; b=eVQdFqgURtBYQhIXRcgLd6gzAopRstd7hVsj26PjCKsvLjtrX+4lbSyt/BxpRZLedHoQSR xUel22Yn7dpPMUA1a9rx/xTyJ/wDK8O3p0uSZjWuj15shNkAL6AeI+NEqFzcerZ+8jpL+m MdB6OEr/8JKzB3XNSI8fA0DZ+K43dvZJpXgD54W7O+JKklI+Gx6qSSlo5nwx182eVsRESk lvybg/rgMjhN+qPfefgJyoPYFy/ZVANCC6CZF8ZCK6kS0cKsebjNcl/+Hr/JcpoS9aa+E6 iiXVM95tc3re8Uj0aD6/pE1a7wuLcpjGtSGVeb/4tD3h+rK/llQ2J5Mx7MxkFA== 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=1725440008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yGpTJ51JRDqE475dux3Py6l+qx+CiKSsWzB4zR0Wk6A=; b=j+rpaMLJtwo4Kq6Ib+aTRdFr+JjnpOxUsfpTkAR5NPSmCR9nBhvs2dPzj6+dDHUl172XnU oAQVtxukC+6uDLm5Gf9qpNW3dWB+s5c9M3dG3b6kvz36m+gcxkS8R2vVls4eCi93UXh+z4 ohVUxtoCB1t0vz+4gjmTMrQmssHgq8Lak3zZdTRhqA+jodWmNpH9nLmRnkEEMmHcTGlEUx YgMmYRK41XDzhxJxi6sQDgnw5l9BtPEgDmEaB0hvuiQ1jVf5sOe75xhxnQ6QOmqwu2GQDf giAc44tW9VDQ9NcN3z8fG3ltkHExFveIGJwiSu/uZBVy0FWF5IsS00t+AYEvnQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVc51Z6zJCF; Wed, 4 Sep 2024 08:53:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rSBS005231; Wed, 4 Sep 2024 08:53:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rS7o005228; Wed, 4 Sep 2024 08:53:28 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:28 GMT Message-Id: <202409040853.4848rS7o005228@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: cfd744a6635f - stable/14 - pfctl tests: fix dependency 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cfd744a6635f2245041fd5980881899ea89cec68 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=cfd744a6635f2245041fd5980881899ea89cec68 commit cfd744a6635f2245041fd5980881899ea89cec68 Author: Kristof Provost AuthorDate: 2024-07-25 12:06:27 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:38:14 +0000 pfctl tests: fix dependency Ensure that we rebuild the test binary when we add tests (i.e. modify pfctl_test_list.inc). MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 250e074e5f609194e0e4cd0775d99b0a616bfcf3) --- sbin/pfctl/tests/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbin/pfctl/tests/Makefile b/sbin/pfctl/tests/Makefile index db41a445903f..92b7ad6c57c0 100644 --- a/sbin/pfctl/tests/Makefile +++ b/sbin/pfctl/tests/Makefile @@ -8,4 +8,6 @@ LIBADD+= sbuf SUBDIR+= files WARNS=6 +pfctl_test.o: pfctl_test_list.inc + .include From nobody Wed Sep 4 08:53:28 2024 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 4WzGVd2hXTz5TS95; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVd0jwFz4Xp6; Wed, 4 Sep 2024 08:53:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z8oWXdkYQVh/r1AxmUl469VQLYUeovfS0wwxACJLcEc=; b=g5nMJAFoMPnEdQxPH+wTUzwgLLLtMlBkt2ct88II76P2RjnXrid1FK81iiY1AqRCs34oBV NBYDt17CsKJYpcWBXQ7OGhB6ZnzRhLUP7/PfpU1M8hl1tk9aKjyGjuJBeXycWkF94DaW6S 5ZvxLPXPeEsoVmFDhlZHd9ccFg7VgPTMLg+V0cqkpt1vxCecpKUn61ySk48vcn5vAqw5h+ 20XCcygT+PIt3f3K22gyftZo/gPok+txUt3vs9vLBVX5Cgahj83jc+UsIQH7IIJjPZm8+T Y2AKzYyGk5R0S3zYKpbUXSmeUP1QRF3qR6o9xOayAyserGSS1V7UBJVhMBk4Gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440009; a=rsa-sha256; cv=none; b=OIIU/BsharN07p/dXWq1YBKN27h+x2JM83AgMUhwNZ6I7ldzN9pfwbX/IFXmSfjfrkpjII wd8bB+gW8cephkLTkQnG1KeIKrOGj69rjUDacJPuIJS7bTnclmnYs2hvCz047yNnsmSDrk C332gkRhnBTYmeNsCYNdb4BpL2J16AMWgScxaF/rrZRFWh2wjCm0yUfACsNWUW5+ej1ryY 6NkzpXXuTW6Z3jb8nkmPv7cMJXjQE39g4hdB3WMkPnbj9mIKBO/siJJm/DxMPwpeCEtdz0 v03FnTc9vZkiQ0nr05RYBaEbLPxuYcgFdrQZ2yafSCisgbcwN92tGZccIhqbTg== 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=1725440009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z8oWXdkYQVh/r1AxmUl469VQLYUeovfS0wwxACJLcEc=; b=JQeXvFn+fNI/OkIYZwGT2XHvTzsM4+AryQSPHyzAgekHMRWsFkyJ8DHtZsxJQP1lruZCuu nzYgyMOJjAf53Y/9UY2dIc3zAbBDHC1zakRYItfTJysap8W3HcS1HnPvmDG0MXxXyG1M6A 8RrIE9vQ1g4CjnlkNa6pfsYU2+AtY8kTaNAbT2gxoiTkkUtG+fM7JNzqGoAE91RbGwubMc 73uqkw262ObQO0YBeB/wvXM/J5MHvxOd8ZEMmljcvvdvhRc8p3Ah6vE9PBY58Ny2T7IGAf YqHwo9b7FfkcQAMh+2N15R+Z+u4sWJ1wkaZTHJ73CRFJCqVw50MzBxuT6mpBoA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVd0Kw0zJCG; Wed, 4 Sep 2024 08:53:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rSIZ005350; Wed, 4 Sep 2024 08:53:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rSNa005347; Wed, 4 Sep 2024 08:53:28 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:28 GMT Message-Id: <202409040853.4848rSNa005347@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: a626b66c6924 - stable/13 - pfctl tests: fix dependency 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a626b66c692410a93078a656caa6b629f13eb3a9 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=a626b66c692410a93078a656caa6b629f13eb3a9 commit a626b66c692410a93078a656caa6b629f13eb3a9 Author: Kristof Provost AuthorDate: 2024-07-25 12:06:27 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:06 +0000 pfctl tests: fix dependency Ensure that we rebuild the test binary when we add tests (i.e. modify pfctl_test_list.inc). MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 250e074e5f609194e0e4cd0775d99b0a616bfcf3) --- sbin/pfctl/tests/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbin/pfctl/tests/Makefile b/sbin/pfctl/tests/Makefile index db41a445903f..92b7ad6c57c0 100644 --- a/sbin/pfctl/tests/Makefile +++ b/sbin/pfctl/tests/Makefile @@ -8,4 +8,6 @@ LIBADD+= sbuf SUBDIR+= files WARNS=6 +pfctl_test.o: pfctl_test_list.inc + .include From nobody Wed Sep 4 08:53:30 2024 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 4WzGVf6fSvz5TSXX; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVf5WVmz4Xp8; Wed, 4 Sep 2024 08:53:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KlnUUJBXgf6ApVczKCmGyn8Js2qB6v0tnqKXgQkU7VA=; b=qOdNZyY7CrrYOLDD2mUDkULAODlEVua+SW4xAuSKbMfaPZ5XYWb+fA8AhYXGJgRjDbcSSN VrJdaTkfWJzq66w/tkdA3Kbe3y0TqJo1YJdWmk0mHTft9WuAzLMpp5thshp4WZZBCJ5gmC goJi9KrEHFa8W2IIdmOniWXXVZwHTl3aUyTHahMGgKxYOB2jRqEdDP1vvC7kYXEgSNNeG5 SsVH6FhRYoDTqiEPCeNnSmX3vMZ7m/os5HqmKfQQHNsPH2pVcmJEcLiAstSMPEUgbnZb1n Vax2slJr5FwTf3RuwENOPY9SxrTf6eersj+q09Qi/Tv4etuTCOPAqTCTv9VAng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440010; a=rsa-sha256; cv=none; b=RS4Vx+0EFRzuOxyTjM+C03NN+/BfU8/GyCn6ihOIyzn4ob+iJ19SOMSqB7n4AeepMjVODP y0Jg7/m1DiaO5UpXHJdyUpkx+h5CMIAUrqG/Njuat7XSUlcDcu+KPe4Rg72PEQSPzUIs3X zgGcsIuSjHUIQrZ7jTiWUpLJ00yHrh3BWpxwRpJhkbxzgEeEeOGPkgXTnQ/xiJSeTpcQYV e1kfiZROLt6fxS8VngrOZQ7A9bJInXXAlMRwKhr51an5ttahQQldzNRPNSrf/2GGlDsf2q 9gzfV4ow4juV0voPYLpSfHnEkKauMAIsCvL5/WT5/mxkdygKqURe4bxNZMIieg== 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=1725440010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KlnUUJBXgf6ApVczKCmGyn8Js2qB6v0tnqKXgQkU7VA=; b=gu3hmFo5ijI+viV6LbIdv22Om6+YiEV+risW/i7n00N/0uRf/Db88NSYD5ATllutZKTUhP l5YVtAkmy1HSuNl4Wncq7n4zv3iAS1vYoMQM5XvPwMzVOWbXJ+vlz04ndXES3RaelKyMzf CEtd7tQMFCO2Q9jGVoIQQsrXDRsxxC6ynaBOSgiukGw1aBZfX0X1xU0XXQ/ZXROnIudQX8 ZFS/CciCKznA0s18shVDhU3EaA1oXifdSMJqeA1IuXt4pqeB25YZSZXZ8MvnxeoTtsxOgU 60uYUokhCWrz/CJI6gKPJBw4GinIfhafIH1E77Ag6oU03m0nchRuzKKHdqBRPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVf578NzHWf; Wed, 4 Sep 2024 08:53:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rUTT005503; Wed, 4 Sep 2024 08:53:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rUK2005500; Wed, 4 Sep 2024 08:53:30 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:30 GMT Message-Id: <202409040853.4848rUK2005500@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 4909bd69ddef - stable/14 - pf tests: ensure that neighbour discovery works as expected 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4909bd69ddef66b9304acb4998c4d82277a2bfb5 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4909bd69ddef66b9304acb4998c4d82277a2bfb5 commit 4909bd69ddef66b9304acb4998c4d82277a2bfb5 Author: Kristof Provost AuthorDate: 2024-08-26 13:02:22 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:38:15 +0000 pf tests: ensure that neighbour discovery works as expected Also check repeated calls. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit d154dc21130b607d7903f276dd6d463b990f33f7) --- tests/sys/netpfil/pf/icmp6.sh | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/sys/netpfil/pf/icmp6.sh b/tests/sys/netpfil/pf/icmp6.sh index b9b60a484afc..eb286e23ef4c 100644 --- a/tests/sys/netpfil/pf/icmp6.sh +++ b/tests/sys/netpfil/pf/icmp6.sh @@ -149,8 +149,56 @@ ttl_exceeded_cleanup() pft_cleanup } +atf_test_case "repeat" "cleanup" +repeat_head() +{ + atf_set descr 'Ensure that repeated NDs work' + atf_set require.user root + atf_set require.progs ndisc6 +} + +repeat_body() +{ + pft_init + + epair=$(vnet_mkepair) + ifconfig ${epair}a inet6 2001:db8::2/64 up no_dad + + vnet_mkjail alcatraz ${epair}b + jexec alcatraz ifconfig ${epair}b inet6 2001:db8::1/64 up no_dad + + # Sanity check + atf_check -s exit:0 -o ignore \ + ping -c 1 2001:db8::1 + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "block all" \ + "pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state (if-bound) ridentifier 1000000107" + + jexec alcatraz pfctl -x loud + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv +} + +repeat_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "zero_id" atf_add_test_case "ttl_exceeded" + atf_add_test_case "repeat" } From nobody Wed Sep 4 08:53:30 2024 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 4WzGVf2z62z5TS4w; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVf1k6qz4Xp7; Wed, 4 Sep 2024 08:53:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nAwyk09HO64CtMzUboPcInfhhoRuQre+MJupbh58ALY=; b=kyqnPdfv1+/xn9UOCeqMOOtkWQr9gf/CEuUm6jjPAc5peiHOoYN6d23DOVK1IRepQDGTHb DYhhnDHQE3Nf3hUScPdnZooRqMGEdw+dfkANN2MGXXzjYkcP7djUId3q0iHfcBpRva4Fhz VPs85iI8+jpGMbcJBnuyRPWUD5pvCYjt/kZZuCGwjG9xz3FG5cRbhSDZamypTMPhqXhesB Mb7dNSunceaacGdFvDsvDNA0/y6XYX6CAxrG70Add01m+tbupQ1OUUpEHKtB8cX3CzbdoW sTtj2AwC+wiUWD70ohLUAhXKWLohpjSQtmoCUCDIAOGcFbGkBAlV95CuPu5qIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440010; a=rsa-sha256; cv=none; b=Y/rD8xs55iz6hUJdhyA9oV0lanF2zcquk2VLA9Kl79gJNpl1Qb/3JQWBiT40Bs0jVs2XVY yyN73SQJLPcNBGjuW4sTUqglNHynnliTe/KZSlfiTHyR1+WUdYhtPNtgT0VAH4vZ1tdmnf hK8gqH0EtBaYY937PDvDCBU7Of6YsQtrBgaR1MkwG2oiuMdMcCmQpyE8PU0PHIPKH3zSYh Z/AlIQ6SAQDbSaovGzqoxb0oHBKaNFaqDIGXqyTWkUnVeX1RI/7iHjKN9gLQcjXOjbdvhw +RS4WpzMaO2+yJsNrJURMbtVquKMstZXr0IUilHTCEbb6dD7eV1mE4R+/4sF9Q== 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=1725440010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nAwyk09HO64CtMzUboPcInfhhoRuQre+MJupbh58ALY=; b=jlmqM2UlHRb++bsTqnaVTH+/+/f8M+MPv+KgZWXBVoS157tv28uwS63XMP6M0VeILxh9m5 Hlj0yCYTsJyheALZwwmNu/BLvpYJvhx1nFwDI62BvZMgzI1DRZ7hDQTgBum2R/TO4+x7/V 9vTDWtcwduh+wx0THqkbFuU0QdGeUpJj1EZGAkYTUIGGl6XxetUgc0+dyBOYf4vnLH66YA D16mbvOT3O7H1Yw+nczIklR870PJKgkLPoVQ1gMYhNbjVP/njaoM6StCijz5VETMOC2TxI hY/GkEOI1KMUchrbFiJ9w+FgEr3gu9A2m2x6/aH68G6g3EHFuOxX24JhsP/fuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVf1LBtzJDG; Wed, 4 Sep 2024 08:53:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rUtn005449; Wed, 4 Sep 2024 08:53:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rUgs005446; Wed, 4 Sep 2024 08:53:30 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:30 GMT Message-Id: <202409040853.4848rUgs005446@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: b84344206721 - stable/13 - pf: improve the ICMPv6 direction check 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b84344206721ed2803d5da68585289d5880efe3f Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b84344206721ed2803d5da68585289d5880efe3f commit b84344206721ed2803d5da68585289d5880efe3f Author: Kristof Provost AuthorDate: 2024-08-26 12:59:38 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:06 +0000 pf: improve the ICMPv6 direction check Following bluhm's advice this changes the way we setup state keys and perform state lookups for ICMPv6 Neighbor Discovery packets: - replace the NS-dst with ND target address; - replace the NA-src with ND target address; - replace the NA-dst with unspecified address if it is a multicast. This allows pf to match Address Resolution, Neighbor Unreachability Detection and Duplicate Address Detection packets to the corresponding states without the need to create new ones or match unrelated ones. As a side effect we're doing now one state table lookup for ND packets instead of two. Fixes a bug uncovered by one of the previous commits that virtually breaks IPv6 connectivity after few minutes of use. ok stsp henning, with and ok bluhm PR: 280701 MFC after: 1 week Obtained from: OpenBSD, mikeb , 2633ae8c4c8a Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 5ab1e5f7e5585558a73b723f07528977a82cee82) --- sys/net/pfvar.h | 2 +- sys/netpfil/pf/pf.c | 116 ++++++++++++++++++++++++++++++++++--------------- sys/netpfil/pf/pf_lb.c | 2 +- 3 files changed, 84 insertions(+), 36 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index 5d72dabfe305..e6c2d1f290cf 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -2224,7 +2224,7 @@ struct pf_krule *pf_get_translation(struct pf_pdesc *, struct mbuf *, struct pf_addr *, struct pf_addr *, uint16_t, uint16_t, struct pf_kanchor_stackframe *); -struct pf_state_key *pf_state_key_setup(struct pf_pdesc *, struct pf_addr *, +struct pf_state_key *pf_state_key_setup(struct pf_pdesc *, struct mbuf *, int, struct pf_addr *, struct pf_addr *, u_int16_t, u_int16_t); struct pf_state_key *pf_state_key_clone(struct pf_state_key *); diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index f56037c58572..f55ed99153b1 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -311,6 +311,9 @@ static int pf_test_fragment(struct pf_krule **, int, struct pfi_kkif *, struct mbuf *, void *, struct pf_pdesc *, struct pf_krule **, struct pf_kruleset **); +static int pf_state_key_addr_setup(struct pf_pdesc *, struct mbuf *, + int, struct pf_state_key_cmp *, int, struct pf_addr *, + int, struct pf_addr *, int); static int pf_tcp_track_full(struct pf_kstate **, struct pfi_kkif *, struct mbuf *, int, struct pf_pdesc *, u_short *, int *); @@ -324,7 +327,7 @@ static int pf_test_state_udp(struct pf_kstate **, int, void *, struct pf_pdesc *); int pf_icmp_state_lookup(struct pf_state_key_cmp *, struct pf_pdesc *, struct pf_kstate **, struct mbuf *, - int, struct pfi_kkif *, u_int16_t, u_int16_t, + int, int, struct pfi_kkif *, u_int16_t, u_int16_t, int, int *, int, int); static int pf_test_state_icmp(struct pf_kstate **, int, struct pfi_kkif *, struct mbuf *, int, @@ -379,7 +382,7 @@ extern int pf_end_threads; extern struct proc *pf_purge_proc; VNET_DEFINE(struct pf_limit, pf_limits[PF_LIMIT_MAX]); -enum { PF_ICMP_MULTI_NONE, PF_ICMP_MULTI_SOLICITED, PF_ICMP_MULTI_LINK }; +enum { PF_ICMP_MULTI_NONE, PF_ICMP_MULTI_LINK }; #define PACKET_UNDO_NAT(_m, _pd, _off, _s, _dir) \ do { \ @@ -1423,9 +1426,66 @@ pf_state_key_ctor(void *mem, int size, void *arg, int flags) return (0); } +static int +pf_state_key_addr_setup(struct pf_pdesc *pd, struct mbuf *m, int off, + struct pf_state_key_cmp *key, int sidx, struct pf_addr *saddr, + int didx, struct pf_addr *daddr, int multi) +{ +#ifdef INET6 + struct nd_neighbor_solicit nd; + struct pf_addr *target; + u_short action, reason; + + if (pd->af == AF_INET || pd->proto != IPPROTO_ICMPV6) + goto copy; + + switch (pd->hdr.icmp6.icmp6_type) { + case ND_NEIGHBOR_SOLICIT: + if (multi) + return (-1); + if (!pf_pull_hdr(m, off, &nd, sizeof(nd), &action, &reason, pd->af)) + return (-1); + target = (struct pf_addr *)&nd.nd_ns_target; + daddr = target; + break; + case ND_NEIGHBOR_ADVERT: + if (multi) + return (-1); + if (!pf_pull_hdr(m, off, &nd, sizeof(nd), &action, &reason, pd->af)) + return (-1); + target = (struct pf_addr *)&nd.nd_ns_target; + saddr = target; + if (IN6_IS_ADDR_MULTICAST(&pd->dst->v6)) { + key->addr[didx].addr32[0] = 0; + key->addr[didx].addr32[1] = 0; + key->addr[didx].addr32[2] = 0; + key->addr[didx].addr32[3] = 0; + daddr = NULL; /* overwritten */ + } + break; + default: + if (multi == PF_ICMP_MULTI_LINK) { + key->addr[sidx].addr32[0] = IPV6_ADDR_INT32_MLL; + key->addr[sidx].addr32[1] = 0; + key->addr[sidx].addr32[2] = 0; + key->addr[sidx].addr32[3] = IPV6_ADDR_INT32_ONE; + saddr = NULL; /* overwritten */ + } + } +copy: +#endif + if (saddr) + PF_ACPY(&key->addr[sidx], saddr, pd->af); + if (daddr) + PF_ACPY(&key->addr[didx], daddr, pd->af); + + return (0); +} + struct pf_state_key * -pf_state_key_setup(struct pf_pdesc *pd, struct pf_addr *saddr, - struct pf_addr *daddr, u_int16_t sport, u_int16_t dport) +pf_state_key_setup(struct pf_pdesc *pd, struct mbuf *m, int off, + struct pf_addr *saddr, struct pf_addr *daddr, u_int16_t sport, + u_int16_t dport) { struct pf_state_key *sk; @@ -1433,8 +1493,12 @@ pf_state_key_setup(struct pf_pdesc *pd, struct pf_addr *saddr, if (sk == NULL) return (NULL); - PF_ACPY(&sk->addr[pd->sidx], saddr, pd->af); - PF_ACPY(&sk->addr[pd->didx], daddr, pd->af); + if (pf_state_key_addr_setup(pd, m, off, (struct pf_state_key_cmp *)sk, + pd->sidx, pd->src, pd->didx, pd->dst, 0)) { + uma_zfree(V_pf_state_key_z, sk); + return (NULL); + } + sk->port[pd->sidx] = sport; sk->port[pd->didx] = dport; sk->proto = pd->proto; @@ -4589,7 +4653,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, if (nr == NULL) { KASSERT((sk == NULL && nk == NULL), ("%s: nr %p sk %p, nk %p", __func__, nr, sk, nk)); - sk = pf_state_key_setup(pd, pd->src, pd->dst, sport, dport); + sk = pf_state_key_setup(pd, m, off, pd->src, pd->dst, sport, dport); if (sk == NULL) goto csfailed; nk = sk; @@ -6013,9 +6077,9 @@ pf_multihome_scan_asconf(struct mbuf *m, int start, int len, int pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, - struct pf_kstate **state, struct mbuf *m, int direction, struct pfi_kkif *kif, - u_int16_t icmpid, u_int16_t type, int icmp_dir, int *iidx, int multi, - int inner) + struct pf_kstate **state, struct mbuf *m, int off, int direction, + struct pfi_kkif *kif, u_int16_t icmpid, u_int16_t type, int icmp_dir, + int *iidx, int multi, int inner) { key->af = pd->af; key->proto = pd->proto; @@ -6028,25 +6092,9 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, key->port[pd->sidx] = type; key->port[pd->didx] = icmpid; } - if (pd->af == AF_INET6 && multi != PF_ICMP_MULTI_NONE) { - switch (multi) { - case PF_ICMP_MULTI_SOLICITED: - key->addr[pd->sidx].addr32[0] = IPV6_ADDR_INT32_MLL; - key->addr[pd->sidx].addr32[1] = 0; - key->addr[pd->sidx].addr32[2] = IPV6_ADDR_INT32_ONE; - key->addr[pd->sidx].addr32[3] = pd->src->addr32[3]; - key->addr[pd->sidx].addr8[12] = 0xff; - break; - case PF_ICMP_MULTI_LINK: - key->addr[pd->sidx].addr32[0] = IPV6_ADDR_INT32_MLL; - key->addr[pd->sidx].addr32[1] = 0; - key->addr[pd->sidx].addr32[2] = 0; - key->addr[pd->sidx].addr32[3] = IPV6_ADDR_INT32_ONE; - break; - } - } else - PF_ACPY(&key->addr[pd->sidx], pd->src, key->af); - PF_ACPY(&key->addr[pd->didx], pd->dst, key->af); + if (pf_state_key_addr_setup(pd, m, off, key, pd->sidx, pd->src, + pd->didx, pd->dst, multi)) + return (PF_DROP); STATE_LOOKUP(kif, key, direction, *state, pd); @@ -6109,7 +6157,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif * ICMP query/reply message not related to a TCP/UDP packet. * Search for an ICMP state. */ - ret = pf_icmp_state_lookup(&key, pd, state, m, pd->dir, + ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 0); if (ret >= 0) { @@ -6117,7 +6165,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif icmp_dir == PF_OUT) { if (*state != NULL) PF_STATE_UNLOCK((*state)); - ret = pf_icmp_state_lookup(&key, pd, state, m, + ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 0); if (ret >= 0) @@ -6525,7 +6573,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pf_icmp_mapping(&pd2, iih->icmp_type, &icmp_dir, &multi, &virtual_id, &virtual_type); - ret = pf_icmp_state_lookup(&key, &pd2, state, m, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd2.dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) @@ -6580,7 +6628,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pf_icmp_mapping(&pd2, iih->icmp6_type, &icmp_dir, &multi, &virtual_id, &virtual_type); - ret = pf_icmp_state_lookup(&key, &pd2, state, m, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { @@ -6589,7 +6637,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif if (*state != NULL) PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, pd, - state, m, pd->dir, kif, + state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); if (ret >= 0) diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index 46d3ea8f508d..2571a0c5312e 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -606,7 +606,7 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, int direction, return (NULL); } - *skp = pf_state_key_setup(pd, saddr, daddr, sport, dport); + *skp = pf_state_key_setup(pd, m, off, saddr, daddr, sport, dport); if (*skp == NULL) return (NULL); *nkp = pf_state_key_clone(*skp); From nobody Wed Sep 4 08:53:31 2024 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 4WzGVg6vzKz5TS4x; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVg6N2bz4XRm; Wed, 4 Sep 2024 08:53:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wyCmOssdMAbTYAq3I8VCL0MIhAJ3a+zvRA+YILVUOb4=; b=cJHdrtIKEKrN/txnRVxIuR0PdPzpF1no2P0mPQ+rSjV3+uB7Yx3bcfFOupBezYY4tMU999 gydqjVNCzgL11L+UKhklNUc6gtFRFrPbojl8kPd3B8MP9/i4HdUQNNmZLz/qcnNL+9TV3f B6aL9zSuJ2NEwY/kBUbjQ0/0CHNafyqVYKRzcHeZuQJ3OsqwvbOx+WhjIIQ75onQ+tZZUg yVI9uJsN4jhPIqPnd3tL33/yCRnggXSMtpxKEgGXVOqZpxWiwxCS7yjOHb7wEV0tdoIIe+ 1rLZXsy4Ny5CdGETDdJ/sdBMoIvCIDFyaM1ZvZ+BjQSlCam6EvEbQ+W7Hzy+cg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440011; a=rsa-sha256; cv=none; b=mvz/PfqBsTz02LXGKsh1dXhtvXqzrHpkelE14/TDlfdz1bU4ouqMApNXAZdZBfNCtU9ZyY sTjSk4UstWhlcUgGoMybECrpdYOvTlsNzJW3GwPjrzH3ddBL1zcutBFMuKpQYV6Lt9PWib Vz8U8pbHtVyplQ+Vy4ag9U3JtFREcD4Ie9u4F/h8a8DDo+ddluNErn2Oi6r7nYZkiNooXJ wDE2czYEbYpQHbM+yTVSjOQ/tsMAIpEuJYOkzKxK6LULpOKxZh4hHGbc43I6uVDLW6F2kh H/SxRu2H0LnedgUOTPXBg0/j2kOTwdIMTbtBVEq16AE2pg2rlcRZl+I7yuW5Vg== 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=1725440011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wyCmOssdMAbTYAq3I8VCL0MIhAJ3a+zvRA+YILVUOb4=; b=OalL+0w9D0G1nj7WeR0eoeP+HQwfzxIwfAKTzWdEmr/K5DOGDoeW0/hIu/BvZQ5z6YFToj lBeivpxSW99e+hPYdygG4Zo9FxjOSITDw7Tr6XbhwN1givEFg+nvXZ/iytan0G7gauA5KL 1+tVeaimXeheUjRnWMWfpW0x+M/aCygn9z8z7XNSbRXolw29SbLEtC3/evFg8lareukBQo LYp1Vst0WNam1RRfnYzX+vOpuKm2bBV7IGSkZgLVDehMVPtLLyQg/Wfj0DLFV82S8euU+T 1Pe7vwUiZznZymkjLFuJgfGnZvyZWjb/YEvS0JGQRf5QosmV9MhpPKGf6hjAcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVg60LnzHWg; Wed, 4 Sep 2024 08:53:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rVEo005623; Wed, 4 Sep 2024 08:53:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rVlo005620; Wed, 4 Sep 2024 08:53:31 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:31 GMT Message-Id: <202409040853.4848rVlo005620@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: f40b0e735177 - stable/14 - pf: try to lookup the icmp state based on a correct packet descriptor 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f40b0e735177b25ce67fb488a93834168f4c16e1 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f40b0e735177b25ce67fb488a93834168f4c16e1 commit f40b0e735177b25ce67fb488a93834168f4c16e1 Author: Kristof Provost AuthorDate: 2024-08-26 14:42:05 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:38:15 +0000 pf: try to lookup the icmp state based on a correct packet descriptor MFC after: 1 week Obtained from: OpenBSD, mikeb , e467ea25dcd3 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit b8cd169efa6ac0899b4998898129765ae5c685a6) --- sys/netpfil/pf/pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 62ee12322e8b..5d492394eb87 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -7224,11 +7224,11 @@ pf_test_state_icmp(struct pf_kstate **state, struct pfi_kkif *kif, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { - if (ret == PF_DROP && pd->af == AF_INET6 && + if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { if (*state != NULL) PF_STATE_UNLOCK((*state)); - ret = pf_icmp_state_lookup(&key, pd, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); From nobody Wed Sep 4 08:53:31 2024 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 4WzGVg58CVz5TRk8; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVg2gRvz4XgW; Wed, 4 Sep 2024 08:53:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8uWEVAXTS1K+ru8nsVnHGE3L7ajpJUlJk/xiyo9qbl4=; b=AYrbzE+KaszFGtrq9clyFNkXAhHlGAtKKwXMXyeMX1IFdEEvQd9Rc/OF4LzaFd/5ghW5AX FODmiqbwCpkyqvGOOd1+lnE/F31DhVAFtylxpk06r24iSOkWvEsUeLaTRkufnM7I/n1TIq n10IwtjAPrmxXCoJnIghnSNBC6Ix1BuQIiKo3e42pd17LWAa3czSEVoHWCOaytgePDDR+s UQjYcyHZFxYk5l/b3JDyu7oquysBUUxl2Cg7yF1b2F9C/CiomCEprc7M/sshshkpjRYd0U 3+gL33srXYMmojr5HlGPyWN4S7O6KdTBP2gCla5Ac/oR9Pwui6NdhtVlDW0GPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440011; a=rsa-sha256; cv=none; b=khBa+obo2SF+vsAUIfHfcvNSrAHMLgjvONrKRRR9Dafm+/Xn1yCLs0KYOyC2rT94G3lfH9 gYQIimJmcD363OVnAmTa1oUdcONybi5b9ihKgXTI0vYBPF9uBzGgMLrMVu5UnyA1slnVMg CkeuZ7EWBfGSYKHenoJdTT6tRjPqoqpCpoF0je8StYtc1xUWSHlgGZxIrtXjTyDp/SrRgm jHeLCH9FEnVOg6pnGjNLfunIhqcnr/+ADDCyJYknVtLkneBHp9oyMlvkX/xztM8C0ruRpf CRqQjK7aXZRMW05l+zmOZyl9gBMTI50R7302xYTG6RpSOLNHHPntyg3y8Dx9mA== 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=1725440011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8uWEVAXTS1K+ru8nsVnHGE3L7ajpJUlJk/xiyo9qbl4=; b=mx5ELWSDbvv/JHboJI3TrLMJDah+srCQAYHtTIQLHfJQ2bqYDcAfz9yyK3SFm6PVdog6eL dnNXLyPToH0QQd9tOJEgVc10TS+LEHWTeTYOPifVMBLQOjei0f4RDGPnrLu2Q68yLvDR0F eUQ03WRdo1AyC3/wjjqSdR0fjnQ6rNZhzvkE6Kc2aOT52K7kD/BKp4fdbDVE9/Lv+L9G+p +KC+O0G11QrHEjSsS+rgVK8NVgtX9ymHUcwwPUVMsLTYJUxwS0s2gBrD4MZORX315efe70 i77RyCT+klo8t+hAm+rEVkTuKl17BnfCv94SG5GaB3FGawB2r7LOuSBx3D6JbA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVg2HNNzJ2l; Wed, 4 Sep 2024 08:53:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rV7J005557; Wed, 4 Sep 2024 08:53:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rVKY005554; Wed, 4 Sep 2024 08:53:31 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:31 GMT Message-Id: <202409040853.4848rVKY005554@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 2c76404c79ac - stable/13 - pf tests: ensure that neighbour discovery works as expected 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2c76404c79ac67d8d3df1d11881dce9c2fa44cca Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=2c76404c79ac67d8d3df1d11881dce9c2fa44cca commit 2c76404c79ac67d8d3df1d11881dce9c2fa44cca Author: Kristof Provost AuthorDate: 2024-08-26 13:02:22 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:06 +0000 pf tests: ensure that neighbour discovery works as expected Also check repeated calls. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit d154dc21130b607d7903f276dd6d463b990f33f7) --- tests/sys/netpfil/pf/icmp6.sh | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/sys/netpfil/pf/icmp6.sh b/tests/sys/netpfil/pf/icmp6.sh index b9b60a484afc..eb286e23ef4c 100644 --- a/tests/sys/netpfil/pf/icmp6.sh +++ b/tests/sys/netpfil/pf/icmp6.sh @@ -149,8 +149,56 @@ ttl_exceeded_cleanup() pft_cleanup } +atf_test_case "repeat" "cleanup" +repeat_head() +{ + atf_set descr 'Ensure that repeated NDs work' + atf_set require.user root + atf_set require.progs ndisc6 +} + +repeat_body() +{ + pft_init + + epair=$(vnet_mkepair) + ifconfig ${epair}a inet6 2001:db8::2/64 up no_dad + + vnet_mkjail alcatraz ${epair}b + jexec alcatraz ifconfig ${epair}b inet6 2001:db8::1/64 up no_dad + + # Sanity check + atf_check -s exit:0 -o ignore \ + ping -c 1 2001:db8::1 + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "block all" \ + "pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state (if-bound) ridentifier 1000000107" + + jexec alcatraz pfctl -x loud + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv + atf_check -s exit:0 -o ignore \ + ndisc6 -m -n -r 1 2001:db8::1 ${epair}a + jexec alcatraz pfctl -ss -vv +} + +repeat_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "zero_id" atf_add_test_case "ttl_exceeded" + atf_add_test_case "repeat" } From nobody Wed Sep 4 08:53:32 2024 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 4WzGVh58dlz5TS9B; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVh3QVmz4Xrj; Wed, 4 Sep 2024 08:53:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1QQakvTxOFS33r6Gh9ORsLaG1CXnqZQaTExWbFWrXUI=; b=G8czzyPcraY4XQ1qt5FXj5VVxo6Um9l03N2rBfN6HO5gwD1AeCCJWV1ZBrNFys64AHnfgu TX6KS9zGPcc5WOene14DrfQAOJilfllUCsP9V8BodBOm+OVk0B+JfGMHrZCSpvqHlDbUAM CeNCbXXyQVUu1P+3g/uVqELYcMT6tt1F/FunXGIaifYdYYm2wEOA6F8abbpnO+TDvoVwao ip7MFYBrHBJEWacR1OUwJ/mUMG/U3k85XtzgiXBDoxO9mcfA5V99Jg9OK82kuflyeLzRGS 2x73enHtc0b7exI5iennUakmdUMzLfC/+kRvxaZU9vvda2Mn9jXZ45V2TFH1qA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440012; a=rsa-sha256; cv=none; b=XcaZE0QfhpRqxEKT/XMR62cW5OX/QApQd2X7tuGoU70Y6vqHEp/Mzb3qFCXI6TAQNf0T3k dddR1qHtVGyE7O/mzAQaMJ8xlg2U4aR9VDho6XT9dbwVLwuKqwny9u2HaVE/h9d5AQXRt2 7gh22NtSY7n5l7wewBNRBQPL70bzS7mLGMBa1nyCTtoNvkGDgwcmaAKwlCEY/sqAEqKuZq e6KPhCKltRu/fx3JrZUv8OgWNFlV9uzt0B6TF0HLpOpTq1kUpETFBd2aAfV8r149vkMfXA K92VzjBti4LKl5UyaCXsjGE1uRZMKkjS2P1xp9smxHHd65+sViTEECBZxMsSrA== 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=1725440012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1QQakvTxOFS33r6Gh9ORsLaG1CXnqZQaTExWbFWrXUI=; b=bZuG6afFrGhxvE6Gw5GJE7pATi/kEHL7JmjwYUuP99MsV+jnzn6dGt5Db31LIotaCHuu4Z ipu4TNt8kfac9y/+cd3ChZUt1SXGheApr0S4MtDK2FYsRpMEBsfU08YbkxBlKvAlm8vpjG LV0hDjd//pj6Jm4esPQmvOSENn82MAKuWNhdNYUVn7XQuov6dWEkUOSYNcYHTHPqjh6Zh1 ROPqnWfEepL2mbLFf4qIKlgVrBDwecRHl6vmbRSnLi0wGSfcBunYRIPHyccaW3GCxi2tKo wADYBqXA3J0Vm2QmQKn1EIsQRbQaicgx4W3RfTrc+YZH8+S/Mact+Zslw5yuCA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVh32WCzJCH; Wed, 4 Sep 2024 08:53:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rWcL005689; Wed, 4 Sep 2024 08:53:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rWPo005686; Wed, 4 Sep 2024 08:53:32 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:32 GMT Message-Id: <202409040853.4848rWPo005686@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: fa4b64836183 - stable/13 - pf: try to lookup the icmp state based on a correct packet descriptor 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: fa4b64836183c33631d92dadb073a9e435c5bf6d Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=fa4b64836183c33631d92dadb073a9e435c5bf6d commit fa4b64836183c33631d92dadb073a9e435c5bf6d Author: Kristof Provost AuthorDate: 2024-08-26 14:42:05 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:06 +0000 pf: try to lookup the icmp state based on a correct packet descriptor MFC after: 1 week Obtained from: OpenBSD, mikeb , e467ea25dcd3 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit b8cd169efa6ac0899b4998898129765ae5c685a6) --- sys/netpfil/pf/pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index f55ed99153b1..ef6a2bd7de40 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6632,11 +6632,11 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { - if (ret == PF_DROP && pd->af == AF_INET6 && + if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { if (*state != NULL) PF_STATE_UNLOCK((*state)); - ret = pf_icmp_state_lookup(&key, pd, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); From nobody Wed Sep 4 08:53:32 2024 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 4WzGVj1WH5z5TSJq; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVj0KwMz4XpB; Wed, 4 Sep 2024 08:53:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZlW64CYagpgsKFdfb4iMjfsRZVX2VoJ5ZsL9/elwwuU=; b=nlYzD75Il60RSfuf+n6n7qfM9MiNUGEeHxQqBwM8/0xcS182Z5Da6JSDujoHJi3UtIrXc/ TmEbwaKj6t+XT0nMeIzu9h2vhZ6UfLWbg08rinqEVM5vZa8iNOUuPgicwgyj3NsQwOqjho Uylt4B3xgEe911n/ScOEkRWN9N9SBJ2yI8o3RqwopBFwy4IbLw0AOPEG/W1MkQ4PSpekon W/YnFCGiH2TFuOoFrLT3jnxfaHMAWyH7tbMiOoqnTMh7jaZIwGC+82QFJx7nQzfHuJqjDX znoDkq0QNjNKNAATSJGnirXxIme959tlPvcocSb+YwTyiZyO3neYzWLTTWlIvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440013; a=rsa-sha256; cv=none; b=Ykn30ZScZGzoSNq1f4VuSvqkpjpaeykjhnHyyvf5qVYbIbhGJ3oIYrQw581ngXtXMRycZc IsEcl3vgSXuIotkQKvjIyoN6LL523PhCj0yBPDJoODC4V68Va/7wSoHafP8LPK0pI3/0sH exh1u5dsIryRHyKu0TF5ZmWTQjnYpZbNytcU68wEG4y9dI3a6klIRPFNT4nZmDRGO3BZwu MEmW2eULHdDOYXS+Vu0qHsUnZ1cmHWey80ZxpVsfSSE4NPR2k/fzbwwZf/6PxYFbL1vstq DhP8vPmUo6k5LKLnwRs/qFcloDgD53dfF3foFbVut6VGy7mUyHzm1WAvKiuCnQ== 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=1725440013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZlW64CYagpgsKFdfb4iMjfsRZVX2VoJ5ZsL9/elwwuU=; b=ASB4MDbCWg8eSWl5X89NUW9sro84A9ZjvLU794uyOdfzj7a33vYL3k2K3t516zS+0VSV+7 FEgjqHY7b4FpyS63jr3QnHlrUCnXT9Pv/rhSsrPAdfb8jq0IZICgbcaUT051dsXj1vl/sx K/Fau8LchKn5m58OZ0zNN2ZWKvNTM+dgvXYdgiJAvP/XJ5MTyJ5A1FJqlgthfnMd3aqHn1 CtEO/DtUS4UebnuM7g/Ege80JHZwMCtGGs/VfnPR9Slx0f+XI4qH7jCIx9sLt6pdhIsPlA l+Fq13/X/MTLwkcnlpWpiPOUGrVWS6DQygsGHwz9BMmhxPn8/ke98u2ngJZuwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVh73h2zHWh; Wed, 4 Sep 2024 08:53:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rWqH005759; Wed, 4 Sep 2024 08:53:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rWa9005756; Wed, 4 Sep 2024 08:53:32 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:32 GMT Message-Id: <202409040853.4848rWa9005756@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: b822e3fab468 - stable/14 - pf: be less strict about icmp state checking for sloppy state tracking 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b822e3fab468ffbe941d0758d960e1aa46069a38 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b822e3fab468ffbe941d0758d960e1aa46069a38 commit b822e3fab468ffbe941d0758d960e1aa46069a38 Author: Kristof Provost AuthorDate: 2024-08-26 14:44:20 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:38:15 +0000 pf: be less strict about icmp state checking for sloppy state tracking Sloppy state tracking renders ICMP direction check useless and harmful as we might see only half of the connection in the asymmetric setups but ignore the state match. The bug was reported and fix was verified by Insan Praja . Thanks! OK mcbride, henning MFC after: 1 week Obtained from: OpenBSD, mikeb , 538596657140 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 3da3eb6081a2e2f6ea2fed1728d5dd7f9e8786e5) --- sys/netpfil/pf/pf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 5d492394eb87..e94856b011bf 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6690,6 +6690,9 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, STATE_LOOKUP(kif, key, *state, pd); + if ((*state)->state_flags & PFSTATE_SLOPPY) + return (-1); + /* Is this ICMP message flowing in right direction? */ if ((*state)->rule.ptr->type && (((!inner && (*state)->direction == direction) || From nobody Wed Sep 4 08:53:33 2024 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 4WzGVj5SHSz5TSK4; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVj4C1rz4Xv9; Wed, 4 Sep 2024 08:53:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8ISdwFuPqTHEOQztJImAu3/bEWH8n1L7HpQna64z6cI=; b=Fo/OuibdB6fP5e+kcQpwMtd3dOs6uGJRcPs/4472JC6UWEoSr3p8wouS5QKy7E0nqTaiuD z21vLB6TMkZ78QTJiDn44GGSErL5uqVN1p3CkVYV0q9ot4L2BSSm/ZS5SuQ7nKVX1C6qsX /GOuyK+ejCozYq9d/HGGNRP7iFK6LeDQN213RJnLbSXeEue1/H1FyX4qyXCir0n3ewb5fj 5XIAeDxa81CF4brp5SGdphxC4D0cQpSvCt8o/beuiUtxMF8ze6s96UokZzRPyQfmDfOqt4 kZSv1AlbWxCKzPxmJ4M4i349sAEgvBt+PwQcO85LkG0su28ICtA2yAT3GpSbMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440013; a=rsa-sha256; cv=none; b=G453zffIlJEbEa24cLQs3IIbg/g/DYUzs3L8tMsN4S3IUGLAuGR5xUzU3MAXHpUEqjCg43 zpeHaGeF8WPNE9yMruagAPnCV/Ee0iI1XpndAczDUpT4+gnasET7qvdutD9lSRpRBbIsz8 6uCStvb6Hvok7/ISsDnjaJ7zjCFEIZQvFww4FG730Bum5wWVv3US9PMHt02DAYcAP31AV9 54ldmlQP1RC04sdv7YhCIZecf+xFZrHb1o5r6zJ6UoPM3urXu2hsinU8Tz3uRVwk2RA0kf uRtfdqN2OZX855eV7/hy6QsT9vh//oY8sB1HfQASHKe3EAx0k894D1Q+oHNOKA== 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=1725440013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8ISdwFuPqTHEOQztJImAu3/bEWH8n1L7HpQna64z6cI=; b=ECItWJH+HgTffJEIBMpUmraahjrk0TQxhQvaLx2TKXwakmOv3QacdO/+Ysa0pSCHmMCLUB 1TqGnfU5YF7hsW2+JEGmhCxvIiNHpTh2qxwoGzXNSot8W7cTr9RksZxLbNZy+0OncU73E2 3AgBARIqOuy5/PxzJKVplbmcYCa8WhF3J4OjTaBiECgtXVQ6YF7HRXOT+Xr/kDeWuzG0Nv zrPztpyZg5ORaOhMTGRuLK3WUqsa9gXwxrth8V5C+OXiiZFnpWn03FlytxSB7frQbf6B8/ jWzVvyw8QNH6K0VgJSD181yo4dKQkZH6Yl4J81gzRvK3hJCgIcy5l6MLeGg8fA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVj3qcCzHrg; Wed, 4 Sep 2024 08:53:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rXN8005827; Wed, 4 Sep 2024 08:53:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rXgT005824; Wed, 4 Sep 2024 08:53:33 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:33 GMT Message-Id: <202409040853.4848rXgT005824@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: b4b8b2fc9bd2 - stable/13 - pf: be less strict about icmp state checking for sloppy state tracking 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b4b8b2fc9bd25d10eab0afdbd06a7ef8735b7b6b Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b4b8b2fc9bd25d10eab0afdbd06a7ef8735b7b6b commit b4b8b2fc9bd25d10eab0afdbd06a7ef8735b7b6b Author: Kristof Provost AuthorDate: 2024-08-26 14:44:20 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:06 +0000 pf: be less strict about icmp state checking for sloppy state tracking Sloppy state tracking renders ICMP direction check useless and harmful as we might see only half of the connection in the asymmetric setups but ignore the state match. The bug was reported and fix was verified by Insan Praja . Thanks! OK mcbride, henning MFC after: 1 week Obtained from: OpenBSD, mikeb , 538596657140 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 3da3eb6081a2e2f6ea2fed1728d5dd7f9e8786e5) --- sys/netpfil/pf/pf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index ef6a2bd7de40..db7d8659baec 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6098,6 +6098,9 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, STATE_LOOKUP(kif, key, direction, *state, pd); + if ((*state)->state_flags & PFSTATE_SLOPPY) + return (-1); + /* Is this ICMP message flowing in right direction? */ if ((*state)->rule.ptr->type && (((!inner && (*state)->direction == direction) || From nobody Wed Sep 4 08:53:34 2024 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 4WzGVk3qNCz5TSK5; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVk1LYWz4Xry; Wed, 4 Sep 2024 08:53:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CAWSaO1YShihW36trFHB3EyMyVpOSpsfeVeqT99axxE=; b=pvEAr0nSB128Ao3xoTkWl8ve6mqBijfnAd3zLLe3imJ48CbwzierVnzOdqpL/gIV9HaFW6 WKPFYtUi0R+5Pqy27vR9mIUATs+m/UNNjxiMXDcE9eg2eNC+KVOxEBDcZc0Dpug4HagXgT YR875LgfK1UVAAqFIVNVgGolhFLZsAE/ES6W6tXrODIYC4RCgYJ+6bGxRUroHrO3SJ7AGo QcA+s49T9/n14U5Y37324TL61A+laWlfuEs7yjaH1g3+ghx6lw1i0XKd2tfUZdwdFF6sFO AZ6TUOldWYxHMaa6Agts/F7wYI3+EvImLwXPDCV7j8w9uHtUOlZ3e8CTqMLjeQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440014; a=rsa-sha256; cv=none; b=wA0gSuza0zTy9VcxbT/uDnCqmfAn7jxygo3xbH2EMU9aXfBuuCNUeLe9GQnl8zTj2BtB8Y EE+aJspYACWLGpxlO2/pv54ltRi6++521aMA3C7FZb/PliH28bTszz0wGZKb0xqJsvZyZw hCqr8X5NdA3p1fQSTJAPtEeDzRY9L7fh+QideX8V52PyVKJq47grxH5UZxreZGHW9hsTYm 5gF/I7FRCbca2Wg29RlrQ319+YNsMVau0IJCLs4StoZfEgWbs8/otiWUyjxVIOINHtK8aU 094/fNtGLJaN5zMaG2fAqKugcRMBxMLPZmeOYcL4tOneDDoFkZnAgWVQ23tgCQ== 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=1725440014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CAWSaO1YShihW36trFHB3EyMyVpOSpsfeVeqT99axxE=; b=YSrfIfFRpEPUr2cVcq2CmtGEIYglag5pqH2JFeFrPker1UeNEXVC20fdqVwhjY3MHFfrPk 3k339lKYFjVZwaYjsVIIV5mB17jP11xgGd+ZsupiQE6M50ldNWJ3gF2pBZN7fw9MSDQ+K+ WPoXeDmn9nEmsnbPbBfJdYqEmvNkLNQ+JYTMP+ZNVldaVK/E6ghaNXcG9Nup4vPOBJHPQP ZP6m6ZAzFWzNTzf+SarA2V/FhgFlln/US9dlY4no/oWjEopcJR46D4lIoIrbi758lockx0 rU2Hd7tNIiWsd1hS9nCI9xUCndO7dBmUjmQnISslV1CBUUkP69RzAsCfgViQfg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVk0ys4zHnk; Wed, 4 Sep 2024 08:53:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rYOp005871; Wed, 4 Sep 2024 08:53:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rYpA005868; Wed, 4 Sep 2024 08:53:34 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:34 GMT Message-Id: <202409040853.4848rYpA005868@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 38f74de7184a - stable/14 - pf: rework pf_icmp_state_lookup() failure mode 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 38f74de7184ac3ad7acc48055551aaa9ec9cded9 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=38f74de7184ac3ad7acc48055551aaa9ec9cded9 commit 38f74de7184ac3ad7acc48055551aaa9ec9cded9 Author: Kristof Provost AuthorDate: 2024-08-30 11:36:39 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:38:15 +0000 pf: rework pf_icmp_state_lookup() failure mode If pf_icmp_state_lookup() finds a state but rejects it for not matching the expected direction we should unlock the state (and NULL out *state). This simplifies life for callers, and also ensures there's no confusion about what a non-NULL returned state means. Previously it could have been left in there by the caller, resulting in callers unlocking the same state twice. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 0578fe492284ded4745167060be794032e6e22f0) --- sys/net/pfvar.h | 4 ++-- sys/netpfil/pf/pf.c | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index d33c747efa7e..290f339e7d00 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -359,8 +359,8 @@ struct pfi_dynaddr { mtx_unlock(_s->lock); \ } while (0) #else -#define PF_STATE_LOCK(s) mtx_lock(s->lock) -#define PF_STATE_UNLOCK(s) mtx_unlock(s->lock) +#define PF_STATE_LOCK(s) mtx_lock((s)->lock) +#define PF_STATE_UNLOCK(s) mtx_unlock((s)->lock) #endif #ifdef INVARIANTS diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index e94856b011bf..e39abc7e7ad2 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6704,6 +6704,8 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, pf_print_state(*state); printf("\n"); } + PF_STATE_UNLOCK(*state); + *state = NULL; return (PF_DROP); } return (-1); @@ -6756,15 +6758,16 @@ pf_test_state_icmp(struct pf_kstate **state, struct pfi_kkif *kif, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 0); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd->af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 0); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } @@ -7171,8 +7174,10 @@ pf_test_state_icmp(struct pf_kstate **state, struct pfi_kkif *kif, ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd2.dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } /* translate source/destination address, if necessary */ if ((*state)->key[PF_SK_WIRE] != @@ -7227,16 +7232,17 @@ pf_test_state_icmp(struct pf_kstate **state, struct pfi_kkif *kif, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } From nobody Wed Sep 4 08:53:34 2024 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 4WzGVk6fJ5z5TSWL; Wed, 04 Sep 2024 08:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzGVk5FBVz4XSD; Wed, 4 Sep 2024 08:53:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725440014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3uxULkJCBLo1WOuGZ0+TAukEhFYnPAf7/7JhuE57gzs=; b=MCO4xISXsJ1NhpuJmZV0f4YhyTro14XXuNBTKWl0A/MElm/jsMf2rODij9rAioR3Nv0L5R ecMrsciNNGg3V7isHMt5vhHCgJBiChiaR8lOHfyGqX5bLOkK6qdrKGr1KV8KCUsPpWEVp1 JYo5THjc6eO1E09n0YpFehTb3XVvb8H2JLKbOYibmeNlY7Q7QkUd1QfdhjipdhGejeRyRq 2wuLU+6F+II/TMFv1GivBBUyCKJB+mYPMA0vmw10vf8jL/9G+ZR95Fb1wFlpOan5toGSVe 55lEo9/oompdy1wQu23yO/XuFx41gSXM4HElmhthfTzWvMAcuP7yqQpJqs94ZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725440014; a=rsa-sha256; cv=none; b=qPmAvHyn6NC1gyIYzr6/goZtYx+gRPeZKNLzbAg0RCwAcUZT4i50aeqh/mczhqgBNWoya6 zSTEC+8pIhjXaw56xca/KSiy7WtuBMGr9lDLoOaWjuEEo1i8WCYVKptPW6mscJaz5Fm/fv JcztScTAc5GULUKgzHXCeiGr7pehPU6g54QiFL8p7qwuKcdV0cbBmCHpF0XcuquArebN+4 DMDqJIgD5pGlBhHZNvd/nPE91cjQ+SLFbC4bZtc7Kc6YysbN60yKL1mXUzOAfEBKueG2Im Y/iuSokdFjYh7dtevnVNj6rzoii9yCIYkWyf2i9VRAqon0MtoJAdd1YzMSxrJw== 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=1725440014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3uxULkJCBLo1WOuGZ0+TAukEhFYnPAf7/7JhuE57gzs=; b=HyGx4LenE4QMq+Ea1ZLH0RHX1m9a/FAnTnatDP95zFm2pVLP0xagy0B0zacbQ37l+BWa3Y rIxtMfh9vPJHATV6ZEXDJctVbAkVsBx7QKUzcjx6FnbfVyTk2KS38OJ26bAVJt1O/uejvw 94DyEIq8OoO3uZmx0BDsZuPkPzERoVWvXhyRtv95iUI65OpE4BgT8pK5mDB6USlpWCS5sH WqKjlHVwJdsUqJ/HAY70VDY3Sky7EQvQX96sJ/e8AbVo7sORDPtXAl9H3mvYRbyOB3J0tq +meadbRq8BzxYpQC3BpZ9hazcVs0z+At87Hdudb7HCp7fSsxUWA3aC5DZuqKIA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzGVk4qlvzHrh; Wed, 4 Sep 2024 08:53:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4848rYPC005913; Wed, 4 Sep 2024 08:53:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4848rYbe005910; Wed, 4 Sep 2024 08:53:34 GMT (envelope-from git) Date: Wed, 4 Sep 2024 08:53:34 GMT Message-Id: <202409040853.4848rYbe005910@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: d6e5f8643d37 - stable/13 - pf: rework pf_icmp_state_lookup() failure mode 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d6e5f8643d37e925aa51fc8224cfc05aba0813f7 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=d6e5f8643d37e925aa51fc8224cfc05aba0813f7 commit d6e5f8643d37e925aa51fc8224cfc05aba0813f7 Author: Kristof Provost AuthorDate: 2024-08-30 11:36:39 +0000 Commit: Kristof Provost CommitDate: 2024-09-04 08:53:07 +0000 pf: rework pf_icmp_state_lookup() failure mode If pf_icmp_state_lookup() finds a state but rejects it for not matching the expected direction we should unlock the state (and NULL out *state). This simplifies life for callers, and also ensures there's no confusion about what a non-NULL returned state means. Previously it could have been left in there by the caller, resulting in callers unlocking the same state twice. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 0578fe492284ded4745167060be794032e6e22f0) --- sys/net/pfvar.h | 4 ++-- sys/netpfil/pf/pf.c | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index e6c2d1f290cf..66bdbf43e212 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -330,8 +330,8 @@ struct pfi_dynaddr { mtx_unlock(_s->lock); \ } while (0) #else -#define PF_STATE_LOCK(s) mtx_lock(s->lock) -#define PF_STATE_UNLOCK(s) mtx_unlock(s->lock) +#define PF_STATE_LOCK(s) mtx_lock((s)->lock) +#define PF_STATE_UNLOCK(s) mtx_unlock((s)->lock) #endif #ifdef INVARIANTS diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index db7d8659baec..b95ef59a3250 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6112,6 +6112,8 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, pf_print_state(*state); printf("\n"); } + PF_STATE_UNLOCK(*state); + *state = NULL; return (PF_DROP); } return (-1); @@ -6164,15 +6166,16 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 0); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd->af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 0); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } @@ -6579,8 +6582,10 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd2.dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } /* translate source/destination address, if necessary */ if ((*state)->key[PF_SK_WIRE] != @@ -6635,16 +6640,17 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } From nobody Wed Sep 4 12:24:11 2024 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 4WzM9l5tMtz5TnQx; Wed, 04 Sep 2024 12:24: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzM9l4RcKz55tf; Wed, 4 Sep 2024 12:24:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725452651; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l7Rdm/1RxtTws8oaY0IOxCoAd0MOW5oGojFKrG1W3/M=; b=hzsMOxxNj9w2HuAOo94NXegPjCUy6y60ZJE3Zg7zLNtR7eJ7HhBubx3ZKt1scvPsJpGZX8 6k93zfHvv5ZAVAjfHPII94Ko9fsodeEnJtHlNncY3QgSGbMzHkTMJ7vgI8wxXIHVsDaFbH 842CcT7mPENUGXTqsT61PSLV/2xmpbKhhGu/USPL7rhR5xdA9hC22+uog0fsuy/PwBSLHi yMbQDYcruhWQvl2n2jkqVPOro0Pca0mSnTbQAf8Pu+Sv2NXO2JPYssnVBf84OgYqQnjHA+ Fxn6NvY+l2nMez22XS4gUjj9xfqJbVZ1FLzyYaybfcK39TPhsnZ3Qbbq7nUMaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725452651; a=rsa-sha256; cv=none; b=O5IHMpzzqxrOGuFsj7owEaq2bp0fQeqVMiOg7A8ktZ19+VXfmuQnBQaMhwb1c2cC/BaO9a uCtPiA8WlA+CLYsw9lgQ6pJdhcZwaAH6djXMf8QtC+7MvCRAiQv4yZvNE5gbKjovlaK1K4 ozvFn/5gHEOpuAI1CnNfyb/AEG2LraYWg1EnyzrYsh5oNc8NVED9RFnQzfVG9htnbD6Ga6 +mQYZ4CqdcBCXReelQ8TN6aD1RYn3Qr4qNNyOrQyAFVp3SC4vpRmioKwwivV4sw4jCH9t8 fvX8YHvZAFw+rQYAhl2ssIuFCwcGc87fcrXOvwB12lFua+jhTFYuL02UJiFghQ== 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=1725452651; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l7Rdm/1RxtTws8oaY0IOxCoAd0MOW5oGojFKrG1W3/M=; b=FrY+vWh+CXlNM5KT/Un8A4oUyAzQ7qUkBrV8MLqsQnZAs0f+z0cRIPAlXfa+B/FUjrzqMP 0RHVH+WUJNhGOoC4OvFguQir+OZw0V3i3IMrtqPVbiIsHAwcUG+8hStBCI3W7UfbYtOcCh rKb8M8FZaT/C5dyZ4U7u6oCJ9zdGW8nQOJshvvf0ZbOSwpgNFCt8AXQLeRpsEgA5t/CG+h UIb8vMSlcPqjN9t26yyvL0YomrCKtInJoJD77b0s2OaMKYw2eY4jJ87zyKJELmZlWZRq6f wigkLBqt1HmXmJfyycxvREmdsWcHQYl4TwFXuLrrArlNVlJVX6dTAItyl5D+Zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzM9l1Xl3zPDQ; Wed, 4 Sep 2024 12:24:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484COBa4062234; Wed, 4 Sep 2024 12:24:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484COBeR062231; Wed, 4 Sep 2024 12:24:11 GMT (envelope-from git) Date: Wed, 4 Sep 2024 12:24:11 GMT Message-Id: <202409041224.484COBeR062231@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mariusz Zaborski Subject: git: 2e7f9244ebef - stable/13 - libnv: allocate buffer in a safe way 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2e7f9244ebefe019ef016a3a5b47c4562850d1c2 Auto-Submitted: auto-generated The branch stable/13 has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=2e7f9244ebefe019ef016a3a5b47c4562850d1c2 commit 2e7f9244ebefe019ef016a3a5b47c4562850d1c2 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Mariusz Zaborski CommitDate: 2024-09-04 12:24:51 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9fd233e1f1d1..41d262a18c9b 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -997,7 +997,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1090,7 +1090,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1328,10 +1328,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1358,10 +1358,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1391,7 +1391,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1438,7 +1438,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1505,7 +1505,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 56b818691660..e399d610a7ce 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1302,7 +1306,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 12:24:12 2024 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 4WzM9m5qhXz5Tnkc; Wed, 04 Sep 2024 12:24:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzM9m3Skwz566B; Wed, 4 Sep 2024 12:24:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725452652; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zS9B1s0B6jngtIpTbOq1ktIsexmx5zqdGNojm7k26VE=; b=xXUN/bEWN395vkkzD0bqwSn1q+pArgPxaYH5Q5scZffqvjqmAIxCWvFZeJChJlrMh265JK vbTdb3MItIpXh2lvQSlK4wl8vPJmcgTIgsOtVvGzNOhjd7moaOs0TFOfAurO4XqpLrj1Vc pKw3PYlsm2uV1JmgfbnT8ivtfQkVUff/2PVZwW/M5CMvDdRJfMg1JoXPhV3tHl4CyCBBJQ mrtN4yS40uKEWaMHql3O1xacaiznL5fgA5Q/PbjJbVzUwPzq4LcFIWoQ3OPipMfDxtGBF/ hm8VbShRzXSj6//6pxdg6PcORwRS8LvBprJfjj3Ldejd5VUCzFJOCwHN8wln4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725452652; a=rsa-sha256; cv=none; b=P4Fpcl6HM/7PtsCz/uu1rZeFsQLeL0OcnL2tdEXqtri1wKp5//IeQyHoHaUhR739gxp5Wi dlKWywsKTIeZ+EubSb+O5U/GmaNLQfvYZ4RfoAnpSNPYolSr4S4tZdZhQR1ou28gLEsDPX BQE/xPoIByu5qo5V04lHWQMrqSyCHweZAwYy/Cjn8TFAzwZjFUjBHVMF0eLPYf642ogxQu 4JhrfmSVIzqCPiJ+Km+PIgTKfXrvEfXes9my8qMHyR5h+QbfnbmiXSJ/IW8PfItbYC8+4p NXbGGDAWMmkkxm/5sHOTkL1XE/hnkZaNV45xKMUg4lLobeVGEPyfGdeo0E+U+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=1725452652; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zS9B1s0B6jngtIpTbOq1ktIsexmx5zqdGNojm7k26VE=; b=acFy2XitYNpaw4s2iUOelOlTpY3tVFeaeC232dRl0tIe11vYnVj11cgzaIdbHd2JAltOwR lteEervDrtgUZeWlQLi2+rHpLFSSjKs9DDxczMUPtYN1qZzeYKtfdl3/49RLXRLZu5kDMK r5BXBhWcn/FI7z9S50GaYCQ/bbNkUcgZPfdb2xzEDJsSSkx2ogJh13egDLKvii7fLYAWuR wmNNN7MKEfGcnFgALhwSy6zPF/MfSD/SeUzv0nz+W3EMKNEPUsDiVtE6cL+daWaUt16jo5 mIMQv2lVXpZah9nDIT8CLhRDdO9pfgnokhwVLDYq/Pys4OutbYysxn5vc1US/g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzM9m2RyRzPDS; Wed, 4 Sep 2024 12:24:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484COCCl062286; Wed, 4 Sep 2024 12:24:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484COCsl062283; Wed, 4 Sep 2024 12:24:12 GMT (envelope-from git) Date: Wed, 4 Sep 2024 12:24:12 GMT Message-Id: <202409041224.484COCsl062283@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mariusz Zaborski Subject: git: 03bef9971d73 - stable/13 - libnv: verify that string is null terminated 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 03bef9971d73621e1703a0bad41b598bc2fce9c6 Auto-Submitted: auto-generated The branch stable/13 has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=03bef9971d73621e1703a0bad41b598bc2fce9c6 commit 03bef9971d73621e1703a0bad41b598bc2fce9c6 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Mariusz Zaborski CommitDate: 2024-09-04 12:25:13 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 41d262a18c9b..cfe168c38026 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -986,6 +986,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 12:24:55 2024 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 4WzMBc2ZqBz5TnV4; Wed, 04 Sep 2024 12:24: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzMBb5gS4z56Yh; Wed, 4 Sep 2024 12:24:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725452695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZFJa2JVg0FOBF39ZJ4v/mSG4GxQfTJDEkYneTePtjqg=; b=T42DeGxg/Snwoo7SJBHHb9byDTlDCRTxy2nz/NKmcx0m9WaZu85U90nPcOVKDIpjKrh5RK FfzfCSTAi2HJ8ohpkPd38XQlnG4DgelhSjlwMrofJksDuusvKDJf1s9Q9xty+dIxYTAyOv pO/a6G4OW/0lZuQq8E02z+gAzDrgtuH12KEaji6sIjIkbqH3SRMvJR7T2wU6jOa6XGfv8F omfL2jsUTEEc2gDX1N5iFv+EECsUygBHQoG9i2IzXix8QjOTLPHLzH2XsUlNXTQx7GEKeL 4F9jT7pNxL9M/YLcyZqqYy4ixD9zwlqWo8xBWB6kafObEfZQ+bmhkiAZekoGBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725452695; a=rsa-sha256; cv=none; b=CA6sgmZK6LFF5Sg6A4Vq6A6tUgzQDGmnD4jO3ec7AZe5H75tT5NdqSD04oD2kULl6P3S/n XIRs5aUYSSZhIG82EImcUbt75t0SGGF6RAI6u73t+TfGViekCY9xxFaucz0UrIpT7QGOz4 DmRcn22Tg8FTo4K7qxVTWhFMvsfuFA6ZckL5OkY48Ew0KmtzqHjUgOrH3FXdxF0nU8XbUF +RryT+hC1/qs1H7WcEFwYgbNJ01LWxl7SC4PUyjE1zaqj1HcyYHTBha/BtAdOBzX/SzN4R xqB/TE4rYhXtgN6e5QCO7yVVWanh1QtR0S8319ILtDCWWZyqS928vF+PIfom7w== 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=1725452695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZFJa2JVg0FOBF39ZJ4v/mSG4GxQfTJDEkYneTePtjqg=; b=uM5hke8m9qIlNNUPHabRVHycYhkb9XIihlZnTM7XVjylUwpGR4zkyQNSeUx5sWtOS3+n6q PUDiZ55YISEjI157gZmPQT8sH6ZDd1pR1s9FKe8wELFV0OU8z6xBDYuC1/A0ZAGp56Ckwu ETnlWjFiwdL2jZ0KlBswVhkVSyVVpa6tauwBFTWzic/GEuI8fEUx561iC2GqFMMfqQpJ0o tvzXLd/m7YTGjJJK5p3lttOSERfY6u8CqkOa+1nUam9NzNb0LU4x8sbDvlqMEC+aiuBIY2 +2oA24Ff5Tr0aju4pnOiVnIk/8i27CugpL+h8JsEqVWRGwMzvGbuR2IDGEW8lA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzMBb52YkzPY4; Wed, 4 Sep 2024 12:24:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484COtRT062512; Wed, 4 Sep 2024 12:24:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484COtwj062509; Wed, 4 Sep 2024 12:24:55 GMT (envelope-from git) Date: Wed, 4 Sep 2024 12:24:55 GMT Message-Id: <202409041224.484COtwj062509@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mariusz Zaborski Subject: git: 371af89975e3 - stable/14 - libnv: allocate buffer in a safe way 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 371af89975e3edd1e9f57aa5efba2598b63c0d2d Auto-Submitted: auto-generated The branch stable/14 has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=371af89975e3edd1e9f57aa5efba2598b63c0d2d commit 371af89975e3edd1e9f57aa5efba2598b63c0d2d Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Mariusz Zaborski CommitDate: 2024-09-04 12:26:05 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 0c76fefeebb6..9560ebc74f83 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -999,7 +999,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1092,7 +1092,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1330,10 +1330,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1360,10 +1360,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1393,7 +1393,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1440,7 +1440,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1507,7 +1507,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 57343f953e94..64078b10973e 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1313,7 +1317,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 12:24:56 2024 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 4WzMBd2vscz5TnMQ; Wed, 04 Sep 2024 12:24: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzMBd0ST1z56l2; Wed, 4 Sep 2024 12:24:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725452697; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N9AZ5voyh447aUWXQ7gmAjfQ8o+0k0+2gCzDAVvmx9c=; b=rhzaV90h+9E7ryLqyfI9zPq0aIHjJcN1tVe5pfuL01R8+mqtUjTTpGkH9/C+FrKGN82VYa x2Skh2qk3PVssphF+cb59rVeZaKfSTU0PnqPRT+MmWRf9WgiYqur3Q0Q5x0EFPUiH02X31 9M4AiR+Fjiz3Rur0j4+1nKbXUhyh3FlP5bwBJp3zPOj1lj3w/DZrQemAf5dXXyskzXRXNA d8ujxe26ICZwV7C8wskLaHilwLMT7bj2h4rpvbBywNqirtMDMyaHPrucXW3DyjMIgVqyXc oWRRgbIXnaaaDgKGjdEAXnq0lvWs3DF7vIWNv8NN46zFjSyqnbQ97xlnd2oGrQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725452697; a=rsa-sha256; cv=none; b=c4zJHBI/CbXslRhxCoSOiP/Jzja6Qb94or7yo7Ef6Llq/FqNH2iNBXliG+YOtw8MSgqJqP RfsBQTAwHV/82M3VDQA58/CNLGcQ2LjR2GvI9BU/bt6kdfAkUoOtveWFDiSmQV9lZyDJ8Z F8jiN0eWPIhVuE2uvn+wdbj39zq/AqbDklSknDCJHaN/gVgXHBsY66is8f/eC0DIoV8xxa cfInjjmm5amAMqJLOM1OMdIwPLi5DK/n0T7ZKpTBd+jnIMgS2S2lqTRS92Lql8aMJ+vkqu 1srDTolXreDoNwxb4NZ/9/5ToBLZaMsyMaqo3S+Lz2V1hrc0W2e0dT1m/08gyw== 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=1725452697; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N9AZ5voyh447aUWXQ7gmAjfQ8o+0k0+2gCzDAVvmx9c=; b=QXQ+Hmf+ykEJpjB2cbjDvQGJ4V1mx66nIfhEB/oiGcm7S4IiWFduTCh2oxbA87QORP6FKg ah9vQZUdfIQHt6h47IgGCv2C+BsYTJvZoUh1ZJVLjGRsYDYQaAuN0ppaxNvY5VEDCtQoD+ iISN3kBPxQMfC6kQ5VczeRdLHLCUelznfJc5YqVs/BBXZeP3VZ9RpxhObgvs43iij2FFfK NCdXw162fRpaI9dmjtKXRseopCg6Sd/zfY7bDaE4Vd+5FVTzKdx2X7KcB2/5zBYtBd+Fr9 DDrYq3nVTvKOSTmAtbimVQBSy8W1rOEsOhP1zgdrKm2ngSrSCOnvyQt2/+YM/A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzMBc6MVZzNhS; Wed, 4 Sep 2024 12:24:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484COubc062560; Wed, 4 Sep 2024 12:24:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484COuhc062557; Wed, 4 Sep 2024 12:24:56 GMT (envelope-from git) Date: Wed, 4 Sep 2024 12:24:56 GMT Message-Id: <202409041224.484COuhc062557@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mariusz Zaborski Subject: git: 9c2ef102166e - stable/14 - libnv: verify that string is null terminated 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9c2ef102166eaab4c2531eb0ce6ffb20b82e778a Auto-Submitted: auto-generated The branch stable/14 has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=9c2ef102166eaab4c2531eb0ce6ffb20b82e778a commit 9c2ef102166eaab4c2531eb0ce6ffb20b82e778a Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Mariusz Zaborski CommitDate: 2024-09-04 12:26:05 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9560ebc74f83..a977d7941aa3 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -988,6 +988,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 12:50:26 2024 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 4WzMm25HDqz5Tr0Y; Wed, 04 Sep 2024 12:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzMm24ZsDz58fD; Wed, 4 Sep 2024 12:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725454226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R5O2VTvTlmsFMBThbZySK6u54vWprc38oGaiCIZtfMc=; b=F4jZ3I0XCwUje90ttN+VVwlTn3//SJ6yW297S7aZAeSRi+oONmkKx0CrhWwhKiFrIcM+1q NWXN7LUJnQXD7s6RRS6UrL3ObW2/KM6OGDEgglVVwilPgxmU189+DNvHUvGFJHPkut14VO Fd9Vh8y/XbclBL+X44p0HoAxXCpwCAyNFkS+RQD3RJ5QAj0sqqBXSWY6bi8h5d9DgWmZOw 8ANIJ/IwRqi0T6cxh6Wxr0dxbqoo7+uJgph8OLKfCB3vKOHJ1Pq0df4LuiD+B1CK5PHwHH oQD9lC1uVjXBfLokmWoubEJ2/DQmx6b5Yp3zB6xDMSYHVAOwMNbcGKl130RCfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725454226; a=rsa-sha256; cv=none; b=q2oraKgCOM9kMrHItvF1SyQMWy8JrgavNC4oacZVIgOHmKpPXN7/bkdfFOrnLhi0YuuwUu d4RjZRb8Cb+Nbtp7Oyjn0qkZH+myrjQMFs0y9+bgItbj1OuXWiD53W6cT9qL36EbojLizk 3vJO/GakIQTiLZUxrz72c5FSRDshZE+esj2LKkzpGW8O5IuR36v6t3VSy/LTkZ8LfYiPyR b1uQhv8CqjQud+bnf0xpC1tKvcrqTcmcete2awBKM3xige5KuYD4buLt3olsZdwTDsZdG6 VBVhmpeiCX1MUdmdX1v56LsZDO4hJu82IkBsRKunnFhT20OVxaJ+k1ky0mj5Xw== 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=1725454226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=R5O2VTvTlmsFMBThbZySK6u54vWprc38oGaiCIZtfMc=; b=jIDOoweuACp/tgBnQw+/3IpPX1ZOqGlu8pU8bBHn9zs6CNXI9W+pkRUojtBw6w9MEddWJU 8UG2WHPIWHPVhwoX5aoJTon5NKyA7nuZhZLtKZJGpGLcKEmtfkZONh5OP3N86nSL0P13lG V4fWT9zaZyFArZDvWs2d43EBOrwM5tS0X/lHS5FKgvBAZ6jLWYxDjNmxv5TiYqv+MnSgU5 aCMyWiqt5vFHwcOifpxr1dRJKHNif/fb0b2p++kArLZXh5BLj4PIrge5NcrbSVkCEGvsSY QupW20E13UZ+mqEFHHNEQ6PzJu1+ZBX74Vp2B5HFjrN44UZ2H0wvl4adOa4/2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzMm24B1xzPj0; Wed, 4 Sep 2024 12:50:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484CoQMr005232; Wed, 4 Sep 2024 12:50:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484CoQit005229; Wed, 4 Sep 2024 12:50:26 GMT (envelope-from git) Date: Wed, 4 Sep 2024 12:50:26 GMT Message-Id: <202409041250.484CoQit005229@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b6d6674fecbd - stable/13 - nd6: Fix the routing table subscription 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 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/13 X-Git-Reftype: branch X-Git-Commit: b6d6674fecbdb9a752a893860938837ef76e8cf7 Auto-Submitted: auto-generated The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b6d6674fecbdb9a752a893860938837ef76e8cf7 commit b6d6674fecbdb9a752a893860938837ef76e8cf7 Author: Mark Johnston AuthorDate: 2024-07-25 14:26:36 +0000 Commit: Mark Johnston CommitDate: 2024-09-04 12:49:50 +0000 nd6: Fix the routing table subscription The nd6 code listens for RTM_DELETE events so that it can mark the corresponding default router as inactive in the case where the default route is deleted. A subsequent RA from the router may then reinstall the default route. Commit fedeb08b6a58e broke this for non-multipath routes, as rib_decompose_notification() only invokes the callback for multipath routes. Restore the old behaviour. Also ensure that we update the router only for RTM_DELETE notifications, lost in commit 2259a03020fe0. Reviewed by: bz Fixes: fedeb08b6a58 ("Introduce scalable route multipath.") Fixes: 2259a03020fe ("Rework part of routing code to reduce difference to D26449.") MFC after: 2 weeks Sponsored by: Klara, Inc. Sponsored by: Bell Tower Integration Differential Revision: https://reviews.freebsd.org/D46020 (cherry picked from commit a48df53e4249499be3e8779dd30888a405aa81ae) --- sys/netinet6/nd6.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 39c4b498e938..70fb468176a5 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -1595,8 +1595,7 @@ check_release_defrouter(const struct rib_cmd_info *rc, void *_cbdata) struct nhop_object *nh; nh = rc->rc_nh_old; - - if ((nh != NULL) && (nh->nh_flags & NHF_DEFAULT)) { + if (rc->rc_cmd == RTM_DELETE && (nh->nh_flags & NHF_DEFAULT) != 0) { dr = defrouter_lookup(&nh->gw6_sa.sin6_addr, nh->nh_ifp); if (dr != NULL) { dr->installed = 0; @@ -1608,9 +1607,10 @@ check_release_defrouter(const struct rib_cmd_info *rc, void *_cbdata) void nd6_subscription_cb(struct rib_head *rnh, struct rib_cmd_info *rc, void *arg) { - #ifdef ROUTE_MPATH rib_decompose_notification(rc, check_release_defrouter, NULL); + if (rc->rc_cmd == RTM_DELETE && !NH_IS_NHGRP(rc->rc_nh_old)) + check_release_defrouter(rc, NULL); #else check_release_defrouter(rc, NULL); #endif From nobody Wed Sep 4 15:42:29 2024 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 4WzRZY5PBFz5V70d; Wed, 04 Sep 2024 15:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRZY4xHNz4R6p; Wed, 4 Sep 2024 15:42:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725464549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bjl77afxF8BFGk4DiBlo6Mxbrrfewfv+C5qAV5LnO9I=; b=KbPGHa4nEv5mMb/z7bzCTS6Y+zdDfkuH22wvkM9bf+ZCd8ReCMVNu448/ewiPunNIXlNCm mt6nNgFefxz9LrVtdohZYBI6Pz036x9zTgq7Y8AinldUs8lANPdokEoz6W863LFsXFKqt1 OWkFRg95iJh3HSiCIhw6QeXyUeQtTsAq0z3Mgw6/T3AeqGuntel8Ywm5YGBs8mnGQF9kcO //rb3fULFMK/ziOJW8CxUVHn0XhZkPzvaRe9QDsv4V5oOF0BjpRvwCcz072L70T/vTTgpy LwPXqXR3rBgW440EdiJPDxmupYs9hR0+PvUDwT+lNfMFDjO1nmT30F/jtNzmIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725464549; a=rsa-sha256; cv=none; b=IipHY1tlb6I3jWUl7KvZyyARiUNH+4A1qBau6unPBu0y4vK4zn0+JN2IMUJ70d4zPlPM1g ZwCCcF51Qb1WjM62qWZrn6U0jgE6ifLNhj8lG7iytx+Y9fOfAZZ7kVSFCvczFtxK9O5bjM 0bsRyQtbGdMNdHjdJteinX25P8J5gQihJ/FsQbLuEoeIPxxv6nLqlJ1iRSJ5HQPXxaiEyV sJzXgrIjrDNbNDcc2dWhl7sZdI63zlXHrATzFT+6dOPyCLGbYrc0q1QVPIW2wnfbZBifbM DOJe7U1FotNy4SDFD1QUUXOFc+oz5gyd7IpU8qaiwQPQPwaADK0uctyX0AgFnQ== 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=1725464549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bjl77afxF8BFGk4DiBlo6Mxbrrfewfv+C5qAV5LnO9I=; b=HSIkkvr3uf4YBQghtBdG4MNFXUIA48UtUCMfWPUaXZ3CM0/5JKllhHPUt/u3WjebJhN159 7pU5i7miLkrIf1e60mXKncZ7scu8G7/bJl9g2Fr1E11Z32gSTBAMdyMWy50UbgjONP1pqe QekUzThgviTB3ts3XqHl0IX4K6ApM6/gjh4TeD6LD0x8MHdkjrXkRjPY4UFtStZMtfCvQG EyVNX1vOZ18y25U3YpoZMy7CBsMUkQQcNGefYArAVAPmhfgpmf+HxQJ6uOV8xIMnFHs2oT /H1Md/jHx1Ew05nE5U2AyaWkLthw6ytaApaaB+HRjI8mcduLy73rxKK2tc/hfQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRZY4XdhzWMl; Wed, 4 Sep 2024 15:42:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484FgTbf002461; Wed, 4 Sep 2024 15:42:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FgT6B002458; Wed, 4 Sep 2024 15:42:29 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:42:29 GMT Message-Id: <202409041542.484FgT6B002458@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 6ce4821f0859 - stable/14 - bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler 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 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: 6ce4821f0859eb00e1754917e1471184755b6358 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6ce4821f0859eb00e1754917e1471184755b6358 commit 6ce4821f0859eb00e1754917e1471184755b6358 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 14:59:23 +0000 bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler The function tpm_ppi_mem_handler is vulnerable to buffer over-read and over-write, the MMIO handler serves the heap allocated structure tpm_ppi_qemu. The issue is that the structure size is smaller than 0x1000 and the handler does not validate the offset and size (sizeof is 0x15A while the handler allows up to 0x1000 bytes) Reported by: Synacktiv Reviewed by: corvink Security: FreeBSD-SA-24:10.bhyve Security: CVE-2024-41928 Security: HYP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45980 (cherry picked from commit a06fc21e770a482c8915411ebc98c870e42dd29b) --- usr.sbin/bhyve/tpm_ppi_qemu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/tpm_ppi_qemu.c b/usr.sbin/bhyve/tpm_ppi_qemu.c index da0edf84798f..ddc3fc0045b9 100644 --- a/usr.sbin/bhyve/tpm_ppi_qemu.c +++ b/usr.sbin/bhyve/tpm_ppi_qemu.c @@ -26,7 +26,7 @@ #include "tpm_ppi.h" #define TPM_PPI_ADDRESS 0xFED45000 -#define TPM_PPI_SIZE 0x1000 +#define TPM_PPI_SIZE 0x400 #define TPM_PPI_FWCFG_FILE "etc/tpm/config" @@ -101,7 +101,7 @@ tpm_ppi_init(void **sc) struct tpm_ppi_fwcfg *fwcfg = NULL; int error; - ppi = calloc(1, sizeof(*ppi)); + ppi = calloc(1, TPM_PPI_SIZE); if (ppi == NULL) { warnx("%s: failed to allocate acpi region for ppi", __func__); error = ENOMEM; From nobody Wed Sep 4 15:42:30 2024 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 4WzRZZ662yz5V79v; Wed, 04 Sep 2024 15:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRZZ5bXKz4R4Q; Wed, 4 Sep 2024 15:42:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725464550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QhjcpMkJtMNGBUgHMca6Ri3V0LsihJ+HUJqvouh1ahg=; b=ayB89W+v4qpEMPrgwy+u75KIbBjppXWDPjuKcdA8LT83BwXtcxac79ek2OkglKJvoAXgd6 6QfK0zHJVT5tSE/Ia08Nf+UghIkr96FvS46PVD1pRvJJPANfE8F2L035kS0GaM31K0S8fR +FW1RLVGoIufWp54+mx7gb7cjsKMoR2cDFOLZxr6P5RCU6SplZxDpmFAYCTxQxkdoecC9o heHDLxME/EJYgXp5zEC9ESvtXSe/vDnQo7TUwwE5vPpCDYIGt6xPIRrwPIQkGIDpgcTQ0E AABxL+uzmxBmrArQfcO0vzPaIs1Byl9kpZWAaQvnIhyo9cxuonuRnJ/KIsmbEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725464550; a=rsa-sha256; cv=none; b=AZBt5JeElMlzBw/Sk/LhN7bSjB9O88AL7e0WCIu9paFDZ8+Ok08J+9xTeG/mkXf3bILd+0 KL5o7hHGJ3/Uf2o3b1FRazJpXkgAxRJgJEJggcF3LvTbSEUmAW8n5DccZQ2S52aNU48CX1 uKBoPwLz40yvtbll9aJOdJSJTEP5EQodYXDHpLbEsKYepvMczgYQa9PZRpt+OUD3fUYN78 gjxbtkSBp5nxkB5Z1+VdRYgdSN9Rho1sgftKbUzzlF8Qcxix/faoVTJJ3lyVL18Ma0O7rH i3gdV9P7eQ6QhtQ1YdZKwq0e8XHsS2E+s607QwGJ08kMnQmcId+ywODerdhUXA== 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=1725464550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QhjcpMkJtMNGBUgHMca6Ri3V0LsihJ+HUJqvouh1ahg=; b=wtgvfbi2+1NfYzhPzdp+uYB7cqPsLyfXlhC17+Qw2J30DfNmOpct74sE8DEF9rM51dDHR8 tNu3/Cm+F+ykCUQurH1NIX2xF89ZeKZctDAEgtCiah6JPyZjWav0aiMoCvH2B1iOhY70tH pmveFRZEXveljXs8J0OjqKzRud2wQRaPyB22KmEm9LaV8Vz5BQYNvoGPlt81rGMGlIprxK 4Rqi1AB5f6m3bDHc48Sd7dBKpcuo4OlXFMORTATz/7EhspimJ9btPYdu02S5uT0djpSAGl 8KFkxKje9HbY3iQxny+9buViOPPnT//Fv5D5I46gxpK66UNfR1HTc0thbkytxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRZZ5BqHzWMn; Wed, 4 Sep 2024 15:42:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484FgURV002514; Wed, 4 Sep 2024 15:42:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FgUOO002511; Wed, 4 Sep 2024 15:42:30 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:42:30 GMT Message-Id: <202409041542.484FgUOO002511@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 90af1336ed5e - stable/14 - bhyve: fix off by one error in pci_xhci 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 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: 90af1336ed5e3c8556147325c4841c68639c4b63 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=90af1336ed5e3c8556147325c4841c68639c4b63 commit 90af1336ed5e3c8556147325c4841c68639c4b63 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 14:59:35 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 99c1d20b3378..791c56a45f0b 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -660,7 +660,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1202,7 +1202,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 15:45:38 2024 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 4WzRfB3rKJz5V7KR; Wed, 04 Sep 2024 15:45: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRfB3HVNz4Skq; Wed, 4 Sep 2024 15:45:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725464738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ugbHlU9xFuCTVLuOPK2N/tPsnqta10PKsAq/BlWbzc=; b=q/ZpDF9kBMyTXaEuG/sCoq4DWB+fVYWMf0ZssFj/jztF5GGX5NxMK1Auo2mq/iui2/RW5l WDXSqsy6DPGZa/JHnFgp+li25D2IDtFllm5qHX/yv+zwxPNA4jnd8jHR3VBrOx3AI8UEtt 3x9UTm+7e4kV929XmnDj82GF220wFOaVNPsSPIM42qdAT7HzLTWeCJd/s2N6lSEI34UBBs 7ygCov0E25Umanjcbj4X685dKfXKJ1TYI46M2W+8TRA56zXf4YI6YiQhxCj0LAPN2vonVW 9Gcguxa33CnR+6pV9YM+Is+kVOYBbybKnGJb2TjZ+PSOvRWpdKAzulntEIy6Rw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725464738; a=rsa-sha256; cv=none; b=b1ua4QaaCfDk/bIDlnaspKWOQNa91g9hi37QufOoNmjBCCi1QhPW4icrQueMDKfs4tlMQD xFZUT3JI17KPzu3Vky5RuiXSO6xKhcexjfBnDVlyAhF7lxKjOR8Q9VP6sC1fUf8otw1gTP 9RsA6SNS6IJ1pDbud6FyK0vyb6+xbl+YSvreUpL2qqox1TVTvAYuxaouxz86UpyP8Rqpex rkg2KfmuaYPNE0lvE7K0/4VrfULXu4xFot2JvsP7QqYzyvWlWJM9wWiev03HWL4XyuElbp o1w7FPBoSsTQbrzuqwwj7x/Gmjwql+8Tg0KcdLoiXd07GB7NfjXCOhJm1NwK7w== 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=1725464738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ugbHlU9xFuCTVLuOPK2N/tPsnqta10PKsAq/BlWbzc=; b=H6BzrWzLcEWHEfKnDSX7P0EnRvTwfkKllLBowmTVqe1GomGfuuKm2SPn8Vty6GwYhISp/D H0js3OiuKCprL8pW8viAEr1yVdZbThJzfwy6zv5ckrffdeotVxqIoN+SSnrqWIEXj3iaEM 7gmt+O2Ut3kE/ZZf/NVFU+U4iB7cy41Vv+wVHn3CBPB2ZXk5ifSYBiCwV4e6SnDXjMn5PG 83xdYLtqkwWv+GETsh/+H2RmzG5oXp9gq6gjEZMaofCaY9DVRyfLwNL/aSOt4gqGzc1GGQ kFSFbYQR8zcG8nY2KKOIDUr7cTIuOohpFE5nR/PJRUqdGtGay6iZprtH4c1kZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRfB2n5ZzW92; Wed, 4 Sep 2024 15:45:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484FjcS2003099; Wed, 4 Sep 2024 15:45:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FjcQJ003096; Wed, 4 Sep 2024 15:45:38 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:45:38 GMT Message-Id: <202409041545.484FjcQJ003096@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 5920b7e6eea1 - stable/13 - bhyve: fix off by one error in pci_xhci 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 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/13 X-Git-Reftype: branch X-Git-Commit: 5920b7e6eea1e1c46b78656ef75944fc0709e887 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5920b7e6eea1e1c46b78656ef75944fc0709e887 commit 5920b7e6eea1e1c46b78656ef75944fc0709e887 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:44:59 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) (cherry picked from commit 90af1336ed5e3c8556147325c4841c68639c4b63) --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 58f2d53eb9b5..93161affd732 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -659,7 +659,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1201,7 +1201,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 15:51:07 2024 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 4WzRmX3hhWz5V7cZ; Wed, 04 Sep 2024 15:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRmX00ZKz4TQX; Wed, 4 Sep 2024 15:51:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465068; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CuhWemC+pMPyJFaK21jNGEEBzNov8s36oRM1GCHf7E8=; b=xCat2HeQ0HJ9WqQRaTdjwHjBw80YBc5a6XhCMp1xLDYfPkqvKPmt4OEmVgTGjX2k2ndPtv hn4odyTnp5zXZY4el65lKUkJbJtV9hKz2xYHekzB3I2stBhbG4rqpNRaDXAPvmJXC8mfrO GbzjFI+qE4jp7UHXTijqujVfrLfEzU7aq2CDx4BfYsxOnN15Iu6ncs4Kf/bE1ztmSZ0rki b6jfz3haD8Enp+pC+bBMj8R044+UF+ivVfJeKVfKDmN+VTMqYlYl5lEeRUCOPP2htU2ge7 9rkmKhv4VPgf/+cY1+03+qz4YJOlyEC1C8lAFbxR27lhdwGG6RuogNJswDpx2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465068; a=rsa-sha256; cv=none; b=bSTwyArravFSi8A+TJgNeP4O0fF5f93SyTepu+1S7ORJJYQiCnSY7GPcveG46R5pSDZO9F Npnn3OPrNaIK7dVgGGw0Buf175fM8Vgu/OUhs7rdDhs/kbWuhVtVHPlIz4MbJubEqkpy0q dYTZD9IAmfaOQo7t7q6FPwj6Ss2EwTuoDWHeJgtRNzEazZNUTLq8kttoYM9s19uDf+26nr VK3UbK1XP1RcGtfO0x2/B9uiSBb4WxH7MOyXzsoYlFCYt9XZBwzbz/AIOrqCJabPKgKpLe C2k5lCBesUmhRhWUPG+ovojD9wij7Q8AavO04Gaq/wN6fZg2Jahn6QnN8nDtWw== 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=1725465068; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CuhWemC+pMPyJFaK21jNGEEBzNov8s36oRM1GCHf7E8=; b=aztir3/bhMJoGd3FyCTgX0xqbOOqtYntdt2WVFRQ/63ChI0fvK2q/1p69ttpayRMBCnghW CIwvycuMECWCnJw0O3Nd3FtbI6EhIVCtWz1bFVi6JwJ47B7Fd5d+ZIIN41UmGQrXvAAzpI EfTB482ptjjnXpmNy4Ht686EsYs10SJxsnignah5AgB9RML3ILh68g+w7VyOhmzUC5wsSb YEaxQ2LuM8DzHzxpmf1eTAYTtFduPWIuqG7ur1zaEryHeSdphjhbMgEHy3gKbmQZXNFhuT RSOsmvlOBVQNoSmO0HCGPd5NTzchlSa8pCXH2yrjND4qffNjR8SjlqdCWNtuxQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRmW5bWxzWN4; Wed, 4 Sep 2024 15:51:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Fp7sL015581; Wed, 4 Sep 2024 15:51:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484Fp7gJ015579; Wed, 4 Sep 2024 15:51:07 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:51:07 GMT Message-Id: <202409041551.484Fp7gJ015579@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 803e0c2ab29b - stable/14 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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: 803e0c2ab29bb6b715c38e82da4930d46590e8e0 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=803e0c2ab29bb6b715c38e82da4930d46590e8e0 commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 14:59:53 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index b9013e84ef83..0e0d79d15d8f 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7514,20 +7514,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 15:51:06 2024 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 4WzRmX0ry1z5V7cY; Wed, 04 Sep 2024 15:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRmV5sJkz4TQV; Wed, 4 Sep 2024 15:51:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465066; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xNACK404LNDjcAT9jB3e8UJO+/URFuCaG9vIH11uGLs=; b=gKCtCPxbBVJdVw1eDRxiH11FG0wLl4VwfiyXDY2/+22+SKiqwOcM4cphJouLb2+u1FTr/d kyiQPGUHZLikyS8zzNrORRPCuxf+T/aQ9tghvoGooWY41lEENpkomwfXlc855b2yaxp3pz 611hNRUyHgWa1lFkYD6uHKzWWi+MQfrqHfqBAwi6egbCcvPM2M3IlZ5LtGQtQwq43Rpa2/ 8Uyd3Y3f//EZaIqg31vugdIUuDeBXQW3G+NfHwil2CWWYDJXL4gjYMnkLhrzDV7a9jeEKP URHX+eV70J/rlzlVbbnITIKqmDA01/66+1Pbteg8vQVqlASE+O3xf8yYlC3oSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465066; a=rsa-sha256; cv=none; b=Izxu8pJGz2S4L0hgE0Qeymu/jj/nrB12q+5v8Ukkgy9FaWhCIAMkq8wI9J5P4iWT1Q6dRb 84g0omAzC4To14CyXViQsV1rJjCdreT5xHQvFscgQIrDsozSTAXosebsJYfhQw0VRCAqZv Wc3DYkJRZCpGZuMTzjNyqfF20sUd8yxklPmyogyQH76O6ylH3MkkHWvVulfU6DUzVRABD4 35spDWFumG5uOwtNHzdjUoF+aHCB0W7Hh7OBMhVF+HIILA/pczrUjhGTLNmxC7qlIigsWz uHdSly2bfnXkEqzeYvHiDwcLOS2Es5hdJn3YCEZx3BeiUKzqLF9XlSlgp+yjNQ== 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=1725465066; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xNACK404LNDjcAT9jB3e8UJO+/URFuCaG9vIH11uGLs=; b=go6XuS3gbXv1K6+l76KsBOScxU7+yK0nBEl8I2d0xiiLT5vQWzgL+jdb2jAFKfzqFxnrYZ +ktXeOxsUiYwuO3s59GrpXsX7JUWxsmTF+cx0VqX5YhKXvIO9xUqSaS42ytC7Sj22q4ttW 3o7gLiQut2Dw52NtJ+T93rWbJR5DyJxSzR/wplgArMCFftMfjgAG/traz+sJ1mGCbdaFbN qD2vCE1dSRAf+8CQIdg9rzW42u3jttRBciXFmm2kMHYgVhJ3fI8ji+Xk6fA8ZkI4MQ9jlw s1NyyyWSes6UsA/JCjUWka0FhGEdLhpswgtmrJuDG+3a8Qmf4JkB1If8KswOiw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRmV4dXVzWj4; Wed, 4 Sep 2024 15:51:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Fp6Ii015536; Wed, 4 Sep 2024 15:51:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484Fp6CT015533; Wed, 4 Sep 2024 15:51:06 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:51:06 GMT Message-Id: <202409041551.484Fp6CT015533@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: cdfdb3b00862 - stable/14 - ctl: fix memory disclosure in read/write buffer commands 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 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: cdfdb3b0086268cdc365174ebfb69e66b5dde0b5 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=cdfdb3b0086268cdc365174ebfb69e66b5dde0b5 commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 14:59:52 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index b449e05889ec..b9013e84ef83 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5634,7 +5634,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5675,7 +5675,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 15:51:08 2024 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 4WzRmY6SBJz5V7cl; Wed, 04 Sep 2024 15:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRmY1nRnz4TTD; Wed, 4 Sep 2024 15:51:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vh2KSRgZh+KHEpuCUHyOQEuvLeXWZyuqWb3WhmB98FA=; b=INBpBEo+QcRcWuSxxgNvTQGZJjdQhqNamCPjcy6GnNGWEsEe57yGWkud92tdUdvI3fMmA/ lSzt256rCFtehRfNP+ZWmor1uT9fkcnP7ZGv1Q753aFBmDAE4P5jBJiod8D+LnAxSW1KvR L76oOhMKrX/a2j/KDc/VRA1rqvfnro90ZC50e1zMgbPWRuI2p4flP2137Lbx0yaSof8wM5 yXdi7Y6GNfpQVK9ojopgWHGUVuQoTmRl/VO7IsWqtd6zyZLPvX387rwoejoy5FVGGQUmtw DoL0vKoT+iC/PPdhSlWk9uQ+NDfftU4k+Ns48VricgpgSvcRs1qvknReUIQw/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465069; a=rsa-sha256; cv=none; b=O2eYcjuUJU9PwiMI32UepWnzRsS9NOHqIiZEWsBOgVbkQ8OmUlfZ2NL8Mqoi4CcTKRSR+l p66qZCrJw78DjwHUbboChniy/yfYrVoEFfn+OAd5V4ASeQ3PJOhCwtk3EjGASznfohM32a MW4WYhENakgHwmexpPbW/AoznCwnwV/o0Ao1sgPQH+oaYmZnZSEeMmYqoGTvto+yxPkYAc /LRxf2rlqgMAYY70XLNngmx1rvLK5fEs/Q+PrjAapG++qbhXAsg2tzr+xjwFgWxCaHZbU2 HLX80z/gJT7M1I6dhtEfcfpRYIWc38sTeLYMIomMm6rmJiPhRkcPTDBIojsgcQ== 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=1725465069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vh2KSRgZh+KHEpuCUHyOQEuvLeXWZyuqWb3WhmB98FA=; b=d7KsG9EKq7+LJTIRZy8QXYuE3u88IIumkMFZabXt0ACYrhMhzJWE3iXuHgyHXj4lp+bYD6 qMMCymHIM24TfuoiIR+DWmk1U8c5K/EMappOXpepegQKHpWiF4To+66pVr2VyYJqZgSwgm P8sHH9M01GouHOYn3uhH3C5XAJTzm2FYRepiT/ympJFBxzEJMLjy5439z1EhFB2s8T2ivZ TL6kGzn2XxIixDZ56vgM7H3DJC+A/dR6QkSYyoMOyo0EzZQrrDi6Y6PoWbYGrFseNe4bfS S/UBAfwVFxNCSxDVdQhg3f3/WkgzvW51c94Zr4Q9XoyW2Blw8tk7fUyNr0SGbA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRmX6b5kzX2c; Wed, 4 Sep 2024 15:51:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Fp8qB015634; Wed, 4 Sep 2024 15:51:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484Fp8CN015631; Wed, 4 Sep 2024 15:51:08 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:51:08 GMT Message-Id: <202409041551.484Fp8CN015631@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: e9329a869c81 - stable/14 - ctl: add some ATF tests for READ BUFFER 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 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: e9329a869c8137b955b2b3487ac0dadabf540bda Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e9329a869c8137b955b2b3487ac0dadabf540bda commit e9329a869c8137b955b2b3487ac0dadabf540bda Author: Alan Somers AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:00:20 +0000 ctl: add some ATF tests for READ BUFFER Reviewed by: Pierre Pronchery Reviewed by: jhb MFC after: 2 weeks Sponsored by: Axcient (cherry picked from commit 60d717baf2144cf344ec9b47d715ce837b5d46d4) --- etc/mtree/BSD.tests.dist | 4 + tests/sys/Makefile | 1 + tests/sys/cam/Makefile | 7 ++ tests/sys/cam/ctl/Makefile | 10 ++ tests/sys/cam/ctl/read_buffer.sh | 226 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 248 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index c75e2eabab69..9f0f59eb923d 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -763,6 +763,10 @@ .. compat32 .. + cam + ctl + .. + .. devrandom .. dtrace diff --git a/tests/sys/Makefile b/tests/sys/Makefile index a2a133e19803..8fa5844fc47b 100644 --- a/tests/sys/Makefile +++ b/tests/sys/Makefile @@ -7,6 +7,7 @@ TESTS_SUBDIRS+= acl TESTS_SUBDIRS+= aio TESTS_SUBDIRS+= ${_audit} TESTS_SUBDIRS+= auditpipe +TESTS_SUBDIRS+= cam TESTS_SUBDIRS+= capsicum TESTS_SUBDIRS+= ${_cddl} # XXX: Currently broken in CI diff --git a/tests/sys/cam/Makefile b/tests/sys/cam/Makefile new file mode 100644 index 000000000000..4cc36604280a --- /dev/null +++ b/tests/sys/cam/Makefile @@ -0,0 +1,7 @@ +.include + +TESTSDIR= ${TESTSBASE}/sys/cam + +TESTS_SUBDIRS+= ctl + +.include diff --git a/tests/sys/cam/ctl/Makefile b/tests/sys/cam/ctl/Makefile new file mode 100644 index 000000000000..0e6f39a1a56f --- /dev/null +++ b/tests/sys/cam/ctl/Makefile @@ -0,0 +1,10 @@ +PACKAGE= tests + +TESTSDIR= ${TESTSBASE}/sys/cam/ctl + +ATF_TESTS_SH+= read_buffer + +# Must be exclusive because it disables/enables camsim +TEST_METADATA.read_buffer+= is_exclusive="true" + +.include diff --git a/tests/sys/cam/ctl/read_buffer.sh b/tests/sys/cam/ctl/read_buffer.sh new file mode 100644 index 000000000000..4a84eb6b9725 --- /dev/null +++ b/tests/sys/cam/ctl/read_buffer.sh @@ -0,0 +1,226 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2024 Axcient +# All rights reserved. +# +# 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 DOCUMENTATION IS PROVIDED BY THE AUTHOR ``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 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. + +# Not tested +# * modes other than "Data" and "Desc". We don't support those. +# * Buffer ID other than 0. We don't support those. +# * The Mode Specific field. We don't support it. + +load_modules() { + if ! kldstat -q -m ctl; then + kldload ctl || atf_skip "could not load ctl kernel mod" + fi + if ! ctladm port -o on -p 0; then + atf_skip "could not enable the camsim frontend" + fi +} + +find_da_device() { + SERIAL=$1 + + # Rescan camsim + # XXX camsim doesn't update when creating a new device. Worse, a + # rescan won't look for new devices. So we must disable/re-enable it. + # Worse still, enabling it isn't synchronous, so we need a retry loop + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281000 + retries=5 + ctladm port -o off -p 0 >/dev/null + ctladm port -o on -p 0 >/dev/null + while true; do + + # Find the corresponding da device + da=`geom disk list | awk -v serial=$SERIAL ' /Geom name:/ { devname=$NF } /ident:/ && $NF ~ serial { print devname; exit } '` + if [ -z "$da" ]; then + retries=$(( $retries - 1 )) + if [ $retries -eq 0 ]; then + cat lun-create.txt + geom disk list + atf_fail "Could not find da device" + fi + sleep 0.1 + continue + fi + break + done +} + +# Create a CTL LUN +create_ramdisk() { + atf_check -o save:lun-create.txt ctladm create -b ramdisk -s 1048576 + atf_check egrep -q "LUN created successfully" lun-create.txt + SERIAL=`awk '/Serial Number:/ {print $NF}' lun-create.txt` + if [ -z "$SERIAL" ]; then + atf_fail "Could not find serial number" + fi + find_da_device $SERIAL +} + +cleanup() { + if [ -e "lun-create.txt" ]; then + lun_id=`awk '/LUN ID:/ {print $NF}' lun-create.txt` + ctladm remove -b ramdisk -l $lun_id > /dev/null + fi +} + +atf_test_case basic cleanup +basic_head() +{ + atf_set "descr" "READ BUFFER can retrieve data previously written by WRITE BUFFER" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +basic_body() +{ + create_ramdisk + + # Write to its buffer + cp /etc/passwd input + len=`wc -c input | cut -wf 2` + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l $len --raw /dev/$da + + # And verify + if ! diff -q input output; then + atf_fail "Miscompare!" + fi +} +basic_cleanup() +{ + cleanup +} + +# Read from the Descriptor mode. Along with Data, these are the only two modes +# we support. +atf_test_case desc cleanup +desc_head() +{ + atf_set "descr" "READ BUFFER can retrieve the buffer size via the DESCRIPTOR mode" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer +} +desc_body() +{ + create_ramdisk + + atf_check -o inline:" 00 00 04 00 00\n" sg_read_buffer --hex --mode desc /dev/$da +} +desc_cleanup() +{ + cleanup +} + +atf_test_case length cleanup +length_head() +{ + atf_set "descr" "READ BUFFER can limit its length with the LENGTH field" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +length_body() +{ + create_ramdisk + + # Write to its buffer + atf_check -o ignore -e ignore dd if=/dev/random of=input bs=4096 count=1 + atf_check -o ignore -e ignore dd if=input bs=2048 count=1 of=expected + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l 2048 --raw /dev/$da + + # And verify + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +length_cleanup() +{ + cleanup +} + +atf_test_case offset cleanup +offset_head() +{ + atf_set "descr" "READ BUFFER accepts the BUFFER OFFSET field" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +offset_body() +{ + create_ramdisk + + # Write to its buffer + atf_check -o ignore -e ignore dd if=/dev/random of=input bs=4096 count=1 + atf_check -o ignore -e ignore dd if=input iseek=2 bs=512 count=1 of=expected + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l 512 -o 1024 --raw /dev/$da + + # And verify + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +offset_cleanup() +{ + cleanup +} + +atf_test_case uninitialized cleanup +uninitialized_head() +{ + atf_set "descr" "READ BUFFER buffers are zero-initialized" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer +} +uninitialized_body() +{ + create_ramdisk + + # Read an uninitialized buffer + atf_check -o save:output sg_read_buffer --mode data -l 262144 --raw /dev/$da + + # And verify + atf_check -o ignore -e ignore dd if=/dev/zero bs=262144 count=1 of=expected + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +uninitialized_cleanup() +{ + cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case desc + atf_add_test_case length + atf_add_test_case offset + atf_add_test_case uninitialized +} From nobody Wed Sep 4 15:51:05 2024 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 4WzRmV5q9Sz5V7tD; Wed, 04 Sep 2024 15:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRmT3gWhz4TYT; Wed, 4 Sep 2024 15:51:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5eoMaVS5m0cfr401kU6BYu7Ri5+fgMSz9zENCzsnBho=; b=dsetOy6ElzJoTb6MuRpQ98fMaZvBvNXRDab7cIaXIz8rmeSUZW8H2EVevfRO3odp2iF1lc bV8idhXVvVdvoARSsMqaM0HycffdVEiYniesoqBP7cB5GUkpS243muETc0smPXUyEc21I0 hZxbXEYthCtT4Q9rQcw/oVlVUGBxmLcRX/irT7yDTmw16OBHv54BXXPBbpbL+fsQYDAZqO sRIgCjnrq/eDqghuJ/z03+BZv7rtdc4VJu8PytiR2gO9CP1pD6sgb/IOUHJMi2ls/bCsTI C1H/qJYnQoQJNZ5aeTyJkkOmgg5vzpn+txsbI/CL4aO3YfS6mQvUZFidp2DpDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465065; a=rsa-sha256; cv=none; b=gbNWWz+OrxtR5f2UylUKwS4eMTdb6psq8+xDkc5zP0f3+L1Oo0BNpwn0cvj4TYPOBF2EL8 aEtPaT/1uQSDEGNV9Tsqym7C8Gq7AgjG/qmoHm7f1XYbppcQj9zo4NW7/KQD57HJFM+umq eB87g50aPy2KwmWil49/ly78y4hfsmfgpBTVjKibVYyArh11GtEWK5cqPiqZVafBiJlrms gRIhThCdjjBCMSfx+eBmFj/HIbgDyCxjNr4MI+ukSYeeDAMFhmv753zPIGIzEptVflfG7k iGU+NLNwIgxZqA0eGp+xq5HsZQj9y//hZ2eck5qVqwaX4vsZs8ziOTuaoE91XA== 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=1725465065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5eoMaVS5m0cfr401kU6BYu7Ri5+fgMSz9zENCzsnBho=; b=tWIF77V1uc2iKmigKyJqxbnn7ymNtHdpZVshP2sfP/3iRRMKDpV10bQ4goQlkZKq0/INNl 7BIPaEynmgsurJqqnxD3BbZgRHD7S6i5XnvXtNzORfKTi8QzGKbtrQ+O6470qoUBo0h6Ex 6ycccv4BIOIRtJXabS7jGWOpGsN/5E2tq8z4Gw6n1i2T9xc0zNCb7CuYGW+42qrVPWxZ6c sBxT4WVZkNobSrdSsxv7zSJvRg/JuO/70eLfTbQJTNUTA8uzf86j3LBTTzDLKRaVtbSG9N aDLtIpRY/KTm/3JsKrTAhUxp9c9jmIKFoCH4HIz9FYTL6JFyJgrIGprNBVOvww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRmT3HqTzX2Z; Wed, 4 Sep 2024 15:51:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Fp5sw015481; Wed, 4 Sep 2024 15:51:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484Fp5A1015478; Wed, 4 Sep 2024 15:51:05 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:51:05 GMT Message-Id: <202409041551.484Fp5A1015478@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 29937d7a1a0a - stable/14 - ctl: fix Use-After-Free in ctl_write_buffer 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 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: 29937d7a1a0a3061c6ae12b5b35cc32b03829501 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=29937d7a1a0a3061c6ae12b5b35cc32b03829501 commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501 Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 14:59:52 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 1d5e13ad4671..b449e05889ec 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5673,21 +5673,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 04846f80e913..db8e748ec014 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -411,6 +411,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 15:53:51 2024 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 4WzRqg2YLHz5V8Qm; Wed, 04 Sep 2024 15:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRqg232jz4VNb; Wed, 4 Sep 2024 15:53:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465231; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=higPZzbVejQtBdOSr3YdKVShRxVkHCTNZ0xe/Iqaa2U=; b=jTH380ZTyGWE5lJ2ihGl/tkGZ44oWX0fLt1GDr6jlYcIEM2KlTajlUZwC+b0p80Wj1v9ut ZehsvHcIGCjyBeQGNzhptxndamxyvHth92bkkPwryHw4TsoyKwVdteSG/WVSsgpyHDmf5+ fw6v1MK/ZHSS31Gpt+8lNqSwo46dyaxRWhSR/xLOxb6NU5kNVQU7eh8OefUAZAp1s8h12B Qhf4hqqQjzwEt8r1juHptyoo98SsCe9PyD+QqG3EkLT03WflIdzrRiTxP31smbVAVD6VUq kOBhpU6zkRhrV+W1bvpMNvunT756bxC/3DULOnxeNEUZ/pZeAQw2yj+LfNSpxg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465231; a=rsa-sha256; cv=none; b=Q6wdT0mcgUtO6F7L3EMBtofqzM4ZZnD2zddYNroXiF0HRR1sSkM25NaByC3AhXpeh7mC39 GKs8GHcZxfyTKFBQBP50d4110xFlqmyDI4p0HnrMr6z9aidHnJxzSQNe5u8a8M2cX+LmJn 3B8LpXxzNYhNSgihTWCxNuNR5PLhZmz+r5FZxLbzc34CKa6cBkv+XVfStgxY1Z0xoZO5qQ VY4Y0ot+AvibYlQu+E/AnVxx0WV3hEfxTMCJsnPlruCXkZrrk6jOym/89W2MYYs6l3zfLW 1QiObXk6iKm4iHX3HMrKLtTw3eUWNj88/rXDP+y14lbYc1gcMdhG19HxlgXaIQ== 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=1725465231; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=higPZzbVejQtBdOSr3YdKVShRxVkHCTNZ0xe/Iqaa2U=; b=tHwRsm8Ffzcr60onOc9nIgmyy7NlgdvJsfd85F6muaxYKXRgqKTwcVzIDtwFMihW36PjDy 8gisa43hYvNmyyWrbPfd+EtNnvYorSg9P2TyDu/bBwzyR1DRY+TTO0f8c2m1DFC2Ezcxys 8kcKzZAyPgNCyTajU7uSKE6MIuQN4Z4YxXeZPiZ2vmreuFGogSDYdjy6t8gF+ZMxkzYgNp p+SLu9Mk6drY1yBcFFVi2j+XMTBMESZHs5EMR9CWD5HAEkpvaP5yYCCCz66wlmsmZ25r5r 41WoD5tCkkZWX5CM5IBV2CPtq/yb/FCWDcGxEyBENlTlT2jB/rxbIZky9NMFVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRqg1fcBzWlG; Wed, 4 Sep 2024 15:53:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484FrphC019751; Wed, 4 Sep 2024 15:53:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FrpwC019748; Wed, 4 Sep 2024 15:53:51 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:53:51 GMT Message-Id: <202409041553.484FrpwC019748@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 2553c91f731b - stable/13 - ctl: fix Use-After-Free in ctl_write_buffer 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 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/13 X-Git-Reftype: branch X-Git-Commit: 2553c91f731b12558046454cf30eb83f56fb204b Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2553c91f731b12558046454cf30eb83f56fb204b commit 2553c91f731b12558046454cf30eb83f56fb204b Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:52:06 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) (cherry picked from commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501) --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 7a04a668e823..5635246845b9 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5672,21 +5672,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 9a87345015fa..85f4f6137810 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -410,6 +410,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 15:53:52 2024 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 4WzRqh5rV6z5V83Z; Wed, 04 Sep 2024 15:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRqh35Txz4Vnq; Wed, 4 Sep 2024 15:53:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TRRGkfpeGdjhwjHPXD1z209J9bWCOMESmr4TZOTdhyI=; b=radhar+eIwpJbuB6Eg7ac1lpqDJo92iHBbNkz5ILynQxTiMrH8VSWzl6FeOM3HAJ0rNpC0 TTyE/L73vehBFDuRue5jZ7PbC/nFa9yAfH5U1zzWpdMjX8Ofvr3x+hZ1eNlizq1BUfpHcK BZNTvh3q1IU2tXEpnMx6gXq6sD6j3qdXciHOk4l5AzPctbyPMp4h3FC8rU9rntT2X5FPl4 s9i9BO/YYMZu0eEP/0J85Hv4l81pFmMI3T0PPAtpeKzWDLAxpzJU4ufKmdpJP7JxneoaLV 8efoWDlGAWVJIhDv23IUEQhT0dheR9oRENuJz8M314xRdiSGepOf4c5pkF+Gvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465232; a=rsa-sha256; cv=none; b=sMh3/VjqifsACgt+GMQdbB0qRg31A6pCbd4BQM6wv399i8OSCJTUTrycjcV1bOxYuxgTiT 7V/y3zqnz6dDDmuL6cgKGW4UqhHFEesWniuDWwvmujl4/TPjoIAf3ZOY2MGb3C+uFI2J2e 8cUUU2GOpKrs0rk+MiQZ6AdH4/gbk9TWZqJ1JxH/Yu/tAWiyGTmw92ukIvyRiJapa39tnp waeZFcaVh3fL2rss/a2JQGNxjlBTzROihVeDZZkjAK5A/5WpPRgCWc9zqptK8hlrGYvg0G kWJLMDhvbTDqBK7brrzeEV5ngCyh2Ssd6LvbJANOKpJJ6VuFrb0zm/z2p7vDIA== 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=1725465232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TRRGkfpeGdjhwjHPXD1z209J9bWCOMESmr4TZOTdhyI=; b=ajovilMO7T7Dn3MY2RyeXJ8QV5tSQvxNLvCqDTs4JLufde+HJMEQ1uSA2aSNfxTGnAjre3 bmBC51mpPZwmRHfNJz/D/MNSoPNKIEaF+WG/U9x9fg+6a9kq2wTccl204ZM5823Cbn8SmA /T693fAi5TS9GsiRFPswK8WZt/6v4jNIAZjwRdjlFmAeNvlNTuw/k6G4QeCPW9QWfEjAi0 b+A5FozYMOHoiU3r3fT5HVePwjFdcVvJPt3ywIq5ifp0VpD2syAEJnY8JnVtJ4q9qoM/nN 5yTHqf9J5cFXy/ovLgqjRmgerUdipamJS3QFAmGASaviaxT4Hcrl6LmS8SnOWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRqh2hfGzX36; Wed, 4 Sep 2024 15:53:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Frqm3019809; Wed, 4 Sep 2024 15:53:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FrqCQ019806; Wed, 4 Sep 2024 15:53:52 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:53:52 GMT Message-Id: <202409041553.484FrqCQ019806@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b13631a59f2a - stable/13 - ctl: fix memory disclosure in read/write buffer commands 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 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/13 X-Git-Reftype: branch X-Git-Commit: b13631a59f2a303418c0f3f298b33f2a51fa59a7 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b13631a59f2a303418c0f3f298b33f2a51fa59a7 commit b13631a59f2a303418c0f3f298b33f2a51fa59a7 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:52:06 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) (cherry picked from commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5) --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 5635246845b9..f9fec62249cb 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5633,7 +5633,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5674,7 +5674,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 15:53:53 2024 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 4WzRqj4s0Tz5V8F6; Wed, 04 Sep 2024 15:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRqj3r7yz4Vd6; Wed, 4 Sep 2024 15:53:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=or+Xuuh9j2pqTwqxa8TEadc1+RPhiwUY0oOiDebqHBY=; b=ZNT4QIfigkkAZetx5R7snRewB9gjIisLrRUdX89+FoOD++jk5WILjMRGJK/NtTlD89mI7D hNr949o3NwBwYBmQf7xgy8ckjPE6lD4Mlupf96royN4Mqn/CDPJBeLrQa5/OmU5PRTbTP/ yUy4ARo1SA/V3V54pweaoLNdUT4JE6ODRNi7cnzscfpu65ketMBU9ZFVZMpytWckR0axU/ DQ63YyuMr8sxZSgAdVT68bUe3dm4XmiZvs5WhRhxgCJNmwnAZdkdwHnpwjJxh8SCjyUj6A MF1HIouGOoHNafJo55KzbOiPMbOzwydFe/FQwA24qQ5NBkQWwcdyqyN+HM003g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465233; a=rsa-sha256; cv=none; b=GzHRB/vMjBgp2pfB0ZVdrxPmip3tUqokRZx4gNA+RiaZHXv4El8WCrrEUy/OPQ6iDFvEnp 6LP/VHFyQzEB2F58Rjr2ChNKs+3HIjgTNFGhw53LNah8ZObnWP2pCc6dwtZGSLRZ/hfjKA uIT9idQ4EHcov26Sva9eno7IUQNCKiEmDzrtkloyiVoWI4aalbTCHDMCXCCOGc68+mdxlG xCQJALXb5PpoY1s6yt5R/bktpqkFgs+lvte31r2hRN9Ue600x3wwgxJoMXi0OB1HoYZjaD iX2UHMNwnTvdXkqjj2BXfCwXrRLedgezvxUDGVi1PShW9TH0F1KmQmbymIUxHQ== 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=1725465233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=or+Xuuh9j2pqTwqxa8TEadc1+RPhiwUY0oOiDebqHBY=; b=ttkX3kP20gmu8MZWYjIg7EPb1Xb+xwN5gEA/gXVVR0GYHmTU2tSJ8ZbZ/9u0uRQgmtS+Ox icpeR49idLZqXoBY15DjJ+tZJRaNY6KT2ubje9tTTqIjNb2La4+shzcSVKIkM0mDh1/4S8 wk1b3QWCKWlbZywAmCvFKLYB14HMy/3/gMdrL8OWYnQDu+0k5tAZksAWtSzU6h52/Sjhzt Xra8IttOofZcJ7d13c2PRB8Y9FJa3hble6RDw12klXFhE2psHnt+eUKHcevHmWw72MsZN1 PDKMREImpeLtruCgN3xpc7RksFh2OXbH/penNK/C+SCQkEjVdsLsbo3qOZBS5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRqj3RmnzWjK; Wed, 4 Sep 2024 15:53:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484FrrST019855; Wed, 4 Sep 2024 15:53:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484Frrg4019852; Wed, 4 Sep 2024 15:53:53 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:53:53 GMT Message-Id: <202409041553.484Frrg4019852@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c8afc072690f - stable/13 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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/13 X-Git-Reftype: branch X-Git-Commit: c8afc072690fd7541159cfe76c544797a5b37bce Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c8afc072690fd7541159cfe76c544797a5b37bce commit c8afc072690fd7541159cfe76c544797a5b37bce Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:52:33 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) (cherry picked from commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0) --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index f9fec62249cb..b0f34cafac80 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7513,20 +7513,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 15:53:54 2024 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 4WzRql099rz5V83b; Wed, 04 Sep 2024 15:53: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRqk53T3z4W0C; Wed, 4 Sep 2024 15:53:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465234; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l1Gix6pYLSkaIibAf9OVYBzFvXJtP/PcRkZRRHXJ8us=; b=p1X+iUL0Zzctt2hFMgHUlvwJ0r6CG7E6F3/dUixV/yRX5IZ0alzHEcLSLc2UUBFmLnSLY/ Q8pbkPnqzEUCZ6rPc3mpQT74qaX4M5Ih+oFWfljCqxGgMQHHOvP5nLDAmqVqNuQHZQn9Uk Th+hdWrN659Dzf4I3MnlR7btDSYhZ4BvC1jrMiOpeZDMjLhhX75gPpN0Y/U55qTN142AiK FcuR9s+G0GTnkELZsZO/4wk2nGvE+CkCWvhpKZouV+v/to3JEaSUlH9rJtI+Z1jQFIqu4O w6diFc5he2dSGdwCaF/O+TRCd0b09FU/GyKQMKHWDqcyduPxOgFv5xHVd4SytA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465234; a=rsa-sha256; cv=none; b=glShQJ8HFPYBm5VDH98vf9QMh0bHNu35EpVs+EoWqdAFrt0sSdk0dC4xQC56qE+cxsph+z zbKbHqCQtJZ1PIlbWq2BbF0hJtJT6YTCj69EL9Xaed1xXax30VhCuNdSyV695A0xF+b+on ICeeg3MbgBa/vz6PRvWoippRvyv7Z7E6WmXYrjANP7SJ5q0co4mHHIXGr+J68G/ow1vqSm KDnZEgDXfYPgKstHeK4I3fv75rIfzKlrSddDo9fVJvVWiUuAmnZJMkZwgwEGfy959DMl/d vL2zNXPFtIJs4XI+2RO9yunei8R3an9dtL2TxnDz3Q138F2zh+uXSpZTJbmQAg== 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=1725465234; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l1Gix6pYLSkaIibAf9OVYBzFvXJtP/PcRkZRRHXJ8us=; b=umGdhmsq33UkK9uUwDJ8DVSytdnnHa/z8BSPnVpxpyoGcj5oUtbIxdhqipIyoGM9tmG5Fc WHx3WXcLxv18H5X2KTeV+Bbs6F+ZI9FGe1kCUB1DF7nVxCdSZ7Rin19DyR2uMj1bkSsG7o 0ba9mlQ6Qcz+JQ4b/154gryUE45FYdHsG7ERIDPIoVpupnCv44ZhyZ4lKlBgRBW78DZk5M 799pkfx551HJihKwkypTOyag6Htbd3vzP0BV7rgRRARTnPna0L4L9gjLfgpT5mnOPErqc4 kROBiBwazwski3ZMoC8PTPAyY/1ZYiyS1Mnakmv+3E44V+EzNmq5EDvzqQgFdw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRqk4Sr0zX18; Wed, 4 Sep 2024 15:53:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484Frsen019906; Wed, 4 Sep 2024 15:53:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484FrsbQ019903; Wed, 4 Sep 2024 15:53:54 GMT (envelope-from git) Date: Wed, 4 Sep 2024 15:53:54 GMT Message-Id: <202409041553.484FrsbQ019903@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 62935fd269f3 - stable/13 - ctl: add some ATF tests for READ BUFFER 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 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/13 X-Git-Reftype: branch X-Git-Commit: 62935fd269f343b85100cc25b0695c0dd548b9c3 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=62935fd269f343b85100cc25b0695c0dd548b9c3 commit 62935fd269f343b85100cc25b0695c0dd548b9c3 Author: Alan Somers AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:52:50 +0000 ctl: add some ATF tests for READ BUFFER Reviewed by: Pierre Pronchery Reviewed by: jhb MFC after: 2 weeks Sponsored by: Axcient (cherry picked from commit 60d717baf2144cf344ec9b47d715ce837b5d46d4) (cherry picked from commit e9329a869c8137b955b2b3487ac0dadabf540bda) --- etc/mtree/BSD.tests.dist | 4 + tests/sys/Makefile | 1 + tests/sys/cam/Makefile | 7 ++ tests/sys/cam/ctl/Makefile | 10 ++ tests/sys/cam/ctl/read_buffer.sh | 226 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 248 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 91e02c4ae7e5..f4b70e543d7b 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -749,6 +749,10 @@ .. .. .. + cam + ctl + .. + .. devrandom .. dtrace diff --git a/tests/sys/Makefile b/tests/sys/Makefile index 3a4cbc13e5b9..802119d35411 100644 --- a/tests/sys/Makefile +++ b/tests/sys/Makefile @@ -7,6 +7,7 @@ TESTS_SUBDIRS+= acl TESTS_SUBDIRS+= aio TESTS_SUBDIRS+= ${_audit} TESTS_SUBDIRS+= auditpipe +TESTS_SUBDIRS+= cam TESTS_SUBDIRS+= capsicum TESTS_SUBDIRS+= ${_cddl} TESTS_SUBDIRS+= devrandom diff --git a/tests/sys/cam/Makefile b/tests/sys/cam/Makefile new file mode 100644 index 000000000000..4cc36604280a --- /dev/null +++ b/tests/sys/cam/Makefile @@ -0,0 +1,7 @@ +.include + +TESTSDIR= ${TESTSBASE}/sys/cam + +TESTS_SUBDIRS+= ctl + +.include diff --git a/tests/sys/cam/ctl/Makefile b/tests/sys/cam/ctl/Makefile new file mode 100644 index 000000000000..0e6f39a1a56f --- /dev/null +++ b/tests/sys/cam/ctl/Makefile @@ -0,0 +1,10 @@ +PACKAGE= tests + +TESTSDIR= ${TESTSBASE}/sys/cam/ctl + +ATF_TESTS_SH+= read_buffer + +# Must be exclusive because it disables/enables camsim +TEST_METADATA.read_buffer+= is_exclusive="true" + +.include diff --git a/tests/sys/cam/ctl/read_buffer.sh b/tests/sys/cam/ctl/read_buffer.sh new file mode 100644 index 000000000000..4a84eb6b9725 --- /dev/null +++ b/tests/sys/cam/ctl/read_buffer.sh @@ -0,0 +1,226 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2024 Axcient +# All rights reserved. +# +# 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 DOCUMENTATION IS PROVIDED BY THE AUTHOR ``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 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. + +# Not tested +# * modes other than "Data" and "Desc". We don't support those. +# * Buffer ID other than 0. We don't support those. +# * The Mode Specific field. We don't support it. + +load_modules() { + if ! kldstat -q -m ctl; then + kldload ctl || atf_skip "could not load ctl kernel mod" + fi + if ! ctladm port -o on -p 0; then + atf_skip "could not enable the camsim frontend" + fi +} + +find_da_device() { + SERIAL=$1 + + # Rescan camsim + # XXX camsim doesn't update when creating a new device. Worse, a + # rescan won't look for new devices. So we must disable/re-enable it. + # Worse still, enabling it isn't synchronous, so we need a retry loop + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281000 + retries=5 + ctladm port -o off -p 0 >/dev/null + ctladm port -o on -p 0 >/dev/null + while true; do + + # Find the corresponding da device + da=`geom disk list | awk -v serial=$SERIAL ' /Geom name:/ { devname=$NF } /ident:/ && $NF ~ serial { print devname; exit } '` + if [ -z "$da" ]; then + retries=$(( $retries - 1 )) + if [ $retries -eq 0 ]; then + cat lun-create.txt + geom disk list + atf_fail "Could not find da device" + fi + sleep 0.1 + continue + fi + break + done +} + +# Create a CTL LUN +create_ramdisk() { + atf_check -o save:lun-create.txt ctladm create -b ramdisk -s 1048576 + atf_check egrep -q "LUN created successfully" lun-create.txt + SERIAL=`awk '/Serial Number:/ {print $NF}' lun-create.txt` + if [ -z "$SERIAL" ]; then + atf_fail "Could not find serial number" + fi + find_da_device $SERIAL +} + +cleanup() { + if [ -e "lun-create.txt" ]; then + lun_id=`awk '/LUN ID:/ {print $NF}' lun-create.txt` + ctladm remove -b ramdisk -l $lun_id > /dev/null + fi +} + +atf_test_case basic cleanup +basic_head() +{ + atf_set "descr" "READ BUFFER can retrieve data previously written by WRITE BUFFER" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +basic_body() +{ + create_ramdisk + + # Write to its buffer + cp /etc/passwd input + len=`wc -c input | cut -wf 2` + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l $len --raw /dev/$da + + # And verify + if ! diff -q input output; then + atf_fail "Miscompare!" + fi +} +basic_cleanup() +{ + cleanup +} + +# Read from the Descriptor mode. Along with Data, these are the only two modes +# we support. +atf_test_case desc cleanup +desc_head() +{ + atf_set "descr" "READ BUFFER can retrieve the buffer size via the DESCRIPTOR mode" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer +} +desc_body() +{ + create_ramdisk + + atf_check -o inline:" 00 00 04 00 00\n" sg_read_buffer --hex --mode desc /dev/$da +} +desc_cleanup() +{ + cleanup +} + +atf_test_case length cleanup +length_head() +{ + atf_set "descr" "READ BUFFER can limit its length with the LENGTH field" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +length_body() +{ + create_ramdisk + + # Write to its buffer + atf_check -o ignore -e ignore dd if=/dev/random of=input bs=4096 count=1 + atf_check -o ignore -e ignore dd if=input bs=2048 count=1 of=expected + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l 2048 --raw /dev/$da + + # And verify + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +length_cleanup() +{ + cleanup +} + +atf_test_case offset cleanup +offset_head() +{ + atf_set "descr" "READ BUFFER accepts the BUFFER OFFSET field" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer sg_write_buffer +} +offset_body() +{ + create_ramdisk + + # Write to its buffer + atf_check -o ignore -e ignore dd if=/dev/random of=input bs=4096 count=1 + atf_check -o ignore -e ignore dd if=input iseek=2 bs=512 count=1 of=expected + atf_check -o ignore sg_write_buffer --mode data --in=input /dev/$da + + # Read it back + atf_check -o save:output sg_read_buffer --mode data -l 512 -o 1024 --raw /dev/$da + + # And verify + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +offset_cleanup() +{ + cleanup +} + +atf_test_case uninitialized cleanup +uninitialized_head() +{ + atf_set "descr" "READ BUFFER buffers are zero-initialized" + atf_set "require.user" "root" + atf_set "require.progs" sg_read_buffer +} +uninitialized_body() +{ + create_ramdisk + + # Read an uninitialized buffer + atf_check -o save:output sg_read_buffer --mode data -l 262144 --raw /dev/$da + + # And verify + atf_check -o ignore -e ignore dd if=/dev/zero bs=262144 count=1 of=expected + if ! diff -q expected output; then + atf_fail "Miscompare!" + fi +} +uninitialized_cleanup() +{ + cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case desc + atf_add_test_case length + atf_add_test_case offset + atf_add_test_case uninitialized +} From nobody Wed Sep 4 16:00:55 2024 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 4WzRzq6LNXz5V8T0; Wed, 04 Sep 2024 16:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRzq5D3Yz4Xy6; Wed, 4 Sep 2024 16:00:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DFd+l51sUtpcBxafgKxjRd7ggo2B1i8lqOZ2+d5fJr4=; b=lSURc4O/AF6GZenLh9FABxeYjnGP5MU+3an3Wx1mINxSjlOo8CtXOnySgN/9rr/dlcYhAh j+tIYCS3K0mX5lQuhU/4GjqgFxHg99hV099L7mX5CMi7VdISByy7VpvKV7CMi2RdAkFCui CJAsGlzuvZ9fOO6qIOqlKRLxo/9OlhdEwJo3+6TkbzlEk81nL58vBzKsFYIckTyx+DsR9w 2jh4Wd2U9hoi3FP11zl8RA2yA26r4LPpptW7MHL/p15Nt6ODvTL4G0A8aALGkh3x3JASMT EiQhaQcZT1e/xVGr+HDbgzoHgC4MMARaVct5TpZBk0CD3FFlvU/YCjA0vPSrbA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465655; a=rsa-sha256; cv=none; b=l1d6sdYGHbbWvitePuTeGWfm2lxtT0t6qLRx0FRSDNE5bzWC4gU8sjkCukgqPh3d9KCsdu EENxXzwmwKdlaZodOPNz0+tJ90k79fbso2F0n/MKVPLjOD5h1sR6wfan5qPrOF24afol6U 4xPVEX3t1HrtKFk5S2WM4xoFjEOY1JTaRhR4Nn7/6AfLb3RS1nUEdzeY12OKjdwUfR2JcR j1GIM70JTZ5YF+oZEQgCp8o7vfDAc6oDPVALhInGdcUGJ+LdFenvf06KN584hJj63I1/0J T6slJe/bGLKHbV8m4+U2CJ0Bsyp0k0SQqLi+qIYfDHxurEDPMIFmV/pgx9PdJQ== 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=1725465655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DFd+l51sUtpcBxafgKxjRd7ggo2B1i8lqOZ2+d5fJr4=; b=FH44qjHc/SCozRmUjTv0+wurulgorWLQ8T0wjiFPnC+jIkzTNiKwkSjB+gWsNWYQjIVcy+ zL0Y8BYCgTR8Oy3g7hxG5OoFK3QgJCOcPyMRa0Ef9lb8uAEafwlT6vzbAF4Gy5jurOXyHU +Hq+OGrbBoWlTuqP9ftOKvEWIdgwjKg2c+kQt2Ff8QcxB2CXzP84V5PwFnt2QICwWc34fg QVesjNeZVmM0q/VZbb5cOXKrBH35xyY5WGSldMlJv+q8Op0NkbnSWxZTcXtO597NhDso2c VQwT88ffS+kqjc9bjI7CpkVVPHLn5gFAiQZw8qEfIXGwMAnaaA+R7dgbaHI2PA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRzq4khqzXH9; Wed, 4 Sep 2024 16:00:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G0tVG031765; Wed, 4 Sep 2024 16:00:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G0tfm031762; Wed, 4 Sep 2024 16:00:55 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:00:55 GMT Message-Id: <202409041600.484G0tfm031762@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 2d4511bb81ed - stable/14 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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: 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2d4511bb81ed70d84ba6ed2ffb54e6a138653a63 commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:00:46 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 092fcade9d19..cecb4a021cfb 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4292,8 +4292,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4353,7 +4352,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4393,14 +4392,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4493,7 +4489,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 16:00:56 2024 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 4WzRzs186Tz5V8T1; Wed, 04 Sep 2024 16:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRzr6SHKz4Y1p; Wed, 4 Sep 2024 16:00:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465656; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cucw7B6WaTkmXw9UvdKELfcgNDYWvAF+f8MMoqbprGY=; b=quUwN64L16trLEEqPGkm6EbT2yuxE8SLqo7HWApoB0Uboo6q15xmMp+QrqETvXBBaM2ayF ZWNjKGsuboqYchxde64fdIbgOspThqIG+AktK1yICg1vM5yRMpzPHd32w7Go6+qbW7PbFJ nG0N8GpyR1Vp49+vBXtR6wwuXeHj6/cZaAdDQXJVgQviT7a2yjD2l7xmC3ehPnSYNzcagT 7l3U+WiJihJr2xOfDNyKTnrbNjyQHUyuAU31cdTqlpNcb0KJBe1Yq7JcWFjCH9Y8XJwEsx sVJj/AaSFALLqcfTH0p+SaScoZq605oPTLPMTH+0RFf6+SIe5iExBJrBHyQ3lg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465656; a=rsa-sha256; cv=none; b=yEdjgQ2niAKuqetGDtUAXkKfrdf3qBcOHfzNzxSSOBEwALQARarYKqmjCBtzWqx140I0cb NycHmUZEOdTw096h40y8EGS/P0OIepOV9MG/603DMdiCWze+R6utKc+fNxhBMPze5hYEoL jIjtxy7avSOZcbyeflQMQkDFGlHw5U9OLtV5GEkH1t3/nvAUZwJCJ7t5sEghdF3gGYOAT/ CQ+W3lvXsxmI6qp34PuV3V+l1hzIAhC8tKCr+e0sF/iU3L9ynebVwqfrAGYG6zyN5EOW+q MAGAyy2eDdBPaN7Md8nzmnXJCHODd+kAcDcXIZlEKVgoL+mmNJNfJ0ZQK6IjdQ== 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=1725465656; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cucw7B6WaTkmXw9UvdKELfcgNDYWvAF+f8MMoqbprGY=; b=iFMn1MOovjWDn2jecmd7pYTEdqDw8TUUoFyJ9lKZ3zEv1ajyK8+LCNcw4ZD+Xsm+bJBvjE qL4tySslQYFIAx9i5rpDcrvhi/p0eRZIULVLnlOxIJkt/fjz+aKqKwiz6B1tv0CKbba6T7 YzzQCwJgIdxxrj56tFYlsgrr0j6vUqOhbljbo9/xuHN05da0/IA0vfmwGR+n8JNrqbAJ7D zYcsjLOh1eZEHND5039y19T/Yr5zKOoz4xt0RXW/wmts8FyCoLVQuHPb0+0N0YUPxVzHBy OIUss/UQujafbqyGEasyfxIW4xbS8+R5ZKzecC04xs2fJIExlIxvwfcnVfW9Ng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRzr5ns6zXHC; Wed, 4 Sep 2024 16:00:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G0u9s031829; Wed, 4 Sep 2024 16:00:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G0u8M031825; Wed, 4 Sep 2024 16:00:56 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:00:56 GMT Message-Id: <202409041600.484G0u8M031825@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: be7dc4613909 - stable/14 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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: be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:00:46 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index cecb4a021cfb..35fc87994c80 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4383,39 +4383,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4468,7 +4478,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4485,11 +4494,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 16:00:57 2024 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 4WzRzt1V5fz5V8Mj; Wed, 04 Sep 2024 16:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRzt03mQz4Y1v; Wed, 4 Sep 2024 16:00:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MqnLlBG48uhohiQjAIB/OgcL6h+8SgHe++4RAk+UoQo=; b=d8M9SR8m6AX0QKsEQ2XF6sW2w66T4P3YXUnFT/Xbbp6N5ReyZoyC6f86Ow3WGDW8jdxlGF InEZkO9OHas4BNHrhNSMOIkb4GM04HZohjFAPCxloOcxBhxswZX50snmDveuW9k1zLfu6z qEEr7rTCu6lDiKOG8ka1vVnXOnfxZ4L3GpDVsAzi0ScfcTSqDiZ/Sb9gm7unuPmEus7YLa Pm6cX6ccJoGjdDhg5mFYfnFUox7z6fWtyn5DLH2KgfRJ58PhjBZQgJW/ndjpuZUsz8So2I 2QWrPbkBTaVfR2iJ+ILIIieEyBEjjuSE2FiYNfesHUJZT9sn1ezpUphtKWDc/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465658; a=rsa-sha256; cv=none; b=rP3jNSX4OSGq2KfMXb/QzdxIbuZCbfm9tX2wNijmzcwsaunr1FBsbnIvzL6vG+fGm2UqUC KMel4Y3zK2lyKcJwvWA3x55jHBZKH1LcNPO7FGiyDsWaWp8Mpc4eAmwqh2DTezpBz2DVeL 4ClY3PTfD4XQdm+VQMLDv5Rp9NoeZIkWcr/ZsfPXOpb+bpE+pSk1pWWi/zxVhkkZYx3pcy uFkJeNQGxQw5KnHVgIsY1MvBI3Ua/KSzsqvtikarRTqTfhdFjeNdEUhWMClexmZOMy7tl/ VeXRxmBCPesP5nns/Ea5ZER0ZYyuKD/5P8NRy1UffSupfULk+66R74kbQ0zGAw== 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=1725465658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MqnLlBG48uhohiQjAIB/OgcL6h+8SgHe++4RAk+UoQo=; b=ZforOvYJ4RaRtHgkYgYB2ic2Q8k74gKnKj7TP0N5noe1kpoYB9qEXzXWCF+/bOMU6yzOaS 7zJPZvFtuEgLz/2ex5qaQKgZkheewVQRCGpyXEalN/m5YEM4odGGsjhFJ+lnLUV1kHi+eG P8p+htz3hIABIgo96JI3bLs6YEnqcsWaWUEiGHYTQf6JCflMY7FvkPcy1g87hLIoRhrLPJ DxCN9ouh9HHSvWGT81i6ZR/87sp7YXic2nIyyi4QY7kjLONRW5O5VUt9fp49fzjwCbgHqZ KPIsqRj9lrl3xYNF4onUxnNnf0IXTbyxEp9FTEJo2r5PKlZKzGbYsCe8NcTDJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRzs6nxCzWlh; Wed, 4 Sep 2024 16:00:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G0vsn031882; Wed, 4 Sep 2024 16:00:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G0vsp031879; Wed, 4 Sep 2024 16:00:57 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:00:57 GMT Message-Id: <202409041600.484G0vsp031879@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b20ae1608720 - stable/14 - umtx: shm: Prevent reference counting 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 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: b20ae160872071fc20e5dde27051792177057fa5 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b20ae160872071fc20e5dde27051792177057fa5 commit b20ae160872071fc20e5dde27051792177057fa5 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:00:56 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 35fc87994c80..9a6df7ae20ff 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4333,8 +4333,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4354,22 +4363,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4469,11 +4490,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4487,12 +4515,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4563,13 +4599,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 16:00:58 2024 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 4WzRzv35ntz5V8Mp; Wed, 04 Sep 2024 16:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzRzv1Crvz4YBx; Wed, 4 Sep 2024 16:00:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=koM6xc/BcANmrUFf+pDVs0lfSHwDim3YuBYtgrqwwag=; b=pbSDOb1Cd6gDdS3F+nkrOWTKY4z/D4tEOa9iHD0IpjftIwqK3cKStmMaJNJnGVJNPsJBpZ kAuCCMmMUCpI40W4vsDF8tYmENYNguu3u3oc+j0lNGLPlnHLUfe5QTydY1fekpPy6BYzYW 8IAeG5km/Zx4zZsuQqEy94SGo4ocB4TNppuGwINBHEIlpQdpnhgD6fPqqgOZfiByS93vbp pJc2+7WJc4qyFliT/StY9Ov6VbMRsJI2xLCDSWA0Aw/OsR7zsPAfCTAcQYe2u94HdhawaF lTJfcrRvzE+BSiFHoDv3a4nPxViqQV2AUY5E0JQT6o1pcvLsUNu7r9m0DbybdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465659; a=rsa-sha256; cv=none; b=eHkdFStQ4eShHBhcAUdBVIV0pJyrJuQAj6x3RKqg3XhdSxEZIkTgmVWgLDicFYsX0reiBc wCncDN5jVlfFeMU2PJfMKR8x8EWRZklk3UMvUUUGCYssLLra1YXkGQFkgbVCsg1lxPzT5c G0HO7/WJkpHoD8icqDRdxKW2+BitU3qv5mkDLbfEzg9m9yKz1ykQjjD5qcGI3BV8VwthmH ik/Q/JBHnnyl1C59riEA9zsVBvvP7NXxyIYh2DPqLuN6qU037aR8+aUlVpmXekPzlrXnvu eGbRMTkYAqzITbVdZ/p2YJZ1pBMyZ5ymSW5et2aceIaVsaKcoDcBA8+d2wwjNw== 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=1725465659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=koM6xc/BcANmrUFf+pDVs0lfSHwDim3YuBYtgrqwwag=; b=PDIufuWj4GEkj867cgTeVe0WnWjjqqNmmxHMnc/yKIgXRt9PgVSRxLFR9lED2aZBKYtp2X DEylv4XXTtupBI1w/siw3hpm9p/+ohGQ+uF+RMXAuuL8g/ZXPIZcDjNF/ziVTcFLE0O7vX zwsBIIrJZW6NYOpoqCK5yhmRQDfQztUHdjl2ztkSCufgChVCiE4u+aw83qZP6F8uAygv8p egaw7Vtb6JylIfCC5LsNWZUt38hr/jbib6oeEGLwKUZYVXZJY0k53pw6+mWS5mT9yZV6P4 96Dnes7oNyak2h0ezOumPQMQeBYwApR6OKwnJFcK/kyWgj5OV8kpoqJ0xi6mOA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzRzv0NmxzX1L; Wed, 4 Sep 2024 16:00:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G0wam031936; Wed, 4 Sep 2024 16:00:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G0wMT031933; Wed, 4 Sep 2024 16:00:58 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:00:58 GMT Message-Id: <202409041600.484G0wMT031933@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 4938f554469b - stable/14 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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: 4938f554469bc81783998143968ec3eba2a43def Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4938f554469bc81783998143968ec3eba2a43def commit 4938f554469bc81783998143968ec3eba2a43def Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 15:00:56 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 9a6df7ae20ff..2d54850da9c3 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4359,7 +4359,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4407,7 +4407,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 16:05:13 2024 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 4WzS4n6Wynz5V9Gs; Wed, 04 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzS4n5YqJz4bkY; Wed, 4 Sep 2024 16:05:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XWq+VLG6wGrlYBVBPQutF9eS5eOuxXHSsDRIx17A6QI=; b=iMRJ0QaXCZGFuOLA4fHa57we1aFVsNs2XIa24Zc/L1tRHhy1HuNw2vrHjI2LUCFEyh+Jr+ 54A60jHo+4T8rCRdTTaJf6N6gayVaGdz+cGnFF8S8thE3UyzV6WfyxwOLudQJjUVr76TRq 2Alb/0/r3e82WYDtsNY+Sbg++HfrBKrLwEqGZB9VjFZEMSqj4+THYbch+rUqn5EnySOGcN eBt+DqUcZoxfKIHrOAypIwDRYwmEsJyVyHq3kt0jCnLUGwqAcCXo1Z45Aa0L1aBVv0Y1NB cnx3ymGJfsnK4PigNpbujhGHobt+iSwJvZcV9aZTsujCzhhvHmoPYIqDmXAhCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465913; a=rsa-sha256; cv=none; b=NVGNzxC7HfaG2TAsCpEEDHFhYThEn2e2qxY9G086nQv+hyXdR/Hxf6CAqT2+CWLmrsIUE8 rpm1MN+WfvIcUE2wtwRtCJdLMIb2WLXsEfHSWw2MLRXO/Z+iFPPHAnTEoT4YEHftD2SsmY jNvreVW3ZJbSFsetx9N4JNMqw6H4vSey7KmJQnMytxG0grzj3d9MSAmwPElXPzpRFq3G2y wGM1J0eWRdb/2Ul4O8dANVHDowQ4zAOKqUjBFVfs6ap2hD7Ew/frSEflWaIJrzaNT5iP+7 KK1yCXXZUYQp6p5y+i2g2eBbnESvuCFAhQ09RRzGucy7MqlMg6Ug7iHc9tAKVA== 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=1725465913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XWq+VLG6wGrlYBVBPQutF9eS5eOuxXHSsDRIx17A6QI=; b=kRJJNY1rjwaRjdyCFw5WEnEMWNgFTEvN4wGf5B5/ZYLYkUuRkalKf0aWsJFjWnQkCbmwC9 4pZ2NFB0hwen+48LsvfzW8kIoSldklb1U34nNO/Uk+R9E36S42doOXtmij8NfjyWAJgYBV ObQnBM/uolFka4orRw7APy2WhuuI4/bETqc6GugS6OWYoduFdwmZDVHJOfsEpY4gpkfkTX VAD40PrYrJkNn7STCewm5h68rst44n1iKEt0ETKpMccJutLdgVA6UL4O0kvL55P5+D8PFs xJgqVeWW/pcoFQ5BbCAq10Vaqq0a3dQBFfSC6jrgViV8wX6u48LXS+yXDxdNzw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzS4n59HDzXFM; Wed, 4 Sep 2024 16:05:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G5Djj039452; Wed, 4 Sep 2024 16:05:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G5Dec039449; Wed, 4 Sep 2024 16:05:13 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:05:13 GMT Message-Id: <202409041605.484G5Dec039449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 5f49630fef5f - stable/13 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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/13 X-Git-Reftype: branch X-Git-Commit: 5f49630fef5fd2358e8bc96d1b5a343d8225d5b5 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5f49630fef5fd2358e8bc96d1b5a343d8225d5b5 commit 5f49630fef5fd2358e8bc96d1b5a343d8225d5b5 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 16:02:34 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) (cherry picked from commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63) --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index d8587c51e6fd..757e3c869683 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4293,8 +4293,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4354,7 +4353,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4394,14 +4393,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4494,7 +4490,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 16:05:14 2024 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 4WzS4q11yRz5V9My; Wed, 04 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzS4p6fDKz4brV; Wed, 4 Sep 2024 16:05:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jw568edBJ9/926I0L4RREQZAEjUOGJr3ejQOGnlOqHM=; b=PVfTlrVbLFKQBWfGFZTU6xZKfvbB2VmUlEYo/pk6/bdlzeh3u5U2YLGP0yroosaHG9zWxo azE/kATpy0hbLybHTwyIRFt0Pz9pJMJ/Nif2BCL/bi7dOwstjrbusKyFsh9tHtqBHt8Icu RgM21IecozXslTpr2wmbzPktCKwdIzjkWVMQuS18grlRMJ2Y08UFI0bBOJRu3Od+wu/BEx vuZZ8RzgExZymsR3SDA/rHk98ePFdWmU/2L64V1URxNF4LY/Xe2R9lyEsatHZ5JIasozD5 RQmce9lCN6N+8AvCERaTi8R4jGf/U5AO5u7TSIgZceCwC6Ud125fDP8pO+2Q+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465914; a=rsa-sha256; cv=none; b=e9tAo6HhPmsdciGF/cmYzHg9hvgn3Q6dRSG3IiEzrOSK/ypQaEURqXyl1XISA57ABGAMmS yZIxkmMqfj06Lx7mJsVg5SxWweBv2o1t10uBmq4RcHSt0yCyrueoPd7fYiLzTwMWUIF2aS c6pV/6j4GjjNkUHIlglg3uFtyRqbbUloF7UGPiS4SbEP3P8gp/H1upzwKDl1Kj+SFpeFcl VKkm1QqPi6cugbI+Bzeiv1ysiTG2sD8TL7OvNvg4pvrdMH/3U5qKsleH70388n3OuNwfoX pwBGuX6hHCVzvJovxOqteXCpPpRgxWqbO1YE95nsGXYF6Fnd4G2OyBfwvtaQwA== 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=1725465914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jw568edBJ9/926I0L4RREQZAEjUOGJr3ejQOGnlOqHM=; b=uvaq5ankJXc/CuHv5o5WhFYXwdLjGGqHZ9oBPHdlyPQ+us5QxpXBXW5paOlOt7LalDOijp 38pFwPG0+ydQgY352/cQA/UCybhQVLFStCxlR5CUerihdkoHBPLhdXQY9j0qZEhwMpgKZa hFEYikj7ABmjnH5AlHh0BI9YTfjFcRtbntSKzyOlwMN7HueJoyLrDHclRg+73Qe69Op4dB iW3e9SRa29WxO9R8Wem4fHSprgqQ2HvYln6ELjP1zTC8h4fmGLbdq2yAqziTS8UGXPyh3L fzLD+Zn4I/k/FMZz5AevfG13A1slPHOePH0SRvLJ7UcntB6LvxkRHwnzkWEQ7g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzS4p6CgQzX1j; Wed, 4 Sep 2024 16:05:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G5E4T039520; Wed, 4 Sep 2024 16:05:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G5EtW039517; Wed, 4 Sep 2024 16:05:14 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:05:14 GMT Message-Id: <202409041605.484G5EtW039517@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 40615bcae9e7 - stable/13 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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/13 X-Git-Reftype: branch X-Git-Commit: 40615bcae9e7f41ca857c773e804db9bd7269581 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=40615bcae9e7f41ca857c773e804db9bd7269581 commit 40615bcae9e7f41ca857c773e804db9bd7269581 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 16:02:34 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) (cherry picked from commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed) --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 757e3c869683..aac2e505d844 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4384,39 +4384,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4469,7 +4479,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4486,11 +4495,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 16:05:15 2024 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 4WzS4r2gpLz5V9QH; Wed, 04 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzS4r0hjRz4bb0; Wed, 4 Sep 2024 16:05:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CFwkfNJx/mmsMlfd4+vqyBJhh+3ZRwqnGn7bygydTlQ=; b=PGK0bTbFjJo26vENiAMd9IH/GTd6Wh1+hm2iZh5W+ip+e+qVIHgLztOePKBQ4F4Wsgbupe NQi/JSlCReEOaZphmZFcUqFHR62ZWwMcFjW9DWba2VtiYl3DQNEDCZpo16PmcTEBwz8EIA 02u+3ZuYxNQwk0+QHlY0m+AZqPTIM3sKgbqcHJi4Rj6C49fqi4QUWQs7VhI742+kiUpDe4 kphG1d1thpwEkxATi9XXXYkrOQdKuRg6UKTyrrvDnwP/gGOxybEvd8omJQbbuF4oLMWAHq hYZslerI1LnKMMHkk1qsZzGt3n2fxC74fa7uAuf3N9C4P1HXm+TY59oqgBi/gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465916; a=rsa-sha256; cv=none; b=ZpOISv3GBXiRlq8yHYFriXGEW6a/FZKhhCJr/JD+LCudgBiq0DK/r0JUVrAxYLueJhFDOw dU75eKusFSZN24dS7+FtnPWKjcRj7lWZ6vFrQL/o6hyFwswiF0Pd5ailJ0HtmmFHwBhkPy aXcGOX4uMft7H5jVJz+8B/wg/u0qmCOe5UtmlnsEkPnKb43CM+jwg9yUuAjBfk3QDySTaO 0IoyGsd6PniG/jii75c2ivcCeBLjwGrGjksmMk6Tsnqe/NmjonUn2FXzigZ9zzpnB1WqIA KHj16Fnkjl0gAPSItpbdf0KclPhGO+9njAtP5JT9ESe17Loo+8Jzwr06KtcXbA== 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=1725465916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CFwkfNJx/mmsMlfd4+vqyBJhh+3ZRwqnGn7bygydTlQ=; b=GQ+2o/3G4jj5LzNcZB0BTkhoKrHkmt3UxwP6El9iLSKZgvIXfBJPrH12N29XYKhtqv8Cgh 1UU6a0fILiZIJvHme6cVq1uPtgRoPhLlngSRjFVsCvSixiskoMcb2h/ADjBHuJC9q2JBBd NEAWj+5ZGwosnRL6w2txG6j+6VvQuNPr2YVFcf7J5Cnv4COLEJaFv1LPGegQ7BSIJcObj7 lHCe+fTkDbzKjUfj4EmqekeqdCNGdBriyUwXXuqDsO31CSD+8t3xX14QfSVCIhwhfP03OK yoPSe/2NGtDOUg/Yj6dYRsAvb7F3kRlJrp9CyDPkrs6NA3OG3pTXBbcQdIxBtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzS4r07MLzXHj; Wed, 4 Sep 2024 16:05:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G5FSl039566; Wed, 4 Sep 2024 16:05:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G5F8B039563; Wed, 4 Sep 2024 16:05:15 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:05:15 GMT Message-Id: <202409041605.484G5F8B039563@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 8cf43dcd3db6 - stable/13 - umtx: shm: Prevent reference counting 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 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/13 X-Git-Reftype: branch X-Git-Commit: 8cf43dcd3db6f02f8dc3f0aa23965db107190789 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8cf43dcd3db6f02f8dc3f0aa23965db107190789 commit 8cf43dcd3db6f02f8dc3f0aa23965db107190789 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 16:02:34 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) (cherry picked from commit b20ae160872071fc20e5dde27051792177057fa5) --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index aac2e505d844..5d83842f8ed2 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4334,8 +4334,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4355,22 +4364,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4470,11 +4491,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4488,12 +4516,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4564,13 +4600,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 16:05:17 2024 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 4WzS4s4MVSz5V9N2; Wed, 04 Sep 2024 16:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzS4s2Q10z4bkf; Wed, 4 Sep 2024 16:05:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725465917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aagOR/76C/ZivaWiCKtVGvVpWqxVb5TxmcNGfB0bxVM=; b=A6pxIR+WU3N/IR8QGBJDWuJE40lYI3+LEdOdeF8I3GzyX7cYJJ/8c7n15afkg6yZHe/FHl Nq6VVaIiC4qMLrP7vTi9wI7ov8t5QRAX5L/Zgu+cgjwBtMP6zN+aW8aocriuyk87fdZyVH nYmri32JgssXxn44qXsAaPyLRPS24DB+AeevkkWlw1sIzpZ5D7T2GEvFRMyTw/cE30jwhb hW6JHM9JGnhcktXl6dkr1KDjQK+I6ac4bVWHoACRdCikvQDo0gaSWgbNc5SqTH3iYnxHyd ABzYEHWrRNfCPbTj4LMrt80Th0An7oPrHadB852m4Fs4R1dLd7zUD+Ps9q9HEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725465917; a=rsa-sha256; cv=none; b=WtSXBLIKAq/aex7Ee1Bh6V92z6VMo1uFvNRxg0g8qhmra/HBDDescoo4CK6OMLf52Is/PH jR+O0Li0HHq4LASn6A3wQc2MxhO5NBP+vsHM6DTwxJ4HNfmQxCno4rWh2Ugm5vMio1Dtyw pRKZmohEtNuWFO8wLLQhKqfvfSoCYKhoDoR0ODSr4MMybhurNnPagp5Rhh9yzExvAn9Fou e0xIIwCQ6ysP20omJnVkDxue/zvRD1oZkIZruw0cb2XgYc6n7L/DvS2kusraNyFop8wEpk b2UVk6iTb48aLWKp3Z6i8z0qWHPrwWoxpGljWYCa5qMONZzCjL/pGrwETfy18g== 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=1725465917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aagOR/76C/ZivaWiCKtVGvVpWqxVb5TxmcNGfB0bxVM=; b=q7pguaFTB6dXc0RPNVCv7KXgd2L/vl4vzkCNYk8P7pznU0U4pgghc7w4NogICBBqusyBQr EnMdmv3yWlAP7PijETXphGldnHM6iVzD0JHo9X+UqgbBaPPe7GpVA7embcgbYwWoS0DyPO 0zZoFTx3Qx8fnsu7K2ZoBgj2f5GW8cCR2l7GrmlewzltqszT/3b++lZVo8iCEexHhnyE2s eSx3ziw1bb0OOO4CeOxDxqnqKxqaaIXrMYwoIfNeASpjVEjKDAipnJSNEsExbYLM3EELWR QJ/dCak/vhZyTnBqLDIaRjaKKYbSBv30zbV7tihHlcpghTJ0poNSXhQqvEXpPg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzS4s190bzWm4; Wed, 4 Sep 2024 16:05:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G5HMS039626; Wed, 4 Sep 2024 16:05:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G5H3R039623; Wed, 4 Sep 2024 16:05:17 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:05:17 GMT Message-Id: <202409041605.484G5H3R039623@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: a73a70472c47 - stable/13 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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/13 X-Git-Reftype: branch X-Git-Commit: a73a70472c47877d57d090ef77ae503fe75e9f41 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a73a70472c47877d57d090ef77ae503fe75e9f41 commit a73a70472c47877d57d090ef77ae503fe75e9f41 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 16:02:43 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) (cherry picked from commit 4938f554469bc81783998143968ec3eba2a43def) --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 5d83842f8ed2..23087cf4269e 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4360,7 +4360,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4408,7 +4408,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 16:08:18 2024 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 4WzS8M0xmSz5V9VS; Wed, 04 Sep 2024 16:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzS8L6zNLz4ctq; Wed, 4 Sep 2024 16:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725466099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kNIBCDRWwnIHp31x3Z92MxzGtdNXWZ65fWlXodoJW78=; b=G2DyGMjugfIlRXgaFQ3PkhOVeBwvVUjsSH7LbcHqfhfY5cP2cWgZYDkybIQC3yIn6yf+An AafBb3STbH1LYhUKGSbNRav8gfYwm/9x66yklG9MTZlj6dSDrfK4Jx3LbmLmArZ7TSu3AA J0y2WZxJJgPdD1WfsS6DZbF1ZGMvH7e6HSwUl7YqGwU02eDe14QCUeu0VjNaOWgjuCzR9E 3H/XAwDjchmi3xsKzv3yRlKgmj6iq9DbvCzhjuSJUxFUbs42PXm4vH1bFmPIQmQWZhdlWe sEqyKEm+758CqQE5RqwcWNjZDxOUYjuSmoc6lk/nmYeYmEj6TP+XuQZLrTS+yQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725466099; a=rsa-sha256; cv=none; b=kEU3xA7orFHpoXKICDDW9A/q+Cy2CRQbrrhr8beUkGcKS1q5ev6B4BfKLjt90CQfBPyNk1 IqqvFyyj+DAI24MllriWHbsVUQu9dW5epGc9frTXxHEOQpmDFpo8SFhRpGJjZsl9mspGHy ULTuxHobP7fGaMCDlL/dGWYd7eL0eqb3Kd6lMX28IXJmJpdT9olkeekGjdmYD4k+JqEkXT Q3iMEEAW5Y0xS0KCrv/VI9p2FW8oQ9dvIMMhnF3b4hvtrq+b23v4XR9jXRNBVbVuH2S6gK 0Vp1BVQSBZ9fX8ouNJik0pg5uI7fCBv7BfkRXhsn7Y7kcWnbvTjWVOSUNem0yg== 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=1725466099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kNIBCDRWwnIHp31x3Z92MxzGtdNXWZ65fWlXodoJW78=; b=gzfD27McO0ZUcwDBbAANdFw+IOvgouB/RcCLNn73R9dAUerOCcyVcn0fqyppyfy2CrzJ/C TGROhYNKM8S24RKrtVjqQwBJK9OJZFlQqnlMNDxscnGg6cViWDt1H7vW96bEWdxcrVLZcF 3d/rUfPRl4YOy0wmaSfY7cwX+Ot1Ys6pBFLdhLf7srt1blRjz/bX5saEmGsMq4PX69HWH6 zjB1asxx5p1/PKXn6kUROtZWh8N8tPOhRUXHkpLB7PY1B6Ke9m5TG8FLy9SrsgeX6DDCtJ 9+C+l88ifLxPM2dTSNSFzGUeXgSeBnMMbbvqTS9a31PYicsxiucc2ynxV1JA+Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzS8L6Zs5zWm9; Wed, 4 Sep 2024 16:08:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484G8Ifo040203; Wed, 4 Sep 2024 16:08:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484G8IW6040200; Wed, 4 Sep 2024 16:08:18 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:08:18 GMT Message-Id: <202409041608.484G8IW6040200@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 881886673a34 - stable/13 - MFC: ng_ksocket: fix accept(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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 881886673a3423926c8b5f0955c4b966317f8ae8 Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=881886673a3423926c8b5f0955c4b966317f8ae8 commit 881886673a3423926c8b5f0955c4b966317f8ae8 Author: Gleb Smirnoff AuthorDate: 2023-11-17 17:24:30 +0000 Commit: Eugene Grosbein CommitDate: 2024-09-04 16:07:52 +0000 MFC: ng_ksocket: fix accept(2) - Provide listen upcall and set it on NGM_KSOCKET_LISTEN - Mask EWOULDBLOCK on NGM_KSOCKET_ACCEPT Reviewed by: afedorov Differential Revision: https://reviews.freebsd.org/D42637 PR: 272319 PR: 275106 Fixes: 779f106aa169256b7010a1d8f963ff656b881e92 (cherry picked from commit 43f7e21668105cc5a3c66eae5ecef0203c2df62f) --- sys/netgraph/ng_ksocket.c | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c index 027aaae4e607..6e12415e449a 100644 --- a/sys/netgraph/ng_ksocket.c +++ b/sys/netgraph/ng_ksocket.c @@ -152,6 +152,10 @@ static const struct ng_ksocket_alias ng_ksocket_protos[] = { /* Helper functions */ static int ng_ksocket_accept(priv_p); +static int ng_ksocket_listen_upcall(struct socket *so, void *arg, + int waitflag); +static void ng_ksocket_listen_upcall2(node_p node, hook_p hook, + void *arg1, int arg2); static int ng_ksocket_incoming(struct socket *so, void *arg, int waitflag); static int ng_ksocket_parse(const struct ng_ksocket_alias *aliases, const char *s, int family); @@ -696,6 +700,12 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook) /* Listen */ so->so_state |= SS_NBIO; error = solisten(so, *((int32_t *)msg->data), td); + if (error == 0) { + SOLISTEN_LOCK(so); + solisten_upcall_set(so, + ng_ksocket_listen_upcall, priv); + SOLISTEN_UNLOCK(so); + } break; } @@ -716,11 +726,15 @@ ng_ksocket_rcvmsg(node_p node, item_p item, hook_p lasthook) /* * If a connection is already complete, take it. * Otherwise let the upcall function deal with - * the connection when it comes in. + * the connection when it comes in. Don't return + * EWOULDBLOCK, per ng_ksocket(4) documentation. */ error = ng_ksocket_accept(priv); - if (error != 0 && error != EWOULDBLOCK) + if (error == EWOULDBLOCK) + error = 0; + if (error != 0) ERROUT(error); + priv->response_token = msg->header.token; raddr = priv->response_addr = NGI_RETADDR(item); break; @@ -1058,10 +1072,6 @@ ng_ksocket_incoming2(node_p node, hook_p hook, void *arg1, int arg2) } } - /* Check whether a pending accept operation has completed */ - if (priv->flags & KSF_ACCEPTING) - (void )ng_ksocket_accept(priv); - /* * If we don't have a hook, we must handle data events later. When * the hook gets created and is connected, this upcall function @@ -1244,6 +1254,25 @@ out: return (0); } +static int +ng_ksocket_listen_upcall(struct socket *so, void *arg, int waitflag) +{ + priv_p priv = arg; + int wait = ((waitflag & M_WAITOK) ? NG_WAITOK : 0) | NG_QUEUE; + + ng_send_fn1(priv->node, NULL, &ng_ksocket_listen_upcall2, priv, 0, + wait); + return (SU_OK); +} + +static void +ng_ksocket_listen_upcall2(node_p node, hook_p hook, void *arg1, int arg2) +{ + const priv_p priv = NG_NODE_PRIVATE(node); + + (void )ng_ksocket_accept(priv); +} + /* * Parse out either an integer value or an alias. */ From nobody Wed Sep 4 16:21:10 2024 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 4WzSRB1sW5z5VBbN; Wed, 04 Sep 2024 16:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzSRB1M2Fz4gwW; Wed, 4 Sep 2024 16:21:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725466870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6frMuXMM5woKoR0rAm3z92jqFhIW6aYK017//Ego9oQ=; b=MoMU5Lq576KplmrxYJKkVZAzxNW9VL6SGa1zx5m6U+mYY9sJi3KckE/gd1rA8z39v1jRHk lQMRfl9xO32KJYYja9EanIBOHtTf5DUdEGA5LmzIiM+xqv7poNek95W+zuPvKYFBc+kUYS m1hl7Qhjd7emdcyjkwHxVpgGby5kDJyKxgHhP2i5atr+aggFS8IB33MUcliFC6nEckSD99 zhZjpH3rl8pG86Ru8RkyFw1Wcb5F1KDHpn3bggyr1CpnetD90NwnvBZQFDuGG62hppKWWD F/wmUMJi9yZyBhGLZ5E1dHnGUhxjSqe73Fzja3jK6W+73UM7NWMNMq9NCqIuqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725466870; a=rsa-sha256; cv=none; b=uPIXeEsB5QxosdKypXS4zV2ZMXZileenEx9SvL9Q8moxQL9o2n7HgjorwHsXysHMrtJJiP tjI60skNSFlGtNGeeFjQT3Y01roP1Otoo8/ZYpZ3iCQGla82XROItFz84Z3qCtfHgfzio+ ddncR4URnLO7etyKAawlMIgZiPo82fiyQb1sQ+9tYLortX2kNBAOPXRxLqu5hEv893NsQ7 g3yk126TYffrqv5AXV3SxkEpMMiu9i3tDNVNgvSPxPyxeK3kTuEwfhIWixmAptVngQY/mX lp2JIGO/GyTQyEutxHxndbiaPGyyiuzxT+W78vIWI7QIIZ8KPdQI+ooxVqkjMw== 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=1725466870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6frMuXMM5woKoR0rAm3z92jqFhIW6aYK017//Ego9oQ=; b=Nx2fZE3cpq19YampjKleVy7K0TItZna4Nc9Ha9uHL1Gb5z9ZMHq/QDojWtUHn0G4Qiw7Ov 5O50RD8LiFjnX2CXDDDcjuh2fDP/bxhwV8TLpWkYAznpymL/hVmL9F+CBNsoMWTNu1TwEq g1SjBh9/3tTDDM30MOyBuF6b2oSxcVhgENfsDriuMGt2naSEp7bHTYOjlps6n0ZF6nCKf7 6/5Bg8Oq1rPZ0ervWmfSQstx5I5sgrJ4T8wRyqC2Gq9AMsMH5ZlMIir4oPkzAzghTgbDQh eit+Ize95xUDwiRbo5VV6ldgNNq0wK/2RPqJ0KlxfKlbwgKkX7mdntT1Y5F78g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzSRB0xygzX79; Wed, 4 Sep 2024 16:21:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484GLATc066092; Wed, 4 Sep 2024 16:21:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484GLAH4066089; Wed, 4 Sep 2024 16:21:10 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:21:10 GMT Message-Id: <202409041621.484GLAH4066089@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 5d0ad5fffbb3 - stable/13 - MFC: ng_ksocket: fix upcall clearing on node shutdown 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5d0ad5fffbb3b5a71405a47b9b74d7920f9428fd Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=5d0ad5fffbb3b5a71405a47b9b74d7920f9428fd commit 5d0ad5fffbb3b5a71405a47b9b74d7920f9428fd Author: Gleb Smirnoff AuthorDate: 2023-11-17 17:23:58 +0000 Commit: Eugene Grosbein CommitDate: 2024-09-04 16:20:18 +0000 MFC: ng_ksocket: fix upcall clearing on node shutdown Note: imho, the proper solution would be to guarantee that upcalls won't ever be called after soclose(), but this isn't the case, yet. This change at least makes the node work the way it always worked. Reviewed by: afedorov Differential Revision: https://reviews.freebsd.org/D42636 PR: 272319 PR: 275106 Fixes: 779f106aa169256b7010a1d8f963ff656b881e92 (cherry picked from commit efad7cbfdc06e92bcc589a6c0cae2f3bea0d5cb9) --- sys/netgraph/ng_ksocket.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c index 6e12415e449a..1acd9f78efbf 100644 --- a/sys/netgraph/ng_ksocket.c +++ b/sys/netgraph/ng_ksocket.c @@ -944,17 +944,24 @@ static int ng_ksocket_shutdown(node_p node) { const priv_p priv = NG_NODE_PRIVATE(node); + struct socket *so = priv->so; priv_p embryo; /* Close our socket (if any) */ if (priv->so != NULL) { - SOCKBUF_LOCK(&priv->so->so_rcv); - soupcall_clear(priv->so, SO_RCV); - SOCKBUF_UNLOCK(&priv->so->so_rcv); - SOCKBUF_LOCK(&priv->so->so_snd); - soupcall_clear(priv->so, SO_SND); - SOCKBUF_UNLOCK(&priv->so->so_snd); - soclose(priv->so); + if (SOLISTENING(so)) { + SOLISTEN_LOCK(so); + solisten_upcall_set(so, NULL, NULL); + SOLISTEN_UNLOCK(so); + } else { + SOCK_RECVBUF_LOCK(so); + soupcall_clear(so, SO_RCV); + SOCK_RECVBUF_UNLOCK(so); + SOCK_SENDBUF_LOCK(so); + soupcall_clear(so, SO_SND); + SOCK_SENDBUF_UNLOCK(so); + } + soclose(so); priv->so = NULL; } From nobody Wed Sep 4 16:35:20 2024 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 4WzSlX3tCpz5VCkT; Wed, 04 Sep 2024 16:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzSlX3Lblz4jKr; Wed, 4 Sep 2024 16:35:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725467720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rT0fo+7HXisVijoc3JJBzHlYX48alk/qrC4+1QkqQDM=; b=uOKYKBlSJU7mSMazSaoaerC9+N+O4wGU6s1qcxfj39++kOad4KfZaGDVjM2pdiRs9I5Dl6 wD9Tt0UaU/aam0V+rZqBAA3Zb3648K3XCkNg+mD9tIHOAj0pkXRgQA3qJwvDwCvw6qh8Ut enJVC1QTovAc7xVpCIC32KjGMUctCXCZUwJQUoyUpUcqudt8WLERJZk2zBX6vBwv9npSoh YqD1XhW5yKpv1Gek1J5hnFvWDKOHzf+UIKCQPkigjLEtZpQHR9RLB72AFVf829X08LRMdl iYeafdy3n+NbRu65MfkmnGQnB9i+B+4/WDLl2YgqLQ7Vv+nSYxuvkdHRhUAVnQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725467720; a=rsa-sha256; cv=none; b=lvly6DmogeDxHS0sspzxbH5ItQ+4bn/X0VthgAwtjs4XCuQT8vMrBJJ50N3DAQlSWrJE9G 92p9plJbvEM66K55pFTDJvUsEgQlXL04MztDyJau0yer48hlBzag7UX4aeRMUQIDTblEKL MywlrFgrPPpHECmi7a2aK8XqpF+G9yGtfPwp/jqoQfQ0IGhRMmq7XgE4IBwBlYKkWYHOML w1ubZo/uRzQMEPZb2FDn3G65ZAQZmpPIu0HVH8AoLqJpsdpAnowx7rXwIJLlMMzZ0G6ZmV JUSdlFEIgzbm+jvMjf77nlKd5tq4C8Hf6gx/LlqjjKGvA62bJ9A0rxCxP3I2rg== 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=1725467720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rT0fo+7HXisVijoc3JJBzHlYX48alk/qrC4+1QkqQDM=; b=NYYlOeL2xtXSCYMO9t0gwCnL+vQPLv0B4WQwLGTMcbQYXtgElXsFPwoc9MddACatSAjwbY gZqgkBRuBZwxf0Uh0ESZumLgJzexlHlGHxnLB3Pp0aYzWaqW+xZrnK4TMwKjMnTdbf1CX2 I0UXzXWB+obU1bwMK/d6bhzniOoRzVoljd10ZT89S381saUO+dDCPHiyTDiUPdN3aWJYrG jO/OK18M4imCl8Sm3IrrGW4H5D/eJTDOzQ31Y1ITElZ4iy1kO0oHF1eJDIDg/9TOsyc9V5 XCwimkiZccLYh1JAy/vCVb08Sjr3jWkZolgRsafYM9GXsUeHTxZNYjW4ZG+/cw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzSlX2ycHzY2G; Wed, 4 Sep 2024 16:35:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484GZKhE089599; Wed, 4 Sep 2024 16:35:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484GZKEe089596; Wed, 4 Sep 2024 16:35:20 GMT (envelope-from git) Date: Wed, 4 Sep 2024 16:35:20 GMT Message-Id: <202409041635.484GZKEe089596@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 1ec3289e481e - stable/13 - ng_ksocket(4): unbreak after previous commit 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1ec3289e481ed004f2820abf9a7d56460459d0f4 Auto-Submitted: auto-generated The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=1ec3289e481ed004f2820abf9a7d56460459d0f4 commit 1ec3289e481ed004f2820abf9a7d56460459d0f4 Author: Eugene Grosbein AuthorDate: 2024-09-04 16:32:32 +0000 Commit: Eugene Grosbein CommitDate: 2024-09-04 16:32:32 +0000 ng_ksocket(4): unbreak after previous commit Fix locking. This is direct commit to stable/13 due to different code base. PR: 272319, 275106 Fixes: 5d0ad5fffbb3b5a71405a47b9b74d7920f9428fd --- sys/netgraph/ng_ksocket.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/netgraph/ng_ksocket.c b/sys/netgraph/ng_ksocket.c index 1acd9f78efbf..49ea3b1cd1f5 100644 --- a/sys/netgraph/ng_ksocket.c +++ b/sys/netgraph/ng_ksocket.c @@ -954,12 +954,12 @@ ng_ksocket_shutdown(node_p node) solisten_upcall_set(so, NULL, NULL); SOLISTEN_UNLOCK(so); } else { - SOCK_RECVBUF_LOCK(so); - soupcall_clear(so, SO_RCV); - SOCK_RECVBUF_UNLOCK(so); - SOCK_SENDBUF_LOCK(so); - soupcall_clear(so, SO_SND); - SOCK_SENDBUF_UNLOCK(so); + SOCKBUF_LOCK(&priv->so->so_rcv); + soupcall_clear(priv->so, SO_RCV); + SOCKBUF_UNLOCK(&priv->so->so_rcv); + SOCKBUF_LOCK(&priv->so->so_snd); + soupcall_clear(priv->so, SO_SND); + SOCKBUF_UNLOCK(&priv->so->so_snd); } soclose(so); priv->so = NULL; From nobody Wed Sep 4 19:13:09 2024 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 4WzXFf2n3Xz5VCFs; Wed, 04 Sep 2024 19:13: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzXFf0R8pz42jN; Wed, 4 Sep 2024 19:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725477190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nYwj3bBksLCSLBcIZyfSyudCS/UMSKbCiu45It6uNPU=; b=MndEM5M06CoNZUsEC4M2ROCuBaJC/hQr7+KObeDSZtZLrnpwTSSBGOuLQGsPJWJVjbqc9Q Nr6a9BrJ16pM4QaEA+5WmWPLiwVp611Q3QPuXpVoPuC19qD3tjzZe+WhoIn3FfkkR9N1HQ slqSkSgfr17aW5vtayq7iHBtkW3z0DfwVx8p2lN7nDyms2oNFMA7VZrHkQ+FicVrZk4RH+ Aaod4lhMTf5MddT5ZC3fnYw7w5ROwZ8G1KpQMsBq+BlPjlT0vX/jvs9vDhAoDc3Yg4niXI /TtqPg2P2NewcBWEOLDucalbiOkbpDlIDpP2QmioBzisg9jviFjqg/nu5GTW+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725477190; a=rsa-sha256; cv=none; b=sG1LuUszjOAcTZKJwkIUI5HlFnfL+9cVaKRdlDgJ2HInOaxS1McCbrWU1EXzZi98tonlyA X8J/p9QAlxhIvcWOtcYR/GKOLKXPnoAHoxTUQFiZebNyiXRzK0dMDJAwc0hXIyqmZhn7sy 9hRuwYrLEtPdmJ9HOSRsHg4yzcRTD9JZV+x7Xv6J04uzhSSaXyulhKpkER9dJNoPHg+Gi+ OehKx0Vf8Ke6/jCkvAuPgp+mI7OL5O/5jlFxNTjU2udY0G32cvApNEZUMkHZxosK0uJPmg jfsfIzC/RNCvuuPXo00RWRjMeZ0tix7ym5qth3v7gMKtfXKeZZQhgnqz+UgoKA== 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=1725477190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nYwj3bBksLCSLBcIZyfSyudCS/UMSKbCiu45It6uNPU=; b=T5YuATZfVV4NyEpNUozvpifKhTvrDY5bwhMYtQTYIbWFPaGy/vN5/s+baR0iArakLE0m2i J3RkntOFoSwRMKEN/S2WNaYcC6XaPOXTdfemFfNWIUT05a6CQkE9t7mRJWRSPe8gdaWCNg MBOd9XcHTZtMUhawY6PPQT5cS1TL5Bagm3r5G0DGp9qKTIBbRvKm+zRV2SaT5VoFzwCmvv KpOGHL78blWM85oHqhNgHqxuQGJXXKhtye7HmVb2VEDg/USqdp4Jkat5bqwNlTU1/DWCoE Ag/P0NBgpCrqdwl6veS6/HQZNOw3XY1ZgYOtN11ZSPSQriiNhOSNH99MpZtAzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzXFd6kc9zcY3; Wed, 4 Sep 2024 19:13:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JD94K061200; Wed, 4 Sep 2024 19:13:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JD9wM061197; Wed, 4 Sep 2024 19:13:09 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:13:09 GMT Message-Id: <202409041913.484JD9wM061197@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: a8d0ba483332 - releng/13.4 - libnv: allocate buffer in a safe way 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: a8d0ba483332378e3ecfbd093f2c9a09ec966ae5 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a8d0ba483332378e3ecfbd093f2c9a09ec966ae5 commit a8d0ba483332378e3ecfbd093f2c9a09ec966ae5 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:10:18 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) (cherry picked from commit 2e7f9244ebefe019ef016a3a5b47c4562850d1c2) Approved by: so Approved by: re (cperciva) --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9fd233e1f1d1..41d262a18c9b 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -997,7 +997,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1090,7 +1090,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1328,10 +1328,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1358,10 +1358,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1391,7 +1391,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1438,7 +1438,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1505,7 +1505,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 56b818691660..e399d610a7ce 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1302,7 +1306,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 19:13:10 2024 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 4WzXFg1hxMz5VCWt; Wed, 04 Sep 2024 19:13: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzXFg14Gyz42kj; Wed, 4 Sep 2024 19:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725477191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8TCoMRT9T9P6/qzYnUED0FczEWdzSsvt32D4SQqPM6E=; b=rhBw0gDDWGzzU4zAdmvJbWg3CQLDPtcsLli8bk9EeZGqc5NLzyS+EwgvkwXhCYkP951xNQ zTiaGlSS3Ikk5hHAniNcJtlcCXgUd3/QjuOQ+He6F1L4vlNDe9JuvVwaIeq/tksu0G12aj YB7iZjNMKNlxNwtJzD3jiX9dIPNDkzeVfQtnFgBIJn35AXv6W4ndKb9R+hVZMHnZtN0VF+ 5O8B1Ouz77bfrOhmQnBLYOOmkqCWVmlp9VB/xLPGKetJi8tE9EWN9oyRmNf5mmbbEjVvUq xBQN10QqSAGR0MZRVMAa8woGCA7EFo7dNct9M0L5bnNeN8fhD6kdWn/USpaYzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725477191; a=rsa-sha256; cv=none; b=KwGqSe1KCY3MlAYgNHhTSYtSZ7ekyKIL/AG73288/TxUPsRbmXPOYfiCNfNGlx2D1jpRES CpCozqZ5IosT2S9VAMTCAAP6MY7+8tDffapOon5YZhD9JF+QPslvVGoER0zKSh1IKcKdx0 yyBsRUauJidG7x3Ra4PiuoTkaaneQu1b7o1AwPZvLUN5jeNUrC2nfT8ZaD6jHk0PHdhvH+ PBlWLZM5HsgZeViNTnkn0nP6yRQCx5g9zwqvSGyXG7e6i8ZafaXA1WeJXwFuG2UuTLubWP FIpPuos44cBdEzIjxll5M4Mkxmtw9FQwQ1OgcysW+vHxW83fMoCKXgJgLnCewg== 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=1725477191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8TCoMRT9T9P6/qzYnUED0FczEWdzSsvt32D4SQqPM6E=; b=JtZkmbg6TtXSTNX6BduTHwzziHgRTDEv4wPIY54psP2LV3pSc3BUfNJ08akAa+yqL47VyK SehegjzMawlleQkkGx1qfzhMf8wcbOz7NQa+v4pa3mGOdCIdxn2rIu8VK1ZIbCOP7Km0L9 KSwmT03WD7zdC9r8McSoVRBgWblq/eyA3esY0TrjiI82SH1QGKr47PtLsyf0bkBjo3DIen O+UGiSDvB1cgXm5jSkI6H4DY8Wohi9CBlsAm8877MBkR/XNgSFH9Y0zEx/y3KLFx/0D0Ri IXoBN7bApZMZWQzmJm4O+uY7D8uukD8+ewXKRbxseRPi+vEhjAZpai0Os1A55g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzXFg0cZRzcTr; Wed, 4 Sep 2024 19:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JDAQl061248; Wed, 4 Sep 2024 19:13:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JDAvL061245; Wed, 4 Sep 2024 19:13:10 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:13:10 GMT Message-Id: <202409041913.484JDAvL061245@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 3aa9be7e3334 - releng/13.4 - libnv: verify that string is null terminated 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 3aa9be7e33344c0cc3f50062bac4926cdb49d36d Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3aa9be7e33344c0cc3f50062bac4926cdb49d36d commit 3aa9be7e33344c0cc3f50062bac4926cdb49d36d Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:10:30 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) (cherry picked from commit 03bef9971d73621e1703a0bad41b598bc2fce9c6) Approved by: so Approved by: re (cperciva) --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 41d262a18c9b..cfe168c38026 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -986,6 +986,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 19:58:22 2024 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 4WzYFq0y3jz5VHGf; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFq0FQFz49Cf; Wed, 4 Sep 2024 19:58:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ljX3bqREJ5F87nLWcC07zBL/hrrEQnibWWa0e+jgeKM=; b=TEB4/YQS+MAiIw4zW3qoG/KwUO5dbNh++45cBCv8nqZTMM1JNKeMeZt9enpoYKx2EXXvYY wtXV2DNVuTqZjr5ofb77OldOhBsJUny4aDSssqwVbQcsCaJE6aqMe1oPdCJ7O6fot9ysuW szzx2bmzfsDRUfQYNFB9RUhlT7She/KEsRL8vMFQkvNS/stqPtDGkT0+Bm4Sv63YUjmb3z 1zuC/3unt7KvTOs1yMyCYrOUTSqykOJ6TLrMNx35r2K0/QkiwfBSlOuNRX6svLx39+qStx OJBvw/Em8R9iUxLYVOjZQKoK5i3IwLEefjSvze/41wlmG3vdfUzytxUlDKcIaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479903; a=rsa-sha256; cv=none; b=Iywm+wHMQTdfV5aJMHQuidEzpej+gCxITWE3ftsyiBlP6O6vKdAYaHYzNOuhAgQpV0Bunt sIcUR6vo+LSAJgaiaszuwi5f4K2yMSC0aefoju9ONB983OE0/S1SmK3zBrZZPODz17BoM8 /Vbfl3coaGOQaMHIixcXYlH+CefIiPHFo7HyIWIIi4wtkTFtrYs9EteM9D+w/29en+3G4Z yX6sm2rOD+F+2cuVEDCRQHHhPBpd5KNqQYhYSyFUuHclA7fQXqGU1hejH7t4J+SeukmuHq 3q7Tz0EWBJj0QwEaQAVUKMcszVI5RcE3G/+yZbp0biEn5xQ42PU9vEsNgXnbeQ== 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=1725479903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ljX3bqREJ5F87nLWcC07zBL/hrrEQnibWWa0e+jgeKM=; b=QfKkgsQ1ujg8ZKkXkshIOXgiE7Z8d0b0fdQCotcDWGaKeWN79LX1wWgvl/WyGKJg4S11l5 cqZ6K8UC9/TDqtXmregxEr8JL5YaXDjxnvN9EYYcKqCzct0idLrhWvP6w0xLc3RGkDWSak IC0/IBOVBIpOwoKfDiihrCeK9Ham86PRTruKUdRbr584gggPOMAK4nB4GIpX6jdq8szWow 02csEBIu9YUomhFmowBv/W+JB3SbyA1IS0V8U/qNaMw7zQ1aPzBZ+jXbhNwvmTiF12fxNU 3lBNwpqvt/DbShhMOvq6arpmpViB1bBUkjtMZ6TKHOfLwmqVO1qi66XYxHV72A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFp6yNjzdL3; Wed, 4 Sep 2024 19:58:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwMeX029935; Wed, 4 Sep 2024 19:58:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwMHt029932; Wed, 4 Sep 2024 19:58:22 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:22 GMT Message-Id: <202409041958.484JwMHt029932@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 29fbeb5c59c7 - releng/13.4 - ctl: fix Use-After-Free in ctl_write_buffer 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 29fbeb5c59c7cadd6bb3b9a1dda3441689ad5eb6 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=29fbeb5c59c7cadd6bb3b9a1dda3441689ad5eb6 commit 29fbeb5c59c7cadd6bb3b9a1dda3441689ad5eb6 Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:13:45 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) (cherry picked from commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501) (cherry picked from commit 2553c91f731b12558046454cf30eb83f56fb204b) Approved by: so Approved by: re (cperciva) --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 7a04a668e823..5635246845b9 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5672,21 +5672,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 9a87345015fa..85f4f6137810 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -410,6 +410,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 19:58:24 2024 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 4WzYFr1tjCz5VHF6; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFr1HcZz49Tm; Wed, 4 Sep 2024 19:58:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BHQ5xyZMsxroWYqXAtd9bme7wz3qQ4M1GNq0IdgeETQ=; b=DOaYVRkyCQvgbCDs/bx23DP0WwFSiBhkeyQD2DJOlqCSdnYa4HgKSdLDNnstE62kCq5HMY 7dRU3QBSp251WhcimAdF8gQHwqueXV5/28BZxCpTWL3Fkhd8FbjU+A2oOlqpRbDuCi8W1l eIfm2RrrBB/yGB7UvsTV3sLA/V0rrjrhr+B/ZF9+9Wxcpu6gB7h3uNA4AEiPH2Z0djQFpp KmywAUa8BQ/StVKbwqsHbHx0creBVGimjTBGCgBzeJ1ezGRrMx3FgnmbCd9FzBSQiop9pf Ms7HAa+9IFCwq2IF9sb6eaBA15rBx4IJlbbdoi07A2nzBSKTvIgahGI+DZeDaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479904; a=rsa-sha256; cv=none; b=KvWDeK5fzwFuaxWZ72/Fhx3k/TZ8kpv+I8blGg5XNJHOmQ2fGchAMzSP9dEuKx47HuM3R3 3v7FIbhPN8DqL2UQB7/ikiIf6KBH/DzeoGWyonV6zAVefnbh1Y8OAHhF0LlWSQtR+lRvh3 hj9fLZA2afB1itQWgJ9IE54d7tppgxYkrPokcnXbIknChzchLbO5+BvVVPQ8bwZax4JwgS MjKN5hwLZjhK5YaVdw1DjGVUNVgIhBNhKy5oiHNtHeI6yixqxfHTwPd9shVGFPyU9djaCd +S6G9IH9whvwrTd2je/5YMZfYPST0iCjcOsiVo6Wg0nUx3tLTTrYPIICeFu1/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=1725479904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BHQ5xyZMsxroWYqXAtd9bme7wz3qQ4M1GNq0IdgeETQ=; b=qrcL/N3+nRMZ93ZRjCBprpeiOvJICEuDUOZKVjk1yC/KccOsHUN+A4vtjjc7R36F685le6 37D7pb/HAdOiVnm/YZYlPEIt+02XIiiukfxodAWQdXmijMw6XTIwnP8ansMe18gY8Brgl6 7HZHSHfCD54zKhxiziAYbu2VG2So7FV3eFKxS/yb80SMU7WYzMNXNVn73VYiLha9HqSX6I Rz6ptASX4D9mZEhx3RLuajVc9Qhmr4UT74ljRmhlox3roNosZnP3FOiIV7u7CyCqw9yLQr P6mTCz6oSlwk5ux3CVxNJsdEH2THeva6pXDr9+3WJoFbdvQpNzR1QOBOImlb6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFr0tdZzf0V; Wed, 4 Sep 2024 19:58:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwOf1029993; Wed, 4 Sep 2024 19:58:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwOda029990; Wed, 4 Sep 2024 19:58:24 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:24 GMT Message-Id: <202409041958.484JwOda029990@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 98e8cb3d94ce - releng/13.4 - ctl: fix memory disclosure in read/write buffer commands 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 98e8cb3d94ce4a41e5bb290f257f790d9e090bb3 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=98e8cb3d94ce4a41e5bb290f257f790d9e090bb3 commit 98e8cb3d94ce4a41e5bb290f257f790d9e090bb3 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:14:14 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) (cherry picked from commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5) (cherry picked from commit b13631a59f2a303418c0f3f298b33f2a51fa59a7) Approved by: so Approved by: re (cperciva) --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 5635246845b9..f9fec62249cb 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5633,7 +5633,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5674,7 +5674,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 19:58:25 2024 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 4WzYFs3tFwz5VHKC; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFs1q8Lz49V2; Wed, 4 Sep 2024 19:58:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FC7dnVFVX++2h1OBflhHeBd6JDrh+bwp0g4YJjTz/iU=; b=UPzNPbHwFAKy37OPpglBKsSSTnB8bB96BPmfPhxNIHO9xxX6Iihk2RfSgGvV28fFrUexf/ /wznhGYTBmUJ5PC4Nnm0gACxasLCaiwvRAz+h97iPXR6jm5h09hOjiZI3INoj2pLR/SEbo 0i6ysO5Xc5JZZqkbWsSth6CY5F6iaIHZuT1/sIbRrQgFZKqawV7VQQukwccz9+RkxsPjC9 uUz0JgVETsvpHNchO4BpQFiL2USMMyz64TatkmFZ4B2LwSmvSAW93rblxXXL0Szmye/sDC 0CSeV1lSeUMdGYZJW6lC8vDldBscjYUsy27lRGqpF0pIh37iWc5J8c+Eh6AEpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479905; a=rsa-sha256; cv=none; b=oYGgdlvwBcwStuJpAlrYmrjNDHNHG1XwVeJ6FXc1Dn+/5Dd7M1pLEKr+SiyfhbQ7aqAJbz HNmxS2PY/IOtwtsREdNYkqsjOyoyaChmvXRTiyaYmY+kmVn+ikQ1a/aTRO26p6fC2NCob1 UeMk44QT5VimDmG1BUNEdhCx/tfQH3BkDfzvvKw3G3FbY3FBL8Tubwr9930Vge4fWvnBvT McmK63DI+n5P5NdxAzEnGMvPaRRevhT/h/ZRqyB8s3zN2co+ujvbYgINA9m8rz61IZmPB6 fj8teNpse5dd1zPBU3nBdMKDuxorNSyDQVVTHrzdo0FzNET2ndw0Fg/95e9kpQ== 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=1725479905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FC7dnVFVX++2h1OBflhHeBd6JDrh+bwp0g4YJjTz/iU=; b=XfXfiKtpSz8VSYzOi3XyUiDDARvrZMAUtcePe0yIGfHXdbGWps7y0AMoeKdkNiby0p4b6g vtWDdY2vCP7xS07V+YE1y9jcvLmk7BL/nn3cJhHopqYdc/oDOm7QuPeBeb6KMhPsnzjNYt 4asi/lUF20/IPdiQmBSZqdy3HYY4COe0PgPxckO9M9901BPV7lSEQp4DBohGEB0X/IWMXv QBXCtpnwuOj48RBkXBQKDG5hY62hJP8CWq03Mu11vfMGRtVatN4WFolehv+vierYSqq7Pi gWxg0PNLBZcPw0baUHAVovfIHDXx2vhxGcfPSDYtZO8gDOnMx4aExg0JRckIEQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFs1P8vzf5H; Wed, 4 Sep 2024 19:58:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwPLU030043; Wed, 4 Sep 2024 19:58:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwP6C030040; Wed, 4 Sep 2024 19:58:25 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:25 GMT Message-Id: <202409041958.484JwP6C030040@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 004298792002 - releng/13.4 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 00429879200207bf2d9a3fbabda3bd7d388cc891 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=00429879200207bf2d9a3fbabda3bd7d388cc891 commit 00429879200207bf2d9a3fbabda3bd7d388cc891 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:14:25 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) (cherry picked from commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0) (cherry picked from commit c8afc072690fd7541159cfe76c544797a5b37bce) Approved by: so Approved by: re (cperciva) --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index f9fec62249cb..b0f34cafac80 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7513,20 +7513,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 19:58:26 2024 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 4WzYFt408rz5VHMd; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFt3BpJz49Wb; Wed, 4 Sep 2024 19:58:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uzx4tLJk+Z58gx1+3HeblBYSzRjrUgtqfabIh2viwHY=; b=MtPrUjQxQb0Or0v+/NC0HBz9lz8blNQncth8hHWZehBZmtRQRlyTIZYbcL0OKZiDFUtB9J vuM7p5QBsFEzLgFXgkNxjoSv39jhxs72JTeJsav8oaImT6JOiOtdIf+picLTLRCSJYAivX VblqOp07R1Ro/wzdkhhkFSO9wZkyuLmk8G5R/gijoK9N1Iqu/cYA++pATW4ckOK7g8UxmH TQ3uMB18WMpUNW3JQbHhSwhIHQfVDNCXaGPLFDPNUtRmFchdjFun2/W/JWbFYhuhKLkz0U OIxN23SbJVOx+qUbTiKvty+a3vbYaj/Xb85YaMeGPAZdHm0j+nwVLfSLZnW8jQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479906; a=rsa-sha256; cv=none; b=Ra8ovySopXRF7vSWeiXEZkdzGQGG4DZ5aptFVoXjGiSyIzk6nhPxsoNnyYpaanG+V4gSdd 6UL18msmp0pQJUBHwJ++qOv3guRkFhYdoUBABv/z2CkbpRnCwxlauG8CRItHNrYn1k2Hol FQqoN7G0ZmIriPH38CGEAhGlMS0TKL1xloY/bEFPZ1TBN1NrYl/0XRM8SIcRTj8X7xG423 vn6ZBlSZtwCoW7bTZ3xVU99Axa0T7KQrns8aGOh8O6Ihf0RoAFIUkIdkBGzeJDD0LquAH6 wBPYDyX77tykfl69lYwbWOmUdpzzMTiNI3kwcxp3C98Lqfcv//LLEYBrHHSjSw== 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=1725479906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Uzx4tLJk+Z58gx1+3HeblBYSzRjrUgtqfabIh2viwHY=; b=ntvevI0tuuOSOoHY4kYt/XgJLLix79YFM96cTptvK+3jK02ofx1Wfnyb1outkhyUQZ/c/S QaFMToqhBTycAb6QkZjBcQ7aMC1cRSJm8uGwjurEMADxETRq02IHHIjoIwwzSeri/6HALK yRGhIkIvYJKkKMUOsP1OhjKyahghlZWRhV7CCqVhokaDgqLv29DtoZUdw07H071QrX3ase 4bTys6YEJ6ewmLlK/WrFC602U8aFWKcWHSRxRl7Mjo2keDuEvqqfOX8QfsJcJeUTLuzbYb nqTCUnmJXm4HA9VtySRTlzHQOBWUTpmzBiitqPPdlx76G9/9zU40DLMmB+Xl6g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFt2hLkzf2v; Wed, 4 Sep 2024 19:58:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwQuS030094; Wed, 4 Sep 2024 19:58:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwQHv030091; Wed, 4 Sep 2024 19:58:26 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:26 GMT Message-Id: <202409041958.484JwQHv030091@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b3f0e555781c - releng/13.4 - bhyve: fix off by one error in pci_xhci 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: b3f0e555781cd9bc94ba4194a5bd82b6d347e3ec Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b3f0e555781cd9bc94ba4194a5bd82b6d347e3ec commit b3f0e555781cd9bc94ba4194a5bd82b6d347e3ec Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:14:35 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) (cherry picked from commit 90af1336ed5e3c8556147325c4841c68639c4b63) (cherry picked from commit 5920b7e6eea1e1c46b78656ef75944fc0709e887) Approved by: so Approved by: re (cperciva) --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 58f2d53eb9b5..93161affd732 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -659,7 +659,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1201,7 +1201,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 19:58:27 2024 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 4WzYFv5B4Pz5VHFD; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFv4L7cz49jD; Wed, 4 Sep 2024 19:58:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8PVWQHhwpRBdi1t0GJyrG0dYULZPuwAx6AMMwL5N96M=; b=hmP1KPIQCLccoZuPkn1a9jtTs6/8csXqHodUkPpObSlQSvSYk+b9i83VX0AkVKLWskrEQD y0O6GxOWZw1hv9YRYsYFi8unPDoQ5Uqw+dmOccu07ew93xUOpVk8w+1LO92iVba6h7UpBY gMHipDe6f1za4E/vncTz8tw84JilQg4bnTDe8dFMfqYIVO1H5u4kG6QLTLKM3kbNbN4YHu 4gfgGn5Mw2/lMU5aqgW3S5qADBI5ODkc/CEFYZwhIi7bPBCHndg/9kLtxOUK2B3jvLW1Mq Y/GAE9cYXh09N/R66MeY/QCdKW1zmtmBpbZEZay4kCjhK+dCl1TCUTd/5czXjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479907; a=rsa-sha256; cv=none; b=VDMDh9TpZXh01Mnl6kRVij8fNHuBjxZ2wA5qZyNRBJtqpWzq6g5k94lKiqE36cQ/udx0gn GjA4eGI7X7IKr9vMBaFiOlwmHI7CmJseHsV318fQALNWbFm7KbgdlYfJSZL7Rgy9KeobuG H6mHo2ps+m9p/HylDO1a+BB+NTd7UnVV6kHJi7zl8qgQn7AYT3sl2p9WwOTFNire+BycXk s6HfyAaIUfaISk8pXfG9xO6SUM04floPrLuxsJuc2/3v+mXBp75A88InOR9S/yw3fwBPf1 fgt9ePzinN55VDtwADYXa6KEKvQW9skzO5O3y/vySAxwXxNd7QGlfxvMTg0pbA== 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=1725479907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8PVWQHhwpRBdi1t0GJyrG0dYULZPuwAx6AMMwL5N96M=; b=stOBk1Fw83kyq/khTLmRe4bGMUOTzwsTH0qocNmV5UaEs8l+DiT0qGnpWUUS7pVKsy/QRg sQtIczO7GNSrxOkOy0iyAnXlY/ZHAm6XQx07DfHACuKn6fCqlsqevoHgYr+0aez6hI3SVl 8lL+4NXWDpK+b5T6hqeqLLYs2jJreXh29b1PzUviusgBkICcJXjzYoxV68gQsWHi5OREps hPZSi35IKTQeXGNROcTlMBxGbERNDgfOakYFovIoIfdxIt3cms1TwBp78arqO7IP+NVmtr a9lZUWyTqa0ahq1jkeAXgUKtvwZATV1lxsVlTli3KKWbwAYMINvdNLpADqZgjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFv3hBVzdL4; Wed, 4 Sep 2024 19:58:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwR3m030143; Wed, 4 Sep 2024 19:58:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwRD8030140; Wed, 4 Sep 2024 19:58:27 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:27 GMT Message-Id: <202409041958.484JwRD8030140@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: a667c04946e2 - releng/13.4 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: a667c04946e283031e1f51ab95f0240d238aa9f8 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a667c04946e283031e1f51ab95f0240d238aa9f8 commit a667c04946e283031e1f51ab95f0240d238aa9f8 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:14:46 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) (cherry picked from commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63) (cherry picked from commit 5f49630fef5fd2358e8bc96d1b5a343d8225d5b5) Approved by: so Approved by: re (cperciva) --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index d8587c51e6fd..757e3c869683 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4293,8 +4293,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4354,7 +4353,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4394,14 +4393,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4494,7 +4490,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 19:58:28 2024 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 4WzYFw5L7Jz5VHC5; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFw4gs4z49jR; Wed, 4 Sep 2024 19:58:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ybnkLtyE5DHu2n8P/EOhq/A+/9Z3KNbCAR07ZU5Ilw0=; b=jzRw6BsAlLvRg/yUNWHkhdFm9aEQkxzJhUjtH6J6oJ5EkzBIvt6Lo0EFc2egkWEomQOnjr jlt39TS45J0jTgZcY1hWAG0DfHcQcIVDDMSL5SCA6S9fso7uVBC7laOD6yBsyvDv6shh9s ZwPEZqkg4Rsku7KUv4KMzQKqfmQwuuf9QczJR4w4ENaJSwgsV29nDcgACA966QvnVOFmVT Q/d5eYSJKp9BWoyV7pE4A6Y87VH/lhEkd6J9qXcoGzWf5t/rqyWU1v4fRB1bxA1xKzv2TS 0hYFCmpvs2cL+FZ0qc+a30rzeRZaNaT9H/bflxxOPzMToj/qGovOoqdkHS0Jqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479908; a=rsa-sha256; cv=none; b=JtRaPM2/a+tAid/GgoKgVZorKfRM7kY14e/yVCQ7viu35CsUyzyqrK6eqrAkmDtaeYW+Dl qEJWuuxdvsxC1XvC21WnVOzIsL+LEuckbU0tt/kGna53jpkXvfAjXMKv1Wl83kKNVOiNKT PCpmt0ol+T93zj1AUhfflq4aIUMv5VE5BW2SGP0UxBQFjkwMnhiz0KnpGhMChcZEU3wXYl UnLhGKWvD3BOK6YJoL3QtBhD6tH7Hco3y7SmzMSCTeeig+jVutyq00jy2Lm1mJTl98IMbi tNh2iUonMiiEEmZ3jzLEqwW4d8NNs+KEW5+Ldl3nz6508b6z6BgcEaiWHXPvQg== 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=1725479908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ybnkLtyE5DHu2n8P/EOhq/A+/9Z3KNbCAR07ZU5Ilw0=; b=xB5Sxn8KryPNcOWO0PaM3jYRwU50N7FfsurvUIXNv1HVQKW1z+o3RzyDGSMNoUA46cZ5tz lcGXkPRIevzynRaLmPG8gwkueaalYJiVdei3+EvbpzXkiye9F0/qdbDLusSLOqRh0DaPVw F3Jcg7Az4whwRY4AEYVZfzCZz7YkfHDkIZnq2RoyuM0vhXJTOM27FKc6CzGsfhSxzCEKCV yyaa19dfo5zAB1KdFtuFLI60ThxVrTnfbMlX4/8Sval/2pmZVrS4b2pgxUKpPGayIU5dXt 6Zo/fGqc30GuUjW2joP+jJU0pngMAPWWFg/u/TUPnjd8W4BOet4iFhma+FFEeg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFw4HyxzdjR; Wed, 4 Sep 2024 19:58:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwSQC030212; Wed, 4 Sep 2024 19:58:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwS9a030209; Wed, 4 Sep 2024 19:58:28 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:28 GMT Message-Id: <202409041958.484JwS9a030209@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: abb0a18b690c - releng/13.4 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: abb0a18b690c3361346c3c3a57485e2acce3421d Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=abb0a18b690c3361346c3c3a57485e2acce3421d commit abb0a18b690c3361346c3c3a57485e2acce3421d Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:14:57 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) (cherry picked from commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed) (cherry picked from commit 40615bcae9e7f41ca857c773e804db9bd7269581) Approved by: so Approved by: re (cperciva) --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 757e3c869683..aac2e505d844 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4384,39 +4384,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4469,7 +4479,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4486,11 +4495,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 19:58:29 2024 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 4WzYFy0VNPz5VHFQ; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFx5d5sz49cn; Wed, 4 Sep 2024 19:58:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2PoIXiD/IVXo7vJU+BfERz0WnSpLXzHzsEZy3rE99O0=; b=a/eDNyVTfJ7CX+qMylpP6NAfEYLNPRh5J0pDVkqbtHTg7FD8NM1esT203UZ//JvCkPGP6o zxqQJWonFpzRJtvckHjkuAXpDQlXzyMpdj3IbTscAZcuHxmd7R7tSug0Nnj8C37bR+/ASJ 04SrpmXNtlDobsDnw2Xq69Kos4psD0ZBpGhDXDhIjhsxJDLUwi5T9MUxIva93UhTBTjqR5 Y3OwemAG2DIAP2g2WUtmTF7fGGML9S6uYzNhHAlAcbjzMvNZ8Zo7qw4tPmh/+VhgOz5eIH dCzcV3Q7M/H+Q+X+39jQyySaIJca5UhazY50yuCLdMsp438eWvUhO4MGYRjHxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479909; a=rsa-sha256; cv=none; b=xhRmynVItberxHzFT9vIH+6Lo0Yg38JZFb02awXyuPDt9Flusp7E+JqywdvDIetq195z/t xIlVU13IDGvjjMR2oHVtwtjyEAulqSLRA8kJ9Q0PjaNj3f+w5bXI3bBlDavrU6DDxfWI5U JyI9hFS1RviYPBeATw7On4RXpO4qq/a1fC6hJ22iIBGj70m0oPzAvdkbCBFBK6Mp0F53EE bqyJR8TmEi6Dac5ptkrRMa7tPyd7hW8tD5EDxEiBb5UJi2oNLUjN1396c5sk/FOQTDu0sR gbTjUUtBzILskT4oK6U5zmR/w/RUkWqzKM6ntORZm0dNCxH8reYXZAhmACaV5Q== 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=1725479909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2PoIXiD/IVXo7vJU+BfERz0WnSpLXzHzsEZy3rE99O0=; b=EWdFF3mVvIjzfYtlueD0do1pD+USbZ9ggIR7TBOuV94Zc57HHuMdr9uvgpbMddB3YouxaZ jk53dZmQ2LbPGdV5IxSXQiykxGIuZcTWR3jdvw7xPkj7b28QnEoO7VUjq7j9Lh9thQIXCd gE3e6a/qsZRuosi04SzXiqzjrKJSeyBtMOFOkoXFNS71pqKH4XUWQTnmOgHpe9qFxrenY2 H7+Tgs+9OS/jxjqgzURuQiXgVgU0S0cSGV9yUNSxbi8JV2gGbVoYhKLGRdgIOJdIWjkk5c Kt19uAfejBgqIAcDlSNCYt7wbJW+Sk77cnJaoxrwcfbyFjgKyoV3FXuUtWjU9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFx5FXTzdtr; Wed, 4 Sep 2024 19:58:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwTg2030264; Wed, 4 Sep 2024 19:58:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwTlD030261; Wed, 4 Sep 2024 19:58:29 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:29 GMT Message-Id: <202409041958.484JwTlD030261@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 6000de096612 - releng/13.4 - umtx: shm: Prevent reference counting 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 6000de09661282f70dc5af1bef88bbe4fe3beffa Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6000de09661282f70dc5af1bef88bbe4fe3beffa commit 6000de09661282f70dc5af1bef88bbe4fe3beffa Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:16:30 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) (cherry picked from commit b20ae160872071fc20e5dde27051792177057fa5) (cherry picked from commit 8cf43dcd3db6f02f8dc3f0aa23965db107190789) Approved by: so Approved by: re (cperciva) --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index aac2e505d844..5d83842f8ed2 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4334,8 +4334,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4355,22 +4364,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4470,11 +4491,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4488,12 +4516,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4564,13 +4600,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 19:58:30 2024 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 4WzYFz0mfYz5VHCD; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYFy6sVFz49jt; Wed, 4 Sep 2024 19:58:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qL0N96SEHROw8mnF+5YONZGT1lR5btgDbwSySaU2Vl4=; b=vytYJU5jLGS6JGzywfXiOY/gBjYK7AlFxUYL1tkqy2Hev+vmZD163mlAz2/m3CSDa0B0XN AaVMGqIEUHz/VyeFcv4YTqDDdxmNtVXxSDEdRcMHHx1UZLAAQJSqDVurwXm/DJe53YAXw6 QA4SRxnyE6YqaP6WentJTrWeNPVJ3PoClKXLHCGxGZtJrhFTtwSTOfba33ahuA9eIXZDCD /gv4DSNWIW8r7Dg5CWpzdAOKsd7A4Uq+m4pVHDPajLojQT5vMt1bUOSZ2LooEljvLkA954 IFrlZokdQMmkjizN3u8y1YCakznwq7qdNE+a/B4kkzNIJlVDCySc94PpYARtag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479911; a=rsa-sha256; cv=none; b=nMpzPLBqjMCfUiEQzCpNo1wzzdje7lTmPoI+1y65i423qMxyM+qeT7JXk++ceLJySlj7Do Xs6Uc9JwqcvVRgkqUzj0CCuUpY2NVMhmjHRdwhwJmQF9jfgCokEsvUNPm2UjTU7p+zSiW/ u3718TohAQManfjGbAn05CL9MGKeAWuwRtjMSYr04eNwBvE4j4q0UUC7qcyay4nylwVl/7 i5rNs3U8fFP54K8Zw9aN4eK7B4QhtGNUxobljPhI5BflndaCDzQ6uFxeYWQPRSVtRtjfAI qFjU4vtc8Bzv9/866g/RqQtwe6TDrvMn3j4AGB/tvrSA2+fcVAYyFvMcTK8Z7A== 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=1725479911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qL0N96SEHROw8mnF+5YONZGT1lR5btgDbwSySaU2Vl4=; b=UJJxSsL2XlVGAETTbEUcL/78XmLakjlB8ZK+4f9HxDJmbC3ZQtB23+tQYhwT+GdAKkQ3z5 LcZhzW7zfgKVxa6griYbdbzQ4/EFS38BWQB1mCwMxs8vowXEcOaCXad4LsP53F9OfBXsuz lrZHqXKM0tgTU9PjggeB/HifUz/OIJA+ZDSgHEPW/yPh2S0TgmsAvludsGORHn5jNG4QD8 zzc1lAkA97zPLEGW07AysY9P18mAPe+f6+q8DjzrXteILLXfDLU+3oiKG2MYD4oF0PHS5w J/7ACkkei7XZ6e6p/pavSILnclZRkbTNJYHRplieXDkdpzZbg+lRYk6lX9BYnQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFy6GbnzdL5; Wed, 4 Sep 2024 19:58:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwURq030327; Wed, 4 Sep 2024 19:58:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwUxC030324; Wed, 4 Sep 2024 19:58:30 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:30 GMT Message-Id: <202409041958.484JwUxC030324@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 7739dab97433 - releng/13.4 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 7739dab974336ed87304cae9240e1c4b963d5280 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=7739dab974336ed87304cae9240e1c4b963d5280 commit 7739dab974336ed87304cae9240e1c4b963d5280 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:16:40 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) (cherry picked from commit 4938f554469bc81783998143968ec3eba2a43def) (cherry picked from commit a73a70472c47877d57d090ef77ae503fe75e9f41) Approved by: so Approved by: re (cperciva) --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 5d83842f8ed2..23087cf4269e 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4360,7 +4360,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4408,7 +4408,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 19:58:31 2024 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 4WzYG024d0z5VHMl; Wed, 04 Sep 2024 19:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYG00mTwz49d5; Wed, 4 Sep 2024 19:58:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vwpHFZnkFDU04Y/QFCdcYVirgesG5kqyD1rtdHSxdzU=; b=FRmrqJ5NDddCW62bQeXnwaiiaeOZgJ2Ks5PAW6JmT8fodZ14Ev1VXECdE4G68ONdJAP75t FXz7X6k81m3L0uxpxoCOjf7T7Ys8SZFG2zjn1m0eVY4QaE9gUKuK8rOOJQg1SN1ln8HaSL a9mqDOPuF+3e0jD9rdpwkLIQcavmDPfhWX0ntckODTo48mv+oy9MWF60bt2A4OHiM6AuOd rzzY8z+RhffxMyIbSDdrUipwa/OeS+YPBpLS58rd7kb2ySd/Ym9RU/uQ0eUtoIn7TTSg9P E8KhErlojRpOd3dY0z1KZisiyGi1I0dcalxsy+PpMOxF7F6xFzfjns300QwEyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479912; a=rsa-sha256; cv=none; b=kUTJeLHXGVuiCXOmGvt95fNdwZ+ImcCX3+H93zrtS1/dtVB3hPX918FhBpc2FXR4Npouut wjgHI8TfloS/HlqFK5XPU364+pLR22gq26+8aKnOusmRgFJfdsKgaA78J7MwGcdQTagBKw 2IU4zhJsj1F89BJNMj9NyGWKb3rH5zltRNPxI0lJaxxalZnYBiupr5fGRxKxTTT7IUS5Su 3nkFM2EnHg4yak3nySqJKpe9T9+k+xaMyX926FxQ98mu5U/FCJEc2OXGZsxHjL4qSxoaIe pJhSyyu+8mpkJA4jzEh/95QE+VMED70W+MB+9Mk9StNu+SX55LKHaGifXsEKcg== 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=1725479912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vwpHFZnkFDU04Y/QFCdcYVirgesG5kqyD1rtdHSxdzU=; b=pR4ZnuiPbnaWkMAUoYypAEskIP8JjHJNk191nVmMY923GQmhzMfdaKF5558/5EFQ5lPdLB 8RbOndT4UYcEpgXd25A7Gb3WjApAbq547iksVKhBbL64Y/fnu8i+NA9ZbZ9btd0UyvXuZr VcKfJ++cqAeCk/b7tZxnJ7Ku7QYbK5KxiVj0BEMbn5pZ8Wre/zYKBG/+vCVV4wTbf3fgtd Z/JJAZNsdq3RM13DkZyiMWnWiLTB5hHDNLkT4Ehmq8AI1orvWy4gFzf+pGhJD/ZCFsSt5P aeUR+bSzuYTprM/GQWLT/W7AFQZu09hOV496eF0KPFuZB8MSfCXv2ps6Sn+4hg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYFz70nBzf2w; Wed, 4 Sep 2024 19:58:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JwVLu030372; Wed, 4 Sep 2024 19:58:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JwVsi030369; Wed, 4 Sep 2024 19:58:31 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:58:31 GMT Message-Id: <202409041958.484JwVsi030369@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 21576f63961e - releng/13.4 - Add UPDATING entries and bump revision 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 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/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 21576f63961eb1402417cf1a3f1f16874bab8466 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=21576f63961eb1402417cf1a3f1f16874bab8466 commit 21576f63961eb1402417cf1a3f1f16874bab8466 Author: Ed Maste AuthorDate: 2024-09-04 19:32:29 +0000 Commit: Ed Maste CommitDate: 2024-09-04 19:32:58 +0000 Add UPDATING entries and bump revision SA-24:09.libnv SA-24:11.ctl SA-24:12.bhyve SA-24:14.umtx Approved by: so Approved by: re (cperciva) --- UPDATING | 14 ++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 974b0dbd30c2..d9e322e4a1a1 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,20 @@ 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. +20240904: + 13.4-RC2-p1 SA-24:09.libnv + SA-24:11.ctl + SA-24:12.bhyve + SA-24:14.umtx + + Multiple vulnerabilities in libnv [SA-24:09.libnv] + + Multiple issues in ctl(4) CAM Target Layer [SA-24:11.ctl] + + bhyve(8) privileged guest escape via USB controller [SA-24:12.bhyve] + + umtx Kernel panic or Use-After-Free [SA-24:14.umtx] + 20240218: MFC of 713db49d06de changed 'struct ieee80211vap' internals in net80211. Given we do not have enough spares and the struct is allocated by diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 4bb01ad3de32..9df266dcfb6c 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="13.4" -BRANCH="RC2" +BRANCH="RC2-p1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Sep 4 20:29:38 2024 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 4WzYxt3K9Gz5VKQp; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYxt2Ltnz4JDk; Wed, 4 Sep 2024 20:29:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uMqRvsh9gO1gD8TXjAz8HWSLaKfkRhcDJpPriYpQBQA=; b=fch8LT6JaR3PtexVPk/HoxJW15uQVzZpPri5PPQ9wSm/1YuKIu4tyOwvefqbhMOijhcd8W ml2t1eNCPi17Z6+dNssyQZzpekvg/qy2OjDKSvI39aBqbxhYsJig3CJqAyp/yjrzdwMfYC MHVn0wu/Ivp9jtlRVwZ9zB6EqZtoxeMHcfrSzTnTLyuxP6vli77H0TUmWnNpcKdLvuyOly HH6v+ZzBo+V1xPwV0bxNZZgDUb9BZgn3CdnEh8ZOE/sIiXU8tVmUhg/ROtXjQ2OjaJEUqQ wUYvGzJ6aCnc3nAT3Sl8lFiz9V4GZuOuwaXXvV39BIvSnUh2qTS1wcKGKLk96w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481778; a=rsa-sha256; cv=none; b=QFG/jiauZH+ThLPbR7Ow3RnLozlh8PAzCW+UZ5yB8s8A2CRA1FIZAjhqkzuuW4ekyBRNnD kY3O6ICDFFTH0W3qPnyHfIvASYPMezp8tdJn/IXUNdjHBn6/Y79l8uCKzQNdthCB+KlcO4 7bsXIcuoDS8lu43npLm24bd0wSDOBRC/+U157CAXeDSL7D/tu1IzMmtfGRYMNzhzgrAQHz qBLTtPJbkuDuw64Fh+6vNDbk5vCRA3cGXuUtVypUgd9uQDOv3hAutUfiPBqDOsUAsyjMCE IiKz7ud4zmuzpL+wJPEzRKINlFcGEAOMMpdm1zcSfL0ym+ry8RD1GDAdA/MtzQ== 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=1725481778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uMqRvsh9gO1gD8TXjAz8HWSLaKfkRhcDJpPriYpQBQA=; b=pAhVthcK7VudvkA7ZvSIfl8Y8LP8ueM0V8Hkw4NbNfHmN7NZSWcY6y6P0M9mnPiX9vu3Nf BzyxzXheljv9d8eapsBnlYmraVKM+c9N+e2ndPIuh/uS7OpDA+se90TQiMTZOxze8e0P0M dcoH0aMm3N26s0PHzK3Ut5SA8sGArIECATdZUMaOUxaaux0g8EN9FITo2Kg23kJTLkXh+y aEMNiMPas9U8Cfmn9n0KUnzEHBxObseRQxo9cw0I6/7u1em7e/TrPAGu6wELQxrJ9wuRY5 mol/cgztt+gsZqwru1FHwdTI8/btgZI3btpVwnVKJDvnygCwwcsxiP9YB3/cGw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxt1xxSzfkN; Wed, 4 Sep 2024 20:29:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTcdR082400; Wed, 4 Sep 2024 20:29:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTcHs082397; Wed, 4 Sep 2024 20:29:38 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:38 GMT Message-Id: <202409042029.484KTcHs082397@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: eab94c0fbb78 - releng/13.3 - calendar: don't setlogin(2) in the -a user handlers 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: eab94c0fbb782f1d849981d0dde2106ec9bc8df3 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=eab94c0fbb782f1d849981d0dde2106ec9bc8df3 commit eab94c0fbb782f1d849981d0dde2106ec9bc8df3 Author: Kyle Evans AuthorDate: 2024-08-05 18:43:56 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:28:41 +0000 calendar: don't setlogin(2) in the -a user handlers As of e67975d331 ("Fix 'calendar -a' in several ways."), `calendar -a` will now fork off a new process for each user and do all of its own processing in the user's own context. As a side-effect, calendar(1) started calling setlogin(2) in each of the forked processes and inadvertently hijacked the login name for the session it was running under, which was typically not a fresh session but rather that of whatever cron/periodic run spawned it. Thus, daily and security e-mails started coming from completely arbitrary user. We could create a new session, but it appears that nothing calendar(1) does really needs the login name to be clobbered; opt to just avoid the setlogin(2) call entirely rather than incur the overhead of a new session for each process. PR: 280418 Reviewed by: des, olce Fixes: e67975d331 ("Fix 'calendar -a' in several ways.") (cherry picked from commit 6cb8b61efe8899ee9194563108d0ae90c1eb89e3) (cherry picked from commit 3a9010c98b3d9676307fac20d42cdd3cfd4bc46d) Approved by: so --- usr.bin/calendar/calendar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c index 476c0495d218..2e3baee7d57f 100644 --- a/usr.bin/calendar/calendar.c +++ b/usr.bin/calendar/calendar.c @@ -224,7 +224,7 @@ main(int argc, char *argv[]) lc = login_getpwclass(pw); if (setusercontext(lc, pw, pw->pw_uid, - LOGIN_SETALL) != 0) + LOGIN_SETALL & ~LOGIN_SETLOGIN) != 0) errx(1, "setusercontext"); setenv("HOME", pw->pw_dir, 1); cal(); From nobody Wed Sep 4 20:29:39 2024 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 4WzYxv4XMHz5VKSr; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYxv3LWZz4JGp; Wed, 4 Sep 2024 20:29:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UJg7eGWoGwWveLOvNzBsqCPgNhC6e6w3ebCoibCfo8g=; b=YPypkKGj8bDNL/7C+a+1AHlqZlePBnCsXUIlay2z75apt6epdRn9BR28nJjlHRtXQCq3/p L9QBcdN0EFFiuXn9G1XAew0x34znbrpXK0zeiQB4mBE9Du7MhaHvPj74tLQBXgBThaoK4y 0IzZx7+KXoHUEHvAnq3nswmDUBcjja4j8g+35k9k1mLiWn5yCCidD4y6dJR3p9TO1bhFmq Atk6pRBtrEjY6XswzpPjrec7SeOtLRfnWPT1kgb0osA7nCJAqGpULuwLW3lcDviXvNacDu YnjhX+eQihzh8LEF8lTqhNviAQp6uIw62q4RS+bV5bA0HQgOuB5NygyBsKQz5g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481779; a=rsa-sha256; cv=none; b=smgL+P3yLi9Romovxc0cEVFG+FJpyxJbQ6/tK6WdiKp2lJxJ02zoM54x95J3xjO5uxEbNU asctWR5y+EZSc6FjbS2I7mTGcTqH7D9ApkyVbycbYmWjtJbKCdOmHsrmnC9KFzOgsF+n08 KQRFQMXX5E+5J1zwXPjruqRg+zdIaXxSX1XUAc5J+OCVq2rHjekqTAjdIe+ckpmjhy8Jw7 FSNRbamuGBB2tIhpdiS1nzFTZ9L6B98FWrI5zeUQ2l416MWweSixJSpgPgvCqZwH0slBKT u1XVO4vgoNpCSL8AUsa2UUrNeZeiT2PpG4KtZrmuZLVIw+9QB1WbC8P0n2eWcg== 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=1725481779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UJg7eGWoGwWveLOvNzBsqCPgNhC6e6w3ebCoibCfo8g=; b=dN6kdu2W3p9xxATnXvnMG3z7st6QVn5xh61g+0cWLx/L+kkFjFeHfgJu+qArcOHczPNGCK 09RnatljY/MuxtYRr/2FKdNDxXZcxnpkHYAEEhDheCrvwr1bEGRi14Kso7OAKP5qKa+ypH PaAMXo87NCODnE1OdD+dZhBdQ3svJLh2Pp0mKe4xGfqwrZQGjIrOt73rrLcpAjmLFPPRTu Qmr00VRnivWs1iTA800PvRzRKOVVptdWvpqU0mcwd9trlsqIQLj1egEyVla0aPdLPq/RZi Etc47M/JkApRptmg8Xh2h/AJyaVzYuP00O/zzfuEm/Mbc2nF70GiyBpM9PIkIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxv2ygkzf6Y; Wed, 4 Sep 2024 20:29:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTdf9082448; Wed, 4 Sep 2024 20:29:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTdps082445; Wed, 4 Sep 2024 20:29:39 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:39 GMT Message-Id: <202409042029.484KTdps082445@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: fd4ee5b9eabf - releng/13.3 - libnv: allocate buffer in a safe way 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: fd4ee5b9eabf1843a0b67dca583696b91bd7fb13 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=fd4ee5b9eabf1843a0b67dca583696b91bd7fb13 commit fd4ee5b9eabf1843a0b67dca583696b91bd7fb13 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:28:50 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) (cherry picked from commit 2e7f9244ebefe019ef016a3a5b47c4562850d1c2) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9fd233e1f1d1..41d262a18c9b 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -997,7 +997,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1090,7 +1090,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1328,10 +1328,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1358,10 +1358,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1391,7 +1391,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1438,7 +1438,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1505,7 +1505,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 56b818691660..e399d610a7ce 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1302,7 +1306,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 20:29:40 2024 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 4WzYxw74GBz5VKdZ; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYxw4Lkqz4JBc; Wed, 4 Sep 2024 20:29:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NaJd1zk0s3JNTZm6uhacXAjaSfEsIqo+LAaHNp8leHM=; b=fP+GbJcx5JPr/c85h7gLFBkLek0lomup+91/4FGHU3vOGiJLVqMfrG3kmLln1oS8mrzueC QTi5fiCrYcvq8oXV98JRymyjEorB1KYw6p8m/JquoOoGHwJ3xuh0C/3Y99E3mII8HEYyur GOlbkYuwLYId5TZGowfzxX7IhvxbgQkxNfLxTib27ySdk5ckUwA+QADILZ/hvPxoEyTotc ky0KBD4L8mcIm1i3wA/kUZo6SRDK/0DYRy0EmhlJ1Tv6v1QEGkuhM6J4eHKBPiizoJ03yS 4MSWDmWQ1cI/HBgVsvV+pCO9jTlWNBswf5r6gAEy85UU+kxAx+g3i19Uvz6kUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481780; a=rsa-sha256; cv=none; b=LnwwDXdW6iQT3+mY8QPn9mNmYNb33svXttACAfDWAAM0FbnZwKhv1ImREAcRcTw9cEDWlC 3XTzRyPUP++jK9jWS4rJl+h/v1S+SHkpeFrHxWTm38lBV2CBCvcfOa5DCnvdk8h9AlqVkE 3IDbXKKX04dFzE1jUzVU8+mvlTcOHA/GVaOYLKSJLLLLXYUfvtCLqvJg7K04h37p8tec4d uOXxChudUDpldzuCJDxVy5CnpGGv9dskIDqknThUFbUbpfcwnTjgJRc57+R2AiqoGZATtE PQeDoMTcbiEj1fWHJ01BVu/vB5cqGa2zXnRZi9snzfejfkciofTJ49MNxNCUdA== 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=1725481780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NaJd1zk0s3JNTZm6uhacXAjaSfEsIqo+LAaHNp8leHM=; b=puJmhdvrRx44vaqRP7knPqLkabDGLgL5UewLhbejlTx/01IAXrJa4XoLSXICv491sMgv5I B6AC0mIVaDd8FYsm4WnieJvdAzxhENKBbYDpIGnGwsewPRGdRLXX5RRuit5+quMWNObbJN xUQ1nGccorx3DzNUyryh4BWhBYRmKpr/KX8pFYcX6Jhnbr9whSe4s9qNxQRsuLftKXy5Qn OC/4scBzR1vRVOTuv5P5M6ivj01dxh9adYJU9XfBTG2RKUJtnGychqFiDHY/z82SsvqmX1 t/7RhJ04xpMED6SN1kP+ozAvCMcXwWbTbKcKVhLElTyV59GsVTBhomkrGNHcdg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxw3wZtzdyF; Wed, 4 Sep 2024 20:29:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTeEu082502; Wed, 4 Sep 2024 20:29:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTe7k082499; Wed, 4 Sep 2024 20:29:40 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:40 GMT Message-Id: <202409042029.484KTe7k082499@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 33b4e2361c82 - releng/13.3 - libnv: verify that string is null terminated 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 33b4e2361c82b269d42c0d787e8900d1bde5de71 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=33b4e2361c82b269d42c0d787e8900d1bde5de71 commit 33b4e2361c82b269d42c0d787e8900d1bde5de71 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:28:56 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) (cherry picked from commit 03bef9971d73621e1703a0bad41b598bc2fce9c6) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 41d262a18c9b..cfe168c38026 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -986,6 +986,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 20:29:41 2024 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 4WzYxx5zjlz5VKh8; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYxx5D2Nz4JBp; Wed, 4 Sep 2024 20:29:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JF+yT6yoUgXuFCoBzPsENUCbScEs/YOqe0RggTfVLnU=; b=VkESUIzWXXtcaBL3JgxjfFXz1qYlLib441bufx7kfMOYopv/Ik0sqSrPHkPMSVrWovNP6x 4Qrq4u0sjBBlkcuQNnXhEQT6LcINXLdYBcwrblttw7eCBQKnB+JTkbjZuGbIRx4O1VXCMz EZ+tE4fDROb1+GIUztRJepUEO2lIpewF3kNIOTEAxPRw2zhFCdZg4sMriBX4aF6UCqpuCk r6+zvi2VoHHcyFsVl0TVasu67Qdr0yowFdBv+iXG2ku3O9anlUBvpMjfyZ2hdFKxULVpV5 81YjjllpOQpz0cAkyqtzhklN3vQXyvoGDMpYm3XQMzbEx40Abc7Yg9ocL2RgmA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481781; a=rsa-sha256; cv=none; b=oDRc/7n1ujUYfxKMlOpPte8dd0xRARNwxOpVR3RXs3IyxAPcH40v9+PXXaTBvFrNBZiCPU mqW5pQQN+P+8U+iX5BUZtPb9II0hDUf9OvwT4LvGDgA4U9bUqkehGvjyfAesGrM3Q6XINP /us4tW4Wy3jRU9kkIA5OKNWHRbJ7jnG0DKFxA8A+9xbfb0QbF2l+j2cbxEo0pjf93U5ZYK ej6csy5ARXl6HyKOm1VNTDu64AtrwmPCRjva48Cw7cux7qrxEdIbPKtiU+81Nmu+jEtR55 QZdoDt+UmKFjiHOb1bjBvZZkOLp4gV5v3bgIX3r9vjgkkxf98vBHqTGumF1EwQ== 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=1725481781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JF+yT6yoUgXuFCoBzPsENUCbScEs/YOqe0RggTfVLnU=; b=gJXFi5sKfN8+l0xUGeFyV892qHUH6J9jVlXVe7MptMsORCyjbeRMFftSjlB/hIHyr/y0yo QXKexqxg3EItyYMdeDmAtOdx8x35nchY+G9/2GsfULTyNECu9nCpof4D+GZ3T8uaf72NK4 ZFcEXHyhPen3Ne7fiPX+l7W5vsUXuks0aHO/N5NROUeGVDMAWc7LBLRA8CwrrB2XSvizfB JJzAYaCEXKPCOrgpK/5h0PUvPZdC8vvzM6gy9I8kYwVmjW0TXqNZepmM7MNWYnlMMCnaP0 QJDVOzAw+E4kMvcNiLJt7w9lnxCsW9J5uXhRkaragC6WC8VSaIoO9Ce6o3IlGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxx4nzrzfkP; Wed, 4 Sep 2024 20:29:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTffv082545; Wed, 4 Sep 2024 20:29:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTfc1082542; Wed, 4 Sep 2024 20:29:41 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:41 GMT Message-Id: <202409042029.484KTfc1082542@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 352775ac8ba4 - releng/13.3 - ctl: fix Use-After-Free in ctl_write_buffer 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 352775ac8ba4bd9d476a832dceead3667704699b Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=352775ac8ba4bd9d476a832dceead3667704699b commit 352775ac8ba4bd9d476a832dceead3667704699b Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:01 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) (cherry picked from commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501) (cherry picked from commit 2553c91f731b12558046454cf30eb83f56fb204b) Approved by: so --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index a31bbd3c8342..92eb658b2d2d 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5672,21 +5672,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 9a87345015fa..85f4f6137810 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -410,6 +410,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 20:29:42 2024 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 4WzYxz0M1sz5VKkQ; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYxy6ccTz4JMh; Wed, 4 Sep 2024 20:29:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481782; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JEeh8BfvAjspiBnMmHAjzI5IFOzMtADERljdwQcCeOo=; b=iTKA61h+fOuTv9iVSK5x9ufUNgc5IRc+VAiHh7IqxK2ZdlnAWOWiVt6kmN80DxYrEbcdWl oNkHjz68Z8U4TCzqSLcVBemwb49Ujh7nMQhYxTVvX/cqOptMp1x8hk2A883t0nApckf2mC zZowAplD3q+7mH79KfQ8ePwwfUMKoYPxDhnVfvKsnoR0/jWSx7rySxhH6ICv5byzj+kH49 DVcNEP9ILRcEQXf0UiXJ82NzXm7XZmIQdhbBYYgDCFXi0ZRyaTdaZNdfq67tVVIRtAAHBY zEyfN2c3EiqgV31ZJdp0btrZiPexdZpbo39JiCOxGYB72HCzeDgLGZUdskZdPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481782; a=rsa-sha256; cv=none; b=gPJPucvggyEKpE+6P/O8F4VQ7HXhBte2odZGYdm9HDKebJTjkIVISXnV88tW9OGDBBWHX1 0zrL1hUtjkxG0Zm+g22wzgxMk2fV5w+MDZ9i77yg6MxM4V+TbhxbOgxo7GRcl2kYLW9Sd4 JuQvlOxG/IiDcqIyGQBXdZUMkTHAuqG+CL6Ay51dokEZnLGfVvj0iojvIco+jFYw/QbWrf JLNyF4Ou8tk8nIBW2I3LH9D2qc3WK1dWhVxd9Ae36DxsymrP5o/vQHIEKZn7Frqk80D0Br W7mIamHAfMCOROPbgaoanCFOBTOZxo2nBtjmfMpOL6Q1TBrFU0Saz7i02p9cfw== 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=1725481782; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JEeh8BfvAjspiBnMmHAjzI5IFOzMtADERljdwQcCeOo=; b=aICJrjYbgnQKGR969O0efZh76OIA6wf2ZqIjWOHZFwbYatwHHXwLJEYgAo2ZqvlbISpKDG V4CpLjpbgJ4p40uO3TJcS3QkL4tJKQahh+4hsfJ4WuFy/WfHn1VooifRoba7aEwphFrE0t 0dyZlo6bfEnV26503Xsd6bCJ9gPEgA0/c5dGGPO0JD3gtaZiHO0XRWuAIfTMRlug5VAiLp ujDju45NLhR4VuC0wb+Z9JQxOr21UOlkZ3YcFeUohteKKfo/nD0HMWEJ0qx0UYHbSXs4RH 1a9jKEIrDSPxkQ5JbNcG7H5CIApNg+hu+BWq7OXJq71b8VK0IaxPhBxnUdESrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxy5w29zfgk; Wed, 4 Sep 2024 20:29:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTgqi082596; Wed, 4 Sep 2024 20:29:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTg3j082593; Wed, 4 Sep 2024 20:29:42 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:42 GMT Message-Id: <202409042029.484KTg3j082593@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 4752a984dc07 - releng/13.3 - ctl: fix memory disclosure in read/write buffer commands 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 4752a984dc07e2e4a1dfdf4579dc249b04716b73 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4752a984dc07e2e4a1dfdf4579dc249b04716b73 commit 4752a984dc07e2e4a1dfdf4579dc249b04716b73 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:07 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) (cherry picked from commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5) (cherry picked from commit b13631a59f2a303418c0f3f298b33f2a51fa59a7) Approved by: so --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 92eb658b2d2d..6fbe6bc5a484 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5633,7 +5633,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5674,7 +5674,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 20:29:43 2024 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 4WzYy01svbz5VKmk; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy0050pz4JN1; Wed, 4 Sep 2024 20:29:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=spL0jfSXwuLInZO2wiAJZlkrrKUZYkvwV1G/M8b1ElQ=; b=YoyZePkU2EdhHwmIjAoXf4qpimknWa95OsQ4uYh2U/WoSxRMj+iUOYV59iUTw2QLL61Gym vliNlllqWaXhak5eA3/mhY9kbA1wO9oS4IQxThf59AQuqttORA0UNj7IYVHXUxrWRvfQ/L LGXjmBzEFxJjKZpB25hP7Pgu0ugE4TuR+3eYN/1T1TIFysEQifyvhuxVGxvhvyvYgT/0+X H+QNpHlSA3fn1l9fhzKa5DDptNiz3AFeyFqkAOyn7eh+o/JHLfB3rtRghH3aB59kajHUpc 91EqGbBLNUhowG/iN77xLDNd8GNvdEzc3TvMqL6wC0hYKdtUVwSeboWLLoaD/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481784; a=rsa-sha256; cv=none; b=srHNHGeV+5Ia33moQ3j8SJwWruuW5dCiq6+hqFb6igGrsRkZkSuTMB9gNpa15iEGLiVR3q lQzcaChikdtg1G3hnlNM09cXbapGmoj7WRy6bX65LWGOPXnAd3aeu4f+FYqHhaZ//9qKqk 6zAAsFL1nmnedoNaVLsQw91KrQVXKGCdc/eyfKb/W6JaoZsLH+r36M6jEU902ENOINJnEz NNmU/kFxyLwOfwfK1Nm5sQPLKsb85ic0hlNUiBLzIzH/PaFEBt8XF2Jj4SjGqyfBwuIOgq eeEtii32dR+p2Wyxkvz1wDZmrkWfnz5TkGwdAjLmvtHa1YoZ6DNi4fxQYRBPxw== 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=1725481784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=spL0jfSXwuLInZO2wiAJZlkrrKUZYkvwV1G/M8b1ElQ=; b=EgIlgJdsuOrkVaCTZpMTFzCUH6sEetOXah2eM37EDx9WiPsWjaGJ8YACveqaDaOeD4O/Vt tXPn6ah4q8AhsvcnE2UhlTU+cCGc2vI1yfQXIGCvClNYRtvcf28qCkaEIuGJkhNA92YrGw zolOGzLPhGZCUMdhx4EUsr7BggEtMCWBjOc1YLluomB9hW5pUDtOXoxa823nm186uH3buZ 1jEh1cNYGZnxFcD9fc5J3099l4LMmrQnFlj+zKPRv9vRhtteH1zoztxuCNHPpchmbjweF+ uB2RBqJRNOEf2JUJEIfIjiSChSIya6MPYneF/9tIvmqvvf5BQlNZi6FZwe/mfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYxz6k3tzfgl; Wed, 4 Sep 2024 20:29:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTh6P082641; Wed, 4 Sep 2024 20:29:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KThhD082638; Wed, 4 Sep 2024 20:29:43 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:43 GMT Message-Id: <202409042029.484KThhD082638@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: f368a02e1013 - releng/13.3 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: f368a02e1013b0d669f77d5a606ef76468b903a1 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f368a02e1013b0d669f77d5a606ef76468b903a1 commit f368a02e1013b0d669f77d5a606ef76468b903a1 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:13 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) (cherry picked from commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0) (cherry picked from commit c8afc072690fd7541159cfe76c544797a5b37bce) Approved by: so --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 6fbe6bc5a484..5d4dbd295f20 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7513,20 +7513,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 20:29:45 2024 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 4WzYy13tJNz5VKkT; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy11KSrz4JFV; Wed, 4 Sep 2024 20:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481785; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/mXvWT1D28j9UyIsDl+c9UPT3OLfHmh+a97C2iKcTRA=; b=FghvKspi07TdKImuWN1+I0ELzmrJz0moDWiU3YOtAhpIGn6Y8xz9YHgOLES8bXVPdyd8uw 0j5RvkGVNF+cWazInbsulQuXkkIWaTms+Htq6bmEtfhkMV2uealE2Iy4Hx2U309ZfY+yCy ujLoVRLTd7fPAIDkgV0qlaHHlzLNFGxkomdup1GIXFngMEbTRKVnp+0HgZJ5DZkuXQ4FIY eksu2hdmlu7hmFt8CV5kTCFN29OizqtXYQ3FJKKbtK2h/laq1+GYf13/bkHLkIb2CewC9w 1bdD5MsmPuhQcUhCpVAfrQU2QDXLnJXTdpSaV4BnGpDmzEJHuKyWTH3uz8LrYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481785; a=rsa-sha256; cv=none; b=sBGYyTDzfCq7gSlwwi3kHLPdUE+LeGs75vn2OPWIemXIXZMh29jWO5/mnoorbVtfVKjawf NhFTOuS2/MOuKGTScvequPZTLp4mimTFBg6LBG/MpPS2t2lH8PhC5CzqIZxJWepHkBayyA leWVHE5RJTnXWn4/dUJ+++uiwX2KZKlkQKQqYobFRWZviPzgRi4YRe8Vg8toF3FrDUQGWF uzknQNacpm3tEybHRLw74CqW18hgEYvWtBHGXOxJT6oMN8zLi6QNRgmPYwy80+vPCJgpeN 16j+UhmhPrQ24qP7mU8IMgwsm/Xn6k8QLn0vYZMlgtzq8rS6S6d9GQ9CGqXfOA== 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=1725481785; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/mXvWT1D28j9UyIsDl+c9UPT3OLfHmh+a97C2iKcTRA=; b=C9QRcqOuF455E2x82Hv+/s4GerXMYs3jK68iAHZicpNqhses8nAUUXPmv9KncdMZE9xDOs FJfTd+u6Nrjkd8XFT3jgRgJ3rBjQOu4Tfkdui5IzRh1L029EfiqbRuX7h8MDGJ1niUN1vp wAsp3VlJMnj1184yc2oK6mH1ivHWrhlYduVNpUcRM2XxBQv8ll1TMM1Q5m6rx7U2Wep1yd fJWRws/YobZbwdCFUbJ2Xe3FAbY/MnsvflYRGi0lXKYOP2EKiVSOSFdsevp1Uapy69cKmV J0QrMAwIy2JIwaA9kcOboPj+cjWngOwnMYOOBXmITRfzPFpJMSmtuARq9hglVQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy10vyzzfgm; Wed, 4 Sep 2024 20:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTjkb082689; Wed, 4 Sep 2024 20:29:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTjJb082686; Wed, 4 Sep 2024 20:29:45 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:45 GMT Message-Id: <202409042029.484KTjJb082686@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 639494a3c1e6 - releng/13.3 - ctl: avoid heap info leak in ctl_request_sense 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 639494a3c1e6d4e9341ecd551573e403bfc8c6d4 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=639494a3c1e6d4e9341ecd551573e403bfc8c6d4 commit 639494a3c1e6d4e9341ecd551573e403bfc8c6d4 Author: Ed Maste AuthorDate: 2024-08-20 18:12:47 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:19 +0000 ctl: avoid heap info leak in ctl_request_sense Previously 3 bytes of data from the heap could be leaked to ctl consumers. Reported by: Synacktiv Reviewed by: asomers, mav Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46091 (cherry picked from commit db87c98168b1605f067d283fa36a710369c3849d) (cherry picked from commit 131b7dcb2fbf8f15815387f60536d9cc16585b0d) (cherry picked from commit 51768dc31df6379aa4a1447a15f054508d16b4b1) Approved by: so --- sys/cam/ctl/ctl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 5d4dbd295f20..b0f34cafac80 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -9341,14 +9341,8 @@ ctl_request_sense(struct ctl_scsiio *ctsio) sense_ptr = (struct scsi_sense_data *)ctsio->kern_data_ptr; ctsio->kern_sg_entries = 0; ctsio->kern_rel_offset = 0; - - /* - * struct scsi_sense_data, which is currently set to 256 bytes, is - * larger than the largest allowed value for the length field in the - * REQUEST SENSE CDB, which is 252 bytes as of SPC-4. - */ - ctsio->kern_data_len = cdb->length; - ctsio->kern_total_len = cdb->length; + ctsio->kern_data_len = ctsio->kern_total_len = + MIN(cdb->length, sizeof(*sense_ptr)); /* * If we don't have a LUN, we don't have any pending sense. From nobody Wed Sep 4 20:29:46 2024 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 4WzYy24vVxz5VKZ9; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy21xDpz4JLV; Wed, 4 Sep 2024 20:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481786; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WkToUt0t76w1eqLpMfpf7sPzG/Dm8hwgI9EImfeO5/0=; b=MbfnP0vZAxvA+AJvoBFPhgEXv1LIFN2Zp1nVZzXfbh4+MRIvGlnKVzVVHXEF5vj/0zjyu4 uYjrG9TXiMJcEFYllnAjPSD7xNORjDVPXzA9UAGlIl085TOvw+wAYAjC5I2JHP91AwDsQB gFan7u2oOKjMv8nPsPZ/uAyn4qSRuIlOT6jhLF2F/bvb2WixGMxD1JwwsRFl8KKLYJjmtI vhyCpIomfD/8NWzpVgwSkiwXG0tQXOfYNOHNhYATCC6BAelQ3JuDhvMkJ6NmvHfj10HOr1 h7Wj73mIoXKmTuIEGiR40D8KUjIb6mqYTroPTpjIwao2Qr9xpDLuhnXPEppShA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481786; a=rsa-sha256; cv=none; b=YOsOdcPplXwwwmaVagfJ0T9pD4HodwY6MfoLxKKZJyvLG2Guc3Qnx1X4VH8l/ZhAo9p6aO 30Mxlfep0DETTH89bpR3I4XkWDILwfkzEPqPpcvPoeOucpS48f1bq0CrLRmubWaV2A40LH qrQbZhO/H5oAmBnqO1NcBoTMxR9U9zlI/2dI+iLZNyTMcGCEdSo89gg8NOEjiNjpN4mQj7 +KRooRFEuMMQ3q7HkdBmRoeBSqWtsaucQvx6BtPLJYx3BlU8ErqwM8+TJsRivyREqRgQPj apyLrtdwmsROuVQQ+DW2R47LzGkDfA75ZGnEXBpqkhqF73WVBaNncIJ0sgbNjg== 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=1725481786; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WkToUt0t76w1eqLpMfpf7sPzG/Dm8hwgI9EImfeO5/0=; b=s4pHBciLBRKd12jIWTQ5V6CdSi9+Cas+46W6s65Ei4OtEG7ZXmZnp67gBNyQaASLvz6+nE Wah3r1xTfvOHdK1/+Vnl7f4gMkJxnXvf8m1Ms/4hVwTL1P3vp/9AUgW44ebJhQO2EKSj5S 88MhZV1wPf/nSx3WBVnm4LTa/haLegwkZoSzVGLK4R+NYUoAZVS7rqwykYBOMVQMeXiEvD IprAMhdAIpnKNimIhZfdGouhDcD6C5wBneAsR5wtuBiKWBNv2ZknMSAMDRYZJiW1vyGq2A BZGh/oMMAtJ8PS10I0do+22G1NA7cBeuZ92VLLdZWIjCyIyiJePNQJSHSHXOnw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy21VypzdyG; Wed, 4 Sep 2024 20:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTkLb082744; Wed, 4 Sep 2024 20:29:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTk8U082741; Wed, 4 Sep 2024 20:29:46 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:46 GMT Message-Id: <202409042029.484KTk8U082741@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 5d6576f4f000 - releng/13.3 - bhyve: fix off by one error in pci_xhci 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 5d6576f4f000104802c018a77ca119357f9bcc6b Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5d6576f4f000104802c018a77ca119357f9bcc6b commit 5d6576f4f000104802c018a77ca119357f9bcc6b Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:24 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) (cherry picked from commit 90af1336ed5e3c8556147325c4841c68639c4b63) (cherry picked from commit 5920b7e6eea1e1c46b78656ef75944fc0709e887) Approved by: so --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 58f2d53eb9b5..93161affd732 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -659,7 +659,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1201,7 +1201,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 20:29:47 2024 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 4WzYy34nJvz5VKmr; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy333Qlz4JQn; Wed, 4 Sep 2024 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KRWtDEiPH52NeRINSEEUeu1Ve0NpTvlsH2EFntNyK58=; b=qsoRuk/9rN0I3XFwfKWMcCuHJecpZ/Wu1TPMPzklf709hWmWZBelI6f66MDI1LYErMvGyg nD/ql5FclfsUhb9FMQvpsE0P4uyQmz+V3OqrFp3S4Bue4emWBc6nMwFfAQXy04a3gcjVaF OWlfbccI3zXESU8FULHhc6/EvpcW9sRL0Oin3HILTO4Y2Ij3Indiw8DWLk5DwNLIx6IzxF 6aZPJnfRGTz1JpXAahhmvM5eJ1QR9W+9zk7iE0sILISTEsBgU5CR/474uVHZQreIl91O75 8eJ8KZApjMry/PsKvt/J917gXQRFJyPrHROLGrCD+no/WPX0iIAG8nglXnruTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481787; a=rsa-sha256; cv=none; b=DzbJRIC7J4DoqQVKw/sPweV09bIEmrNaVHD2UIY8xzlgILsPimf/oRubMa9Eb8j9Ron1qR PDlWsfxT/Jb+g0pxSsfAZ55ybu3nXfq1x36K47Xrm64dODkUshHasnVfxjATqP9GTpINqw kUXCiyGsoW4dzeCWjh9BLfC1naet5PDy8R93UwfFM5dRe83iGKkdNRqqHtfQRaUKf4sAEs h5F+VWi4fAEq8lMTx+SW0w4iI2Iq7dJiT3ZgANLFfGKNQsQmmtxn0JhGq4QY6ApnKtkrLO p7zUjTwH67L1VzhAHUFKRe2/FkyfI/dAMY0zuMxYgoHSLIM6ai4BhTUKhqPGTA== 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=1725481787; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KRWtDEiPH52NeRINSEEUeu1Ve0NpTvlsH2EFntNyK58=; b=q+df4Rvd6J1J2464FXfMd8OaKZ+PUpj2C0kpIkkhAq2VUvcSsowHi1K2M9p6ZG/K8CTgFi E63QIIeu6ZKXAEMi3Xtmbnjuqa+izM188kyP0f1aRapFKto6KBOstMLGdi2s4Dt4mWldNn //otWoN4Un+RrHxRMNlLSrUX6PhSR39O5d2l8Z8MQZ7HzULp6j74n12Hyuaj/ssC5RArBo R0t5S2IYtJBtdbb5feSXQGEnuZndxctyWm0rkannrsc5rwropy8NLWzi5Hf+MFSMjmc9Ec vNVfeMnB8Ow4Mf8kTzebh8E+zUkP3Zf+zbcy4vJr7LJivu8bi+vPJErjmC8Bdg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy32KxKzfBB; Wed, 4 Sep 2024 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTlBU082794; Wed, 4 Sep 2024 20:29:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTlEl082791; Wed, 4 Sep 2024 20:29:47 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:47 GMT Message-Id: <202409042029.484KTlEl082791@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 4c07dbe5b0de - releng/13.3 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 4c07dbe5b0dedbd193953c313320dc65532770c6 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4c07dbe5b0dedbd193953c313320dc65532770c6 commit 4c07dbe5b0dedbd193953c313320dc65532770c6 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:29 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) (cherry picked from commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63) (cherry picked from commit 5f49630fef5fd2358e8bc96d1b5a343d8225d5b5) Approved by: so --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 94050beee7dd..0ab5d16503ad 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4289,8 +4289,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4350,7 +4349,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4390,14 +4389,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4490,7 +4486,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 20:29:48 2024 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 4WzYy45NKWz5VKcS; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy43Y3Nz4JZ9; Wed, 4 Sep 2024 20:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YzmQIheVXA372VflWuFQ5yoXlhu97nAXE4uGdSV+2C0=; b=iyWwsOjuB9CrHlHCJJPwfaQDaB7gie9GBVn42XGCNI42gpsskT6DuoU8BFoPOL2TTUzRWp 8wkvetTvio1Mg2R69LUld4yH8bdEg0OpAiCP908R3kvIe7ZoZn9XrwutgtoTvBchkUCwVY Hc0e3H1+u1UMyLB4JOatsXJAtp44PHQXa7JHdZUm67Cfdt6p5U3UHEtessWKVikQH/Nsgg O+2OXLBtPCTfcYeEacZrO/wpOUK7LExx5j9pp3T+B2PpGZV8R0aXE/unB9sqNPzw/IC0Rj DMZRjOBEQHsEQ6MDc/LcYUUtqGaL/Z0aSshQumA+9ExGoEff2LxbH46jNDpnrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481788; a=rsa-sha256; cv=none; b=lF6NvsT1/fO+lcBqw74+XCI9CXNt4u0vvYE3zK6IJfmzikSYjdJUrf7qCxL4XcsBgjir3Z uHL3R2+gNSI1Jl0zpqd/EAfdVWrvAbChRvMNzwohb28rr0fZXPWqSn2Nax+5/n+sPcy/8a XCLy/tDGuHKGu8vRJf0lnyGnRAjKqGm8r1tv1VNj7zDdeOWbhGTS3qzSqxEKy5HWsoeybO VQIplM1qwxdVGnfnhBrmRw+1swGtk38zpRz0WqdDfpbl0L0kTr439+a+Lte71I6ZHz3BVH ZY9LRCK2ATF4NSU7qD5nI76srJwtvuRIFOMJmK1ltjCCzsVvk+6yGAkMoYCSyA== 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=1725481788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YzmQIheVXA372VflWuFQ5yoXlhu97nAXE4uGdSV+2C0=; b=lzMRi/SXu6LjOV7qdT/GzXIFKlBw+BlLvhw1tAXHYS6ORW0OXPdY8kVSOa6aTgyN0pvZ+6 iz0xVJDrn8wzvgd55df+Lab9P835l8En+HUvixHCBgJThdU3v1WTuQtRZJ4NAWg2+V9+64 8NeSSD4YR1t8a4fHuGygSVqnd1czUhVDRCRIdKOhT0OI6fejbMyK2OdoFTyylUs2rYs0gu Z1TOcUKxDiPcBrPM5yjiwSubDvSlpGnySfdwNXXcmxRuc3tg0sXGTj2LYcwBPp7fTk699z c+t7Dbn6Ijuz/kLFcA7mLwuy2QQI+itTpQEP/fomP/cIyMc6nTLNa9ckakpANQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy439Z0zdyH; Wed, 4 Sep 2024 20:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTmxq082859; Wed, 4 Sep 2024 20:29:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTm2i082856; Wed, 4 Sep 2024 20:29:48 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:48 GMT Message-Id: <202409042029.484KTm2i082856@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 01a7233a398a - releng/13.3 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 01a7233a398a599827c25c84d1ce5ae4fe05e764 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=01a7233a398a599827c25c84d1ce5ae4fe05e764 commit 01a7233a398a599827c25c84d1ce5ae4fe05e764 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:29 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) (cherry picked from commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed) (cherry picked from commit 40615bcae9e7f41ca857c773e804db9bd7269581) Approved by: so --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 0ab5d16503ad..7f13dd80080a 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4380,39 +4380,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4465,7 +4475,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4482,11 +4491,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 20:29:49 2024 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 4WzYy5682pz5VKcT; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy54j0nz4JZQ; Wed, 4 Sep 2024 20:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KklAbJcYelKzN4WCYTtDnIkVDctr1lt8/uiGKWxeFZc=; b=pABwo2+wD5C1SihShvTr02hBz6MlMTuGrOHeCNL5jUNJyLeJuoH1HZnLO78S+yr/2krBHZ N0fovl6mC7acVkXHCFNr0dfUkKiS1mZAQMf0FZq3zF9bg2DzyYswYd++PcfRKPC+f3DQmQ gRtYsKxzq8LbfVl3r04ZmTy4Xei9qD25JkDUr2FByf2cradu97kbKtPfDwCzW556cEWdnW XDLAUqQruN4h2Z2rpQpysJ+Ft2YzPxFG36c538Mi+0J7mVThEEeUSyH0ie5rbrFOdKSh+E wmKypjbR0VXHcetJEb8RnVLziIZVwbXlupM0Px07kg88rABVCrrAV9FNgOEnLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481789; a=rsa-sha256; cv=none; b=nY5/5dWCO1/NjolhsKqYWQoQYUH7SsVHeQOVbfNkmbeQhwQh6PbV5Ea2rod7nwzUP8+S3+ gwwMYEttbe3zYwosZUKS10dNfqRogFsPHlRnlQSq7tbnaossSqB9ZMwq4m/Hi4txHh7JXn GacfgOA9yaOE/QQOnzxG607a6TS1oowOHpEIbipNNVrct224bRY4bzXT4qlXyDmtKr4ag/ eJYr2yil5pO8fLbUfOffMsPS3CIiw6CT+d/bI6o30C0GWyqnYG/PaHZOjmKenKgQh0LTlS 6F4eCgBmNkz+ECXQLsFjUom5qHxo26AruT8MQdQtUYztdVJOJZKK2xUnC1p2DQ== 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=1725481789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KklAbJcYelKzN4WCYTtDnIkVDctr1lt8/uiGKWxeFZc=; b=jY0eR1JFEXeXvaJYElyj9cD73FIyNm/A9I8SKo7rJ8Szmtff0JNC6n8bXSXJzCcA5f2+u2 YO7GkImjH9l4XAI+pKv/qspjjunJQQjeTIdwFXZuX7UfdvXcH9UpzJkRf0Yk+JmyT6yH7j 4xmOttnSLTA/11ju9j8AUzMcuEIMq1ddYYILyWvXUF5HDhzn0H8gDWRcKYem4CZpluSE8m pTNazqREyB7vxUEMqa7mtpDIr0fF35zZl7kLc9xlh49GJOWnSCUKAOcA2Adn2Ji3DkHQpn 3K/PE+dVnuGBpLJCLMvLrW0CddTEIBxkUPHPyF6s5ICmb7hKoxHaBEXSIju0XQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy54KRkzfkQ; Wed, 4 Sep 2024 20:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTn2N082904; Wed, 4 Sep 2024 20:29:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTnZw082901; Wed, 4 Sep 2024 20:29:49 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:49 GMT Message-Id: <202409042029.484KTnZw082901@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: aba74e58f757 - releng/13.3 - umtx: shm: Prevent reference counting 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: aba74e58f757b3cdfd63cc1d0e4b877c0355e9a2 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=aba74e58f757b3cdfd63cc1d0e4b877c0355e9a2 commit aba74e58f757b3cdfd63cc1d0e4b877c0355e9a2 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:29 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) (cherry picked from commit b20ae160872071fc20e5dde27051792177057fa5) (cherry picked from commit 8cf43dcd3db6f02f8dc3f0aa23965db107190789) Approved by: so --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 7f13dd80080a..47fb595f433f 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4330,8 +4330,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4351,22 +4360,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4466,11 +4487,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4484,12 +4512,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4560,13 +4596,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 20:29:50 2024 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 4WzYy70rWXz5VKmx; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy65tKPz4JRn; Wed, 4 Sep 2024 20:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481790; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1gy6MgbdYOtvyAzXq7wgq1oCdlfZFmEzgZPTrkwHQM0=; b=xn0RfK2bQKqDcVs/SIsm7aweozPsoSBzKw2NF0XFNoZA+aJFEgdUpMZz2sy9Dtb1b4hYbU tdToSsoDH+GpaBb1E9UveO1XOvZkrKnKmj3ADon79x2O4dW3Mf8BKceCjKs3U2LU6wVMS1 ekB4+u+3Zw8dBikFOoLZasmQ0I5Pv4GH0KaPwf1joJstJ81NHlB6FID4Pr0bkqzI3WEU9Y VRQvoNlLMDogxNjBlh2HcQ5ygtD9xNCOJO84hjLh9RTyhh+WosgFZA3nSoq7PJvDV7f1X4 C3LyNT+mb+o5fLUFJR8GSGQEptXGOVw1g+Ia3xG+yuMpINzOynd1Ixj2GZ8GBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481790; a=rsa-sha256; cv=none; b=aasgtfScbzOO/sAqS7Qz5fRKp/4eu6ydi7d2/Q0QVM87QbKaEVlRXfW6cbeU81thcxjzPu Fea+TP+JONa7RuIHiT35kmBh2tJsk22G/cG0TEAzxRcOpsM/3Gg8rn5yRA1+Jqe+HFknIG XFJiGG6ZAro6Kyu2H8+cFEEBIi1U44dCKAhpwRKku4yyBdAWhUNI4+BrmqRNnkP6z4K0sv +c72IYaeP4tFc1jz7LQ+cQVW/Fj7Ub8xHppi304LTOv30EISQYXV50TylQfw8hNFlJZ2WS DOFVTP6FixF7HSmbgJS5YQnnRrLH3gC6EF+rJlOHqceT2Iafg4ayeJgQW/cH+A== 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=1725481790; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1gy6MgbdYOtvyAzXq7wgq1oCdlfZFmEzgZPTrkwHQM0=; b=Whjvz35ANSNCpSb1V1JYexkfL/Mgg6yOCFNxJtJD7uwNae/e0xr85GWrojctSEPK6k5pZ0 Yt7U9ZrguTLRmodINcaAhTzCa5icgUXbzLgKJUsRV4w9ndF73ZpqgEkPqtBShaFlTnb4vm ZRjnFtZY+PsQQFGZlnr4LnbItmw3jbKeGSPwkdK6rzVrZH3r3v0AwVrjQgMsv9ZHHKHtZs sVexGqpphGQTvdjAmfU23R2MtWwKoxlUj6XrIFXypYpbkWV2QS1Qg/t+XMtJTdCCx9CKgh VGLmBXdJaFwMkwPth+H5J0LVzu4Bq8DqQnANhVVvOcdCZR+K9chgdRKUNlxobw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy65Rt9zfmr; Wed, 4 Sep 2024 20:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KToF1082958; Wed, 4 Sep 2024 20:29:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTofa082955; Wed, 4 Sep 2024 20:29:50 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:50 GMT Message-Id: <202409042029.484KTofa082955@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 8fd0fa88b5a6 - releng/13.3 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 8fd0fa88b5a63464165f813df83d371f89853d1b Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8fd0fa88b5a63464165f813df83d371f89853d1b commit 8fd0fa88b5a63464165f813df83d371f89853d1b Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:29 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) (cherry picked from commit 4938f554469bc81783998143968ec3eba2a43def) (cherry picked from commit a73a70472c47877d57d090ef77ae503fe75e9f41) Approved by: so --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 47fb595f433f..29931499fcbe 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4356,7 +4356,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4404,7 +4404,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 20:29:51 2024 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 4WzYy81kQSz5VKqJ; Wed, 04 Sep 2024 20:29: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzYy76sHXz4JXG; Wed, 4 Sep 2024 20:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725481792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m2vIxlcMNu8uAGF8T9T1qHEBLCEHMSp4ajh/ZIN3niA=; b=lHweWjb4qiGljxnDC/ZSan8sFHk5qYrry9RueuUvKKI+7KZ1/AF9HpSLad1exCe5k6Q04o 0lrI0pEzA8GrG2QtsN2D3qpBMxnOPv+i4IXdrUTFLgQa/Fd0DOiHpd16QGTfPH71YmLgOI 5VUK+rqYb6QVnFSGHOkN7BzT8GsRFWJv4x1HsX/43o9rxbEaljDYgChyIdOGlQHm2PiC3P SdLHP7cYvfFxNQbynr72oa+SVsv46/BBDtQqzjmK7eZL+XZRew4vQirZC5uQPglZhBNpRk DEF2CjjQpYxKKElGhbq+z5vaRsB89lpXPjh0R0Eql+x7hgSn0SZlsmWOhwDDUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725481792; a=rsa-sha256; cv=none; b=X1mkZmKjq+GtriQQg5853HY4DUR+VS3W8yWAexbuiSIHgzTyd5cNew2iEyAF0U9QLYGGHP tHOdjR+R2k87BeJGeJNnsxun23IvhrpuJq0NkQegiOmEvqvtdx/OvK6TiNVkFgeIMOtd2/ 1Cm0u4qJ5PHHaTdu3l2yV7/ATE84WlTuPdJgKLe+jMhhUmRLUPnHEJaoFnSuIVnl3oYPJx 0trksV7GqdhD7B5yDPiShlMh7kNOZMDQxe89ETJ04jdC5xl0nHUZMGX9YEt/hLR6XlpzTz 2D/38680wc1pwb6yBawBnghto6ModoezNSz6LcB8ZcDUHVhFDZENvDivk+q8nQ== 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=1725481792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=m2vIxlcMNu8uAGF8T9T1qHEBLCEHMSp4ajh/ZIN3niA=; b=XiGwDrSWHOpMHMwrWhD54cQjrdmhzjVvU/5uI9uoxI/X4k/LjUIpu9g8CgF6IXxriADm4Y Sy3p64HRG8ceDTtxnVTNS0FcsrrGRgYN9bVkckhNQBMopvJJ8oyIyGWaqp6V71BfguJqfy vsio6meCFsmtWvCuLnsz9Y6d+XbmuJ0jzRWvTZF5X5/N6HvQdAD8+XDCSJRwFfpsqb9DFC Y41vytcQ1pDHkTlBTw+N21JUUlalr64j5b3flJcbEJppZaSbup7r+KAwf+onaJLHR5PZdm /34YYXfQKMG8wFbAXSJolex3+DTDA19ZvZ2jJRZ55XUApHuVitkUdA9t81f5Dg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzYy76TCkzfkR; Wed, 4 Sep 2024 20:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KTprL083005; Wed, 4 Sep 2024 20:29:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KTp8b083002; Wed, 4 Sep 2024 20:29:51 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:29:51 GMT Message-Id: <202409042029.484KTp8b083002@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 811a30c55a20 - releng/13.3 - Add UPDATING entries and bump revision 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 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/releng/13.3 X-Git-Reftype: branch X-Git-Commit: 811a30c55a20b5e0f68b806a2b2ee4e05044e735 Auto-Submitted: auto-generated The branch releng/13.3 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=811a30c55a20b5e0f68b806a2b2ee4e05044e735 commit 811a30c55a20b5e0f68b806a2b2ee4e05044e735 Author: Ed Maste AuthorDate: 2024-09-04 19:32:29 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:29:29 +0000 Add UPDATING entries and bump revision EN-24:15.calendar SA-24:09.libnv SA-24:11.ctl SA-24:12.bhyve SA-24:14.umtx Approved by: so --- UPDATING | 17 +++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 8ec49065a2e0..d062be76c45c 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,23 @@ 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. +20240904: + 13.3-RELEASE-p6 EN-24:15.calendar + SA-24:09.libnv + SA-24:11.ctl + SA-24:12.bhyve + SA-24:14.umtx + + cron(8) / periodic(8) session login [EN-24:15.calendar] + + Multiple vulnerabilities in libnv [SA-24:09.libnv] + + Multiple issues in ctl(4) CAM Target Layer [SA-24:11.ctl] + + bhyve(8) privileged guest escape via USB controller [SA-24:12.bhyve] + + umtx Kernel panic or Use-After-Free [SA-24:14.umtx] + 20240806: 13.3-RELEASE-p5 SA-24:05.pf SA-24:06.ktrace diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index a1f0f7b0d08e..e5e1d3897a35 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="13.3" -BRANCH="RELEASE-p5" +BRANCH="RELEASE-p6" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Sep 4 20:54:10 2024 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 4WzZVB2FzYz5VMPL; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVB1hD9z4Pfd; Wed, 4 Sep 2024 20:54:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wARvEDljJE1zPyuHknOy+xon+1GoFRVCKVmS4Pm1CbU=; b=b/i2c9VTCLgufsiszWSqqGDDCazxQlTqiz9ALubjyW/4uO8V9aALiOQc/1hPi0NVe5wh8j kEkJOT8o/Zub66M/o+tcB1fhgiANT1b+Zn3yVEgROK3w6ltyK2nw4x5+NZmK9yjrpD2IMC twU6waws9PTu2q/wyORWHngrbgBrLPZazd9Z6l3vaAjOXgtiKs69VUSGh4qPJS3xzlr2cn gvYsRm1Tt1LtIj3YQlF6XujJD3y5zRraMynZotmLdqSyWna3EZlQOFWhD3zT7Ts/670NJ0 ogzpHVvExhvQ+nFDf4R4RxeS1my0J/C11XyDHNbejP5QgfrbjgLMFQQMh3wBVA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483250; a=rsa-sha256; cv=none; b=h8Ng/o7QLGvdfpUv3hvgy/7Y+NsejRckf2B9/RmA3Djw7fhsfbXSBDSnYFhHWSpuSLYMRZ l0pvuV3EUxuScuciiTDH3QC0pfvqqwUPz8i5WMLDBN6JbB1V01oKzimMahGiyOwe7EiU1G A5G6zql620QF8mgA71r1CvfnfBRBVKysWcpLLO+QM5cs8wo839HjqmhLhBB1ihHlCAh679 B2LjIzOdDdUYmq/LhzrzaoJQwZjq7v7M6qHNlovaqkwsj+fvEWDOqfVxHoIwC/NLPD2xHO YUC40KwpcOQWB7EreUBU+i7B2KQNBs4VEzz3GZ5VPQS2G9DnbEYqC0fwakQTRg== 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=1725483250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wARvEDljJE1zPyuHknOy+xon+1GoFRVCKVmS4Pm1CbU=; b=I80eBaFfZ4h+Zwn1TVdKcdtfv+3/lTVk3hQaoeylPV0oPuzncnSdiu/n0TG7N6Sr6NTWWU LznjBDjj0boYV9Apr4//s+M2HrcqHnKEzK4FtqRqZzcTmrjHTaNs/E0aWCCXk8VfWCxZjo evU/PBNKoot/wARZxH4lOCJnTlJVJKYBsNdi4f6d/7k10ORFE4ZyGECS2+Xb47PAlwUrrw Bo+AY1JHcaqqdZtkpXGcIOPsiy2D7KY0k/ZeFLV1BHGKzR0swFDtUkt9MgYPUhkutD87kb i/4FAHy8a5lYEDGAcS+UuFq9wyoo9VkyNtXb3FWRAw8WiiB0NWM0sizx6Wa9xQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVB1HLszfvV; Wed, 4 Sep 2024 20:54:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsA4p033591; Wed, 4 Sep 2024 20:54:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsAUE033588; Wed, 4 Sep 2024 20:54:10 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:10 GMT Message-Id: <202409042054.484KsAUE033588@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d94dbaa516e0 - releng/14.0 - calendar: don't setlogin(2) in the -a user handlers 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: d94dbaa516e0c7fb05a52f1c76020165482b7bf0 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d94dbaa516e0c7fb05a52f1c76020165482b7bf0 commit d94dbaa516e0c7fb05a52f1c76020165482b7bf0 Author: Kyle Evans AuthorDate: 2024-08-05 18:43:56 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:31:04 +0000 calendar: don't setlogin(2) in the -a user handlers As of e67975d331 ("Fix 'calendar -a' in several ways."), `calendar -a` will now fork off a new process for each user and do all of its own processing in the user's own context. As a side-effect, calendar(1) started calling setlogin(2) in each of the forked processes and inadvertently hijacked the login name for the session it was running under, which was typically not a fresh session but rather that of whatever cron/periodic run spawned it. Thus, daily and security e-mails started coming from completely arbitrary user. We could create a new session, but it appears that nothing calendar(1) does really needs the login name to be clobbered; opt to just avoid the setlogin(2) call entirely rather than incur the overhead of a new session for each process. PR: 280418 Reviewed by: des, olce Fixes: e67975d331 ("Fix 'calendar -a' in several ways.") (cherry picked from commit 6cb8b61efe8899ee9194563108d0ae90c1eb89e3) (cherry picked from commit 33708452aaabca205d81eceb83e0813e5882815c) Approved by: so --- usr.bin/calendar/calendar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c index 476c0495d218..2e3baee7d57f 100644 --- a/usr.bin/calendar/calendar.c +++ b/usr.bin/calendar/calendar.c @@ -224,7 +224,7 @@ main(int argc, char *argv[]) lc = login_getpwclass(pw); if (setusercontext(lc, pw, pw->pw_uid, - LOGIN_SETALL) != 0) + LOGIN_SETALL & ~LOGIN_SETLOGIN) != 0) errx(1, "setusercontext"); setenv("HOME", pw->pw_dir, 1); cal(); From nobody Wed Sep 4 20:54:11 2024 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 4WzZVC399vz5VMTb; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVC2Q1bz4Q43; Wed, 4 Sep 2024 20:54:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bHhRH92mwxLnMjZF0vU5WRuNRGgqwzhbJosDZxfYXcY=; b=rbSWRNhspj5ZR/eTILmVpuB6KrxDfdpjrVBLgQThWcrpsmq67/EQ7ozv+ap8NRnGQ6V5jW 6XLbCoOZySn9QBCvOepjyCKy3U7nyepjbOZGyZYltRI4GFjZbkFQBSIl0FNnSt9paHwy96 czmJM56GiQHWhzU5OArOlkqIgbSZxZhgRg8Zey+4v1QTlqtI0PPN1Rb6ujRprY/L3Urm0K kjvn0rqKcVJb1oaDJT48fD5ebJKGB1WDTid1hEeUln28sMzrF2nipUfNU+9yM+qeUr5qyv +NVImo3G/zlEb+JAcdLyJFeAF9+KWZW7YzEuL/EgG4xKpfaF2NI0gScQeXQycw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483251; a=rsa-sha256; cv=none; b=kgw/3gIBZulxmAeUOaSSSGG3jWVS4/R8cnFaxUFi2zj0SFSGJ3X09ubtDzhQeRORk6pvfV iEDhoctxTBY0qTTWoogDpLug5NNFKS9LaYOxx78PH3km4UfIrjxrx5VNrVmEs6JAZYl0Ji wgqscXh8Tyv/vCSyzHHzehtBk6XucxSYT4ZVyGllpXHKVhWdgueMcc0JoYZ9YfFUhHaJOJ mqWWgzYX3AuQMOVvPSb+YS6hLt7xUQ4Z2VXq418rOAFOewwrcBIM18VJhxFm+0EHX4obcO iw/XRBuFXT0XxNXadfbr6Z5xznUdeHEGDwNqhhKWSQd5/KZdID03lJPpuZQ5/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=1725483251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bHhRH92mwxLnMjZF0vU5WRuNRGgqwzhbJosDZxfYXcY=; b=Sk+CbMdcNtKWISDq0NrZR0ifTTdjiig/7KRtKBp5DWIoQJsQFZGwJgn3mPTYCXWgiB71IV zfKw48tCc1TAj7OdKNAMJ9FsIlMOiXvC+i/R8rBhYyuREIPR/8ZfmN/me2v3kv8zl7MMKM h4jqlM/PC7HVhxwzp5PvhHWj6HUHNsjmNGpeUC9qGXBFWL5Der61FwBIhDvna/d1m43JSM FOtHQYQHqnyHozDhP3LjALm3oH3drJJEQ2/Yp04vWzemBDQXSgR9DpAjpHSxorfz9pZzzt Yhb/E4RI6Rc8OplEW5v8PEBHK5a9Cg71RJnY2TQoi+rt+535+Al90p4cw5zfrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVC1zzSzgKV; Wed, 4 Sep 2024 20:54:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsBJn033639; Wed, 4 Sep 2024 20:54:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsBjs033636; Wed, 4 Sep 2024 20:54:11 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:11 GMT Message-Id: <202409042054.484KsBjs033636@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 69d50af527c0 - releng/14.0 - libnv: allocate buffer in a safe way 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 69d50af527c0c38f7094c64aaae9b85060364f61 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=69d50af527c0c38f7094c64aaae9b85060364f61 commit 69d50af527c0c38f7094c64aaae9b85060364f61 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:48:02 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) (cherry picked from commit 371af89975e3edd1e9f57aa5efba2598b63c0d2d) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 0c76fefeebb6..9560ebc74f83 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -999,7 +999,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1092,7 +1092,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1330,10 +1330,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1360,10 +1360,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1393,7 +1393,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1440,7 +1440,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1507,7 +1507,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 57343f953e94..64078b10973e 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1313,7 +1317,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 20:54:12 2024 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 4WzZVD5Yy0z5VMrj; Wed, 04 Sep 2024 20:54:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVD3hhbz4PYj; Wed, 4 Sep 2024 20:54:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FbMFWPhh8gMk2ulyv10v8MTXLkfw80DoQ1yzCM5lNJc=; b=ensWsPoFRMeT77RwRQ39q2xNLZeTJxe1rvwK0yaCdV+1+QeJcKAdEeCnxPSOE3m0oY2QLY PcGnjxKovJkoHkyVcj8UAncytJYbMTh8jEhVj/oQjvnFk0vNIwtE1toD37MTPEqU0J4K7m 0CMiuT+Z8F6izP6A6pLD7JcPrHwLtpwMcZBZ1KtzVFx6BaOBMSq7q3dKdsuuxFPqxo89sE aLcCyJWdX7W/WxQ+sxkuts/pPGuqv3dj3YXkr6ak6sEoqsX+WYLVIauWvSla7i+5z6o3/i TyxsVz9bS1WT8MJVmavOx3ks2SB3tvErSabgjp9NDm8AyCKr7N2ERyJ3y/wGkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483252; a=rsa-sha256; cv=none; b=uNVzEeU7MU4QtMneOfgCkjmJmUzhlH7uzgVtSu2qKiAlw01y7Mdd5naO+n41kt7oHbwvI5 6SzkvoeNXx2UP2X6nqhDwSZbuWo31ZxmLydTxV49cEs6IuIAEwm444pKUNSZ4R+mm/kuJu h2SGhj9a80sG+J+xrO5CZsxgfptS8XXXVHeJ8URMjhLB5LMIZCWFu69LZw03eWuETo6ebu X/NDlKE6EQmYCKBW53CrOIasSJytdbTiDdVrwxAbm8t3SjcFjMXGgtLcUPwtYlMwU+jSGk tXfj4599kV9M/U+v/2Enl2ZoilZXNSlID0xQiRf+1kSv9Oi//pIZumMTtT+xMQ== 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=1725483252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FbMFWPhh8gMk2ulyv10v8MTXLkfw80DoQ1yzCM5lNJc=; b=o15PGSb7c9D1FglqsaXLpaSLRn/A8xDTTPU5GXUvKJeviQ2+mMFd5Cn16B9DyjL++Ax9CU jnPmGSXKPv94vWx+gjuxwSZX1QSGJmv5BmXHL47ArMazTr+XLJojxAL/YN4DtegfpAoQmm v6/1vffasUPil50NYoHafprLM9YOoYTE2+sWZuW3usDled5uJPv2KrM9wyYfVbsTd9NlwW uVbgwn1phZ1VpjbfugCzxXqxDcq5941HlEzgLIh8DQCTFyrPFMhX0HZQV0iI/gT7lv91vn Lr4A3Avw8UU6URDocybWOr7kxASCAu3QMPhty6EtY33dnihYfrxX0ubuCBoebw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVD3JjFzfjG; Wed, 4 Sep 2024 20:54:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsCrk033687; Wed, 4 Sep 2024 20:54:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsC5H033684; Wed, 4 Sep 2024 20:54:12 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:12 GMT Message-Id: <202409042054.484KsC5H033684@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b219ce1c5a93 - releng/14.0 - libnv: verify that string is null terminated 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: b219ce1c5a9349f3925daf994904d4891ad8bf9e Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b219ce1c5a9349f3925daf994904d4891ad8bf9e commit b219ce1c5a9349f3925daf994904d4891ad8bf9e Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:48:29 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) (cherry picked from commit 9c2ef102166eaab4c2531eb0ce6ffb20b82e778a) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9560ebc74f83..a977d7941aa3 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -988,6 +988,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 20:54:13 2024 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 4WzZVG0B2Xz5VMSY; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVF4lKcz4Q4d; Wed, 4 Sep 2024 20:54:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P/FncMrYdMkt8K88/v157wKV5hsLu57iZ+I0b83RcnQ=; b=ClmYmNIsHKiGsnNT2JceCOIlIxFzm3w5uMHJg/JzgdoEHXfzyUT8rcMHaw2ABczUzBeEgo pYIiX4ny2ktm/WnL7GJ3t6EYLyymqv8u7ZpqzrxM1DfZgpHDdau2PMGrppIWxGc6wTHcLz NU1ulYtQ7g5XKLX/yT5kXiYcMEfn+corz8MmjjVkU7Lku3BjjMeOBlYkFKW81GOAu1ohlO 4Qs2FSGuwuvQlhMhOYRKoCsVM6rjNcGbTWgnDiVm/hSrU5PqL2c8p7D/b4mEYg2/TaB+dq ztkv0jVcXpyVJF9i0c6r3QusbsbQvfokcklFX9zSn1zrZYQZsUSbW83fEhpqfg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483253; a=rsa-sha256; cv=none; b=LqM0qPP57IOnChMlCpzM4uF42omGpv8r1721p1iPjkHdyBEx3kxzlHL/J+icJ9PzTAfuDr M6QrWARvwJDSHzkorX997BROJoGO+bIUs1UJjn/X1Q4IK56Kd1ju8qF9i4Gt1m1FYGYV5F lrK79gEee5KtCFWfGRDFA8dtX1L1A5L+bMlxPQegvF+T2npHl8RQ9hOk6ceOv/AW7Niek1 z91YnfahlCcGPyf/TGA2johU8jfBrVDkeOQgi524yWYm73QfY2FrmojFVuCr2EhCkBCgfT uayRC6zZgeXwENr1GAJ0Lhi6NlUh4hDON5SYEgTgA0GMFJJWyGfQbcJA/hSnKQ== 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=1725483253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P/FncMrYdMkt8K88/v157wKV5hsLu57iZ+I0b83RcnQ=; b=CV0/lXIwJxzuWmqdSkh3IRz3h5y8RQE4eW8bN6D6CDzxMmrPm6tm0ol2qi4p5ylmRCeiTq pB19toiU+HwdAsdljVSPb6MseEueXz4rQhG2BiVYUHGTOTrNNhSWt96XIuhfC/sGO9WLYA rxD0VUkAeLcwTwHKsPzO3hhxPlWbEjrPxGPQ8FIYwCEOChOuoBSxps1zWqvmVyebkbgVRW UXhfcd0ZtqUB+yBJUIbd+AZMP76SNCIiIoV70p3s7SmOpUZ534m/a0Lo189ECg7paNWun4 60gckG3wRbgXfqgEIwGrnasSrTa/XJZt1rgbXHkuUsCARZKi2UoVVyJun8cxLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVF4KLdzgMq; Wed, 4 Sep 2024 20:54:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsDcP033735; Wed, 4 Sep 2024 20:54:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsDFC033732; Wed, 4 Sep 2024 20:54:13 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:13 GMT Message-Id: <202409042054.484KsDFC033732@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 429f200688ca - releng/14.0 - bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 429f200688ca621250bca2dae3602d8153858f08 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=429f200688ca621250bca2dae3602d8153858f08 commit 429f200688ca621250bca2dae3602d8153858f08 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:53:58 +0000 bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler The function tpm_ppi_mem_handler is vulnerable to buffer over-read and over-write, the MMIO handler serves the heap allocated structure tpm_ppi_qemu. The issue is that the structure size is smaller than 0x1000 and the handler does not validate the offset and size (sizeof is 0x15A while the handler allows up to 0x1000 bytes) Reported by: Synacktiv Reviewed by: corvink Security: FreeBSD-SA-24:10.bhyve Security: CVE-2024-41928 Security: HYP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45980 (cherry picked from commit a06fc21e770a482c8915411ebc98c870e42dd29b) (cherry picked from commit 6ce4821f0859eb00e1754917e1471184755b6358) Approved by: so --- usr.sbin/bhyve/tpm_ppi_qemu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/tpm_ppi_qemu.c b/usr.sbin/bhyve/tpm_ppi_qemu.c index 8bea45ea3208..11a306077108 100644 --- a/usr.sbin/bhyve/tpm_ppi_qemu.c +++ b/usr.sbin/bhyve/tpm_ppi_qemu.c @@ -26,7 +26,7 @@ #include "tpm_ppi.h" #define TPM_PPI_ADDRESS 0xFED45000 -#define TPM_PPI_SIZE 0x1000 +#define TPM_PPI_SIZE 0x400 #define TPM_PPI_FWCFG_FILE "etc/tpm/config" @@ -101,7 +101,7 @@ tpm_ppi_init(void **sc) struct tpm_ppi_fwcfg *fwcfg = NULL; int error; - ppi = calloc(1, sizeof(*ppi)); + ppi = calloc(1, TPM_PPI_SIZE); if (ppi == NULL) { warnx("%s: failed to allocate acpi region for ppi", __func__); error = ENOMEM; From nobody Wed Sep 4 20:54:14 2024 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 4WzZVG6rBKz5VMX5; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVG5mGmz4QDB; Wed, 4 Sep 2024 20:54:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I7cE7jIQWUCXO6H+A3s80+xfxHfKEe/rm1o2dz2jwmQ=; b=OIOl1KTJ051MCOwPlTVTt5711tvYo2FEXsolwd1oWgAvBvDh344+3CtIy9K4eOJykgSGzs WWs8JfqI2gEh+FIZkDaK/Y2+LQibL/Wr6GV82v5XEygt/e7rVPBDor8bnQ/4Xc+2D70thJ KCCi7xs3Lg2dWqGWhBnK56u51ri+4eYkNshaZll+V/cxf8e4IfecHtnZnic1csE6o13ltn DVnjxIX3xnoTg+L+A8S7QB5b9OHP/eekfC0hkZBj4k2UNS2FdRsxsLAkaj+xAzaGvPrFCO 0s0GXAn2PkWLxitqT00dOEWeAYeZW+GNIuNc+pakEvM8F+CIeQjsRyW3HDrN+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483254; a=rsa-sha256; cv=none; b=IYq9HhXDjENCdvF4YBoLm1dILr/BmI9+8IpW/2wcOYFWEaFAW87wKLaHbv1Iw59jKvcFPU qg0kujxt+IsuaOw02u4XyJ5Vnlu41I2FGqtTd6vciShsEktC4Ofz2ooxE/ZT7IcCunRc0s cFi86f5LMKqwQaaCjb2Lel8mfB4KKRQaC/4DT08NUxuj02A1GCS6j7FuVHL5Hedrg2qCvf mWo1NnJOx9pYvRdD0P7FdRkviecGooq2sNjIoRLO3TJMP3ejIPEraH1VKWgLMRaE5c/0cC PXW8iB8JtiX2cagrQWAcUo4k6twS1oYGThiPZCzaqlzQSGEhbr6OER6LUsCSUg== 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=1725483254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I7cE7jIQWUCXO6H+A3s80+xfxHfKEe/rm1o2dz2jwmQ=; b=htW0m1Lr+uUgmN6KcKzIpmvvSqkVMaNgTyidj3FcxnkFaTC7A6UscnyqPLhtX/C9MvUmxc Oh68dCyEp7zO4GUXtlxhU1bZ6lq+ulB1FWATyWTQa38J2/yb29XLkkTzA08qzUHlis/xCF mN7jmVo2Xoktq4YEgEIvMIiNARXHIBKVQ4liYfV9I3YGNeCCN1v0ptvT8CZh39lZC5/M0b f5BZib9DRIoVeM7EtX849Mm+prr8yzuE4fMVOYS/EUnhusGa1MEM2J8KOeMJbQwumdDIb+ 08GB8UR4psWQZCdJGLLODaVptG8E/geYxDljMfAmPL014FUKoO/VepQLmjA6cA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVG5NMCzgDK; Wed, 4 Sep 2024 20:54:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsELV033783; Wed, 4 Sep 2024 20:54:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsEdF033780; Wed, 4 Sep 2024 20:54:14 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:14 GMT Message-Id: <202409042054.484KsEdF033780@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 0a271608b328 - releng/14.0 - ctl: fix Use-After-Free in ctl_write_buffer 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 0a271608b328aa554bf9bea1a1108825cad89eec Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=0a271608b328aa554bf9bea1a1108825cad89eec commit 0a271608b328aa554bf9bea1a1108825cad89eec Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:02 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) (cherry picked from commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501) Approved by: so --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 6faecb0da0a4..004e86900342 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5673,21 +5673,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 9a87345015fa..85f4f6137810 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -410,6 +410,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 20:54:15 2024 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 4WzZVJ17Lmz5VMX7; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVH6BHkz4Q53; Wed, 4 Sep 2024 20:54:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483255; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y/XwN6+0MODEiUwqBsFd24/63fttvDz0lV0SnP8RLLE=; b=f+mHP8Vm+xPTyeozdKfkJqb8BnE/CcMrHqQ0R9a+jVVEzswgDhsRVm9vPg0CTLGFewT05n 4+yjPi6aVQA5xOZ6YofJdjVTCnPL6CA1h+bUSqIh9C4rBHqkJt/xsYJTDGyf9AoK34pL2l B07wnZzedx7DtH6wcJnO06qC2q1jgl8fG1Lq6UX6TmRE3+CnC54VjZ5hY3Xw1pnxEvCVD2 Duu783vQBcj6pHvjPiDt+w4GMFn4oaRKXzIMmzPa1rF6jTJ6H/va0rOp2XnTNu1Txqd+iu jNUXQvY2IXdoC/djZz6/XGkIeCkhB93YZFjjh4Mnz8HWuzxBwrV/IwBM9bOAFw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483255; a=rsa-sha256; cv=none; b=pBWaz6GdTRSOHE696uRzCE7wUDaz0B5V3YIiPeec4C/MQhHeJ1BM0+7zBbQHaCJONs2s3H hjx9JNYfOKxv3bouUDS11NAXZ7waJZk3/wNYkfqaE0VIqTgxuGPi36NC+WGjwZOZ7Kcrio YSRJbWArGfPGRR2HT08o5iafhVvwcSV7LGSPfXz3VzuEoYk8XWGuKex+bJaUOeEV0LKlnB /teaCbc2hvgP95pQwAjDBEbwNd33/0dXV6xZ92s1oX5Wra2BLmwwv4VpM+ZFREc52TLNie Tfrx81ZaGOjavsABLJhdR020Uq5nrnc8sycBqqvMLYWmq2GQhO9GZOax7bbAVA== 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=1725483255; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y/XwN6+0MODEiUwqBsFd24/63fttvDz0lV0SnP8RLLE=; b=bjYlOf+e2nt7+lCRd2qrCG9u2+D0GD14KNVKsdKv6JXdC3deI5SWwEh9aN/1s4oVG4Lkd9 PO/AN0hcOHtOEfyXT32ZZGYBAN7NZ+/xaIfkuOVTY/N9oOBpaggncb4e/flDEhn4X7SwOE c+6gJNG84wvKxmf5+/PEi8QLYSkTz7UcjINqFBH9e7KEKxnUjorVKn1dR6wTx/T5bVc7dJ uup7XWz5T6+3phcZLbGHVZqiwKYQtUthQS/V16s8KiWxqdNRS9a99xH78Zd/y3oYMp+rvO CqN6VbG0mHfu4Lzb7122dCrneFVgL4e7n4e9uxKsYVHxkkOTNwRJBtaS5KqePA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVH5prBzgYB; Wed, 4 Sep 2024 20:54:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsF8n033835; Wed, 4 Sep 2024 20:54:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsFKi033832; Wed, 4 Sep 2024 20:54:15 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:15 GMT Message-Id: <202409042054.484KsFKi033832@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: f7aa7c38318c - releng/14.0 - ctl: fix memory disclosure in read/write buffer commands 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: f7aa7c38318c700cc6915b4a48941a6b9a0807c0 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f7aa7c38318c700cc6915b4a48941a6b9a0807c0 commit f7aa7c38318c700cc6915b4a48941a6b9a0807c0 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:02 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) (cherry picked from commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5) Approved by: so --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 004e86900342..f48fc203b90d 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5634,7 +5634,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5675,7 +5675,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 20:54:16 2024 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 4WzZVK1rpZz5VMsG; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVK0cTPz4Q5X; Wed, 4 Sep 2024 20:54:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VgsABGMfzIlRaotesFlPasoGAsfntzG69egjUcpYIzg=; b=ClN8TDq5bfDI74ltlz5XUH4gAhljXYQnxJYD+JwAVs9v9QqUN+0GrAEcCf7qCM6recZ0gY GcH7BgVC9dbfmlMAj1GsmIs4CEaVOf6w3wBbLyo8bSW5rdImvhPYaP7Gd/F9LkGeyQNVG9 XIrxPr4Ki/FR++9TqiDF+hLEEH/h8y96EzUAISt6yelQOsvSRp2Q4CZc843s3WPV+gyUeK JOJejZIpTipgGfNSFnI6LmPeoLZsW+83iCwI5NYBmcKlXMEvror8FS0EQnJd2fmZVg8TDL 77GvxNRT3JlmLzdgGddpz8eDDjwb1/sfJHr5alWloAqj1lE+BSprkXt7bUB4UA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483257; a=rsa-sha256; cv=none; b=jfsUyzOqGYYf0hv5njfYOKCb07/iz5j1HV1b3canmF+jNRL7tNUYYkHuMvNLcHgTi5jB+z tDtcN0WRIypchiqRtJbpOwjkaL9hbL/V9CSkWF8VBD/6MqfkkP2pcVcGNSeHcCO00bESlX CWn+nvgFpsTGUfj5OKT+2H885acJ4Cr1XmEly74VX9qo3E5uxqc3E9QQA5JqoB0oXfNmWW QlreOR+uH0x3Sk6Vr0w9RlZz9SXRBwQ95t4l6YyANZFFfMCyRtJe7sOO3jYwbzCTIgjd2B Q3mqMxnO+lythZtMP2yxd+D0ODhAc62GvoByo0fyDhzycdzD7r0zmJi2NiGFaw== 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=1725483257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VgsABGMfzIlRaotesFlPasoGAsfntzG69egjUcpYIzg=; b=Xz8raQYp9YUZYB3JSOU/5/VhYfNCKRXJOmITgEJfAD/4A2VUBrA+l8/PSoHzLbymWG+KhQ rlpmvuGuoF5jFaq9MPA/aVjOaS/GZKdWXW+rdfRZGfcRTNiZmBqaa98P79hQoXNWFVsPP2 RlNLkHiP70nyW4vjc1ISVtzUOxHefQGu+1kYPRJDMyiGG2SonuaJ3d2QDp0PKegKLS9WLr dyBn/1wgXbyit6QwwEopbjg2jxovqtefsGD5kGYoclOuzDBg1u79bdgqtIIapYaQLRaW+0 W93nvld6/dpEu7dG6QP/D+FilYEGwAHNJuHNB2PVwkYxqEdPi8TkghMYJMGhzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVK07GVzgH1; Wed, 4 Sep 2024 20:54:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsG2C033880; Wed, 4 Sep 2024 20:54:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsGwQ033877; Wed, 4 Sep 2024 20:54:16 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:16 GMT Message-Id: <202409042054.484KsGwQ033877@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 9a77f052cab7 - releng/14.0 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 9a77f052cab78165b39e6c6c392381991167e21c Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=9a77f052cab78165b39e6c6c392381991167e21c commit 9a77f052cab78165b39e6c6c392381991167e21c Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:02 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) (cherry picked from commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0) Approved by: so --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index f48fc203b90d..5f5987e515c0 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7514,20 +7514,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 20:54:18 2024 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 4WzZVL4Fzkz5VMSf; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVL1jhzz4QJx; Wed, 4 Sep 2024 20:54:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5jZsOch6SNlIMqrgTPr30XJl2L3WSyk+yz7OZXLLogM=; b=nXOjAEkzDCjH4mTiYdfacxqh8eSpEka1B0tzWdbwMBza54Uc/vwev72Y7MrKec8vH53hoa 4qLP/CrfCQYcJ84RpU6sEzZ1XQ7hdlwsOuQTUy5DXvz8kJmCgLEr+L7BsUm+9gHdJP46wl ERfaimO/hyVrOWPfh2zYun2fx/TJvQnv9CHTFPDt9xS0mKT7buESbVuE/s5xbCQcdS0+So zOxHIOpOSny0N4qiicS9wuh6ZFXYgR0/rBosUtuLxjs6hZxISRwb7KH/cXkoAsnrFrTsw7 V41qXjNfpP1kbkl+it+UPRNTT1CEIqWhqzsjUPV1mdIFC3tWd1xjt0Vpbl2cRA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483258; a=rsa-sha256; cv=none; b=i7BVAd4z1IcUCLA+J8sB+rYWtBEfxADamlIDmDgZWF6A2KnWUt/F5ejWlovPPeMhquFV7R OAO0cpNj/gm0WRAG2j9qt5ZykTHYDHVozcqpHDeAPd2xXQucCswxKtpAOM8+eP5Y27QQkq K+cgHEhVUH8uoAlZe/ZP8hcf22Eg5VKcu/P+pBYWgWaE7neajhlqJkW7Qq32yZITH9M965 PINVOu6bCXF6OQp5XdrlRF1DGJrXnnKLL/qfN9SNRqQpBmDNW2U3HjxMJ9JqrC6VR55ABY eU8N5NF5i1lPccQz0nfzcGcXlC4X8nyo/yAZktDdw6wV2IvNlrhOWrxVjy3GSQ== 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=1725483258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5jZsOch6SNlIMqrgTPr30XJl2L3WSyk+yz7OZXLLogM=; b=yZ82GM16Bz6ld8HjjH9nVf2zu1qZ464lelYRrD+eOZrQ/yt+VSmZLwywvJFHNCdLTXJDQX /uFNSyrb5zNj3ffC2pWHjD/a67Jgb6iFFnsq8sRlVz0CYWfnhdL8J1rXzM4jmn24Q7+2rL p3ZfrlGZxSYV28vASMvLM4FVhNmdUnghQ+fW7G4VM0bQjns76HWc8jkXZQOOvmM9wiS/rP OpvvGpxFEt8MFBirQ/wbDqNX/TgHfJm4rEQdM6SCHzEYkqwVmaN3WY9H0ZfSRz1lno4iRT 2YYY7I66T6hfrZ0DrBgGOWn5+NgEDZs3bLSMubUTyxf7P06ATMoFBiBNDqaqsw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVL1Cz6zgYC; Wed, 4 Sep 2024 20:54:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsIo0033929; Wed, 4 Sep 2024 20:54:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsILt033926; Wed, 4 Sep 2024 20:54:18 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:18 GMT Message-Id: <202409042054.484KsILt033926@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 4c60b8289d0e - releng/14.0 - ctl: avoid heap info leak in ctl_request_sense 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 4c60b8289d0eaa4eb080ad96a7089635a691eee5 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=4c60b8289d0eaa4eb080ad96a7089635a691eee5 commit 4c60b8289d0eaa4eb080ad96a7089635a691eee5 Author: Ed Maste AuthorDate: 2024-08-20 18:12:47 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:02 +0000 ctl: avoid heap info leak in ctl_request_sense Previously 3 bytes of data from the heap could be leaked to ctl consumers. Reported by: Synacktiv Reviewed by: asomers, mav Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46091 (cherry picked from commit db87c98168b1605f067d283fa36a710369c3849d) (cherry picked from commit 131b7dcb2fbf8f15815387f60536d9cc16585b0d) Approved by: so --- sys/cam/ctl/ctl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 5f5987e515c0..4706b424880f 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -9342,14 +9342,8 @@ ctl_request_sense(struct ctl_scsiio *ctsio) sense_ptr = (struct scsi_sense_data *)ctsio->kern_data_ptr; ctsio->kern_sg_entries = 0; ctsio->kern_rel_offset = 0; - - /* - * struct scsi_sense_data, which is currently set to 256 bytes, is - * larger than the largest allowed value for the length field in the - * REQUEST SENSE CDB, which is 252 bytes as of SPC-4. - */ - ctsio->kern_data_len = cdb->length; - ctsio->kern_total_len = cdb->length; + ctsio->kern_data_len = ctsio->kern_total_len = + MIN(cdb->length, sizeof(*sense_ptr)); /* * If we don't have a LUN, we don't have any pending sense. From nobody Wed Sep 4 20:54:19 2024 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 4WzZVM4w8Cz5VMtp; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVM2LSjz4QHB; Wed, 4 Sep 2024 20:54:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ocLGRFrQZssRbMgHx1wOodltFUvNxmKmDGcdavFjaXk=; b=WXnZFqdXO36uI71znzlAbIx74RLoGOyrkIAo0LSzEiPteJjKVWDtd/l7/IwRstGd2ppvjT iBdU5JbJ24zrxeWhiGdsO3YmXpEW1PvYli+uBvc6cPkx7k9kVgx9t4KcCgHaKu56oBJbsK vUYCJWjJqV1MIQtQ4Nkyb9pB01rqptNfdKajV4MzknQDDfNwB90svI9h5xwOW7iO9Q3rzT oLEhweHpM46iJcDs7mAN/BgMVjdDeR6Hokmev3UZMuaDmUjEKCtbC5uGaVghcLgR6PWO2A WhzKItRdD4nJZW4SmV3mFjwPuKtBecJ8F6u8RHr3z2G9rB5MITgqEJ5BT36Tgg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483259; a=rsa-sha256; cv=none; b=ZdRaMpxjheRo/KC9AitT5enJKxtYVqclslbyxoIzJrjfQL2Z2o+VyJD431tRK3oigAusZB ucCAnydW2mdLAAdWxYD+dwNy9gsRhaF+nG7TWecU3HDzKnqFVdDfa8yDByOm/W/c+uc9Om WvAil+rwXKDkOKH3g+cRAN0mfSfRHvK2Ow0+Ze+8DKN8CImRkzy4lQ3qQmQ6hYm4dPOJLv QO/mZ2ll0iC/bnIxTfAIaCCosPEO7O/Xh/rv0RxEylHnC4WDO/+iBnrxSsAjOYTiaYTl2h 2+/lAiOpOWhJrUIAFx49j2eNdxuMzny1gjbC8nOUNvQkfO4pkRDUgALRmWHQww== 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=1725483259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ocLGRFrQZssRbMgHx1wOodltFUvNxmKmDGcdavFjaXk=; b=CYfr/DM9gp3QoW15ZWo8Et3nLEF4ObQC6NDMAXqHzS40gkq+lQo9XEfwQjKUn5GSRPxkD4 d8bSTXACrpkM3mRVOSQ83Xpp456pGPARU0SqiD6/bX3sfD/bxeeeKcIkQRF/ekqzwmpvEq PlcptvwRArPj38Ls3d3cVDTu7bU1rh7se8pRzczkGypeHCZb9U3optXeYGNtptymgQEKXT 0lLA6VN0vqDenODj/njF3tOXUq/agcFcy4Til8bpJlAFSPXFV5d8XyoX+DPnGDzqBHXyZO v2MFtUNQmCdQXfogKAJuam/dGPqnVtXcetavvnA4R88djPJzkoaneUJnbddCUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVM1xj4zfjH; Wed, 4 Sep 2024 20:54:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsJY8033980; Wed, 4 Sep 2024 20:54:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsJiO033977; Wed, 4 Sep 2024 20:54:19 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:19 GMT Message-Id: <202409042054.484KsJiO033977@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 1d01a6c11210 - releng/14.0 - bhyve: fix off by one error in pci_xhci 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 1d01a6c112104449c75b4da564e080021554030d Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1d01a6c112104449c75b4da564e080021554030d commit 1d01a6c112104449c75b4da564e080021554030d Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) (cherry picked from commit 90af1336ed5e3c8556147325c4841c68639c4b63) Approved by: so --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 2d37cb0f08fc..3550dc1872ae 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -660,7 +660,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1202,7 +1202,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 20:54:20 2024 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 4WzZVN4ZQBz5VMXB; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVN2xXLz4Q6N; Wed, 4 Sep 2024 20:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NuAGFyRWa5FgdFOYRuBfD5UgHrDni+rQW0QCLhZeoAc=; b=JdyaMGDR6RWl9GAIdzsyglm7Qevuu5ugrRqZtoj+H1iYkT664CxhyVvmjBqvrpXjNx1jDY V6kY1Lh0R6eCKbh5yGloeURAWUGAV2c/p5RzgdPbB7d+GEXv7vrnWLiMZTHfblbyFdsImU TkSyE9ZoDaherrRuCt1pcetlC49inA1BYuWJDSJ1oD4LAhKJt29UDTmIs6FIQQbKBNEHrU H0L65AML8FnCFzFKz2EiDJYIMIHDtzX0CIzbccw97miE7O5aLZTZHf+LNG1qjjGmzFzw1w FaK4MYq9ojTB6n32ITGoCYiblPvHm15wArFrGcwTrCVOZoRdY4K6h+Pl5uN2iQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483260; a=rsa-sha256; cv=none; b=duf+5WxG+3p0z+1N/X/dJVLd+Pt0/3ATPopY6R8LqGwPBWGUQ/P6X9Vm3LjNoDsemBsfqB fFaKlF09fhRv39yUmFsFd8QX0gZkSjcGvvtc9mAD21t5xh48TRshY0TPW8Dbcu6TWABV66 H9I2CY/Za+fkRvjJHTthzyNWfaWqo33xN3x7Tgz7lc4QqMeE6TDmAh9mnAmglJ5gBotYns WOV0qME9o7K9MErWIeecW6T3rE/5Bn41V905gGgxHkqzWC2c0d2ZXdALpEUFkeJSKW1kro mx35LSdum6PO350scBD05iTXa6olUbCNUqr879YT5FU7Y2PTcudODbQ1eImxjQ== 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=1725483260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NuAGFyRWa5FgdFOYRuBfD5UgHrDni+rQW0QCLhZeoAc=; b=GTbx9uhsmSnUO8+nVaHLwOrTH2Vn18vvDZ31397JRwFUDWwyG6WK0tuxIqIw7K1liH+KEW 3irf9Sl+4hbrGuVk7qlzCZMi4uT6u/vJrZS+R6ZWO9xKabJgcX5W7pS04DHr3gafnoAmbg Z0dPBNvUwHx0Awf2xn+gNw65+uSn4gAjOcj8HLmWw8R6WtNBpYlzqFdWY1h0LD3o8LnBOl hNXPz9HBk7XitS66keo8F0rcXPGJFb9Ruxd0Ruv7SyZeKxcyoRmyQlkIxrD8aYf/n016FB fH71UXTOxzxbXrD3Bl487hIU7kz5mLIfCkcwDU9OjD4sAy7goh1x12G1++fjXQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVN2YN0zgYx; Wed, 4 Sep 2024 20:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsKTD034035; Wed, 4 Sep 2024 20:54:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsKmr034032; Wed, 4 Sep 2024 20:54:20 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:20 GMT Message-Id: <202409042054.484KsKmr034032@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: abd3a7939117 - releng/14.0 - openssl: Avoid type errors in EAI-related name check logic. 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: abd3a79391175d473c86476b10ae4f97f948f525 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=abd3a79391175d473c86476b10ae4f97f948f525 commit abd3a79391175d473c86476b10ae4f97f948f525 Author: Viktor Dukhovni AuthorDate: 2024-06-19 11:04:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 openssl: Avoid type errors in EAI-related name check logic. The incorrectly typed data is read only, used in a compare operation, so neither remote code execution, nor memory content disclosure were possible. However, applications performing certificate name checks were vulnerable to denial of service. The GENERAL_TYPE data type is a union, and we must take care to access the correct member, based on `gen->type`, not all the member fields have the same structure, and a segfault is possible if the wrong member field is read. The code in question was lightly refactored with the intent to make it more obviously correct. Security: CVE-2024-6119 Obtained from: OpenSSL Project (cherry picked from commit 1486960d6cdb052e4fc0109a56a0597b4e902ba1) (cherry picked from commit 5946b0c6cbc77e6c5f62f5f7e635c6036e14f4d0) Approved by: so --- crypto/openssl/crypto/x509/v3_utl.c | 78 +++++++++++++++------- .../test/recipes/25-test_eai_data/kdc-cert.pem | 21 ++++++ .../recipes/25-test_eai_data/kdc-root-cert.pem | 16 +++++ .../openssl/test/recipes/25-test_eai_data/kdc.sh | 41 ++++++++++++ 4 files changed, 131 insertions(+), 25 deletions(-) diff --git a/crypto/openssl/crypto/x509/v3_utl.c b/crypto/openssl/crypto/x509/v3_utl.c index 6e4ef26ed608..304463d572c6 100644 --- a/crypto/openssl/crypto/x509/v3_utl.c +++ b/crypto/openssl/crypto/x509/v3_utl.c @@ -916,36 +916,64 @@ static int do_x509_check(X509 *x, const char *chk, size_t chklen, ASN1_STRING *cstr; gen = sk_GENERAL_NAME_value(gens, i); - if ((gen->type == GEN_OTHERNAME) && (check_type == GEN_EMAIL)) { - if (OBJ_obj2nid(gen->d.otherName->type_id) == - NID_id_on_SmtpUTF8Mailbox) { - san_present = 1; - - /* - * If it is not a UTF8String then that is unexpected and we - * treat it as no match - */ - if (gen->d.otherName->value->type == V_ASN1_UTF8STRING) { - cstr = gen->d.otherName->value->value.utf8string; - - /* Positive on success, negative on error! */ - if ((rv = do_check_string(cstr, 0, equal, flags, - chk, chklen, peername)) != 0) - break; - } - } else + switch (gen->type) { + default: + continue; + case GEN_OTHERNAME: + switch (OBJ_obj2nid(gen->d.otherName->type_id)) { + default: continue; - } else { - if ((gen->type != check_type) && (gen->type != GEN_OTHERNAME)) + case NID_id_on_SmtpUTF8Mailbox: + /*- + * https://datatracker.ietf.org/doc/html/rfc8398#section-3 + * + * Due to name constraint compatibility reasons described + * in Section 6, SmtpUTF8Mailbox subjectAltName MUST NOT + * be used unless the local-part of the email address + * contains non-ASCII characters. When the local-part is + * ASCII, rfc822Name subjectAltName MUST be used instead + * of SmtpUTF8Mailbox. This is compatible with legacy + * software that supports only rfc822Name (and not + * SmtpUTF8Mailbox). [...] + * + * SmtpUTF8Mailbox is encoded as UTF8String. + * + * If it is not a UTF8String then that is unexpected, and + * we ignore the invalid SAN (neither set san_present nor + * consider it a candidate for equality). This does mean + * that the subject CN may be considered, as would be the + * case when the malformed SmtpUtf8Mailbox SAN is instead + * simply absent. + * + * When CN-ID matching is not desirable, applications can + * choose to turn it off, doing so is at this time a best + * practice. + */ + if (check_type != GEN_EMAIL + || gen->d.otherName->value->type != V_ASN1_UTF8STRING) + continue; + alt_type = 0; + cstr = gen->d.otherName->value->value.utf8string; + break; + } + break; + case GEN_EMAIL: + if (check_type != GEN_EMAIL) continue; - } - san_present = 1; - if (check_type == GEN_EMAIL) cstr = gen->d.rfc822Name; - else if (check_type == GEN_DNS) + break; + case GEN_DNS: + if (check_type != GEN_DNS) + continue; cstr = gen->d.dNSName; - else + break; + case GEN_IPADD: + if (check_type != GEN_IPADD) + continue; cstr = gen->d.iPAddress; + break; + } + san_present = 1; /* Positive on success, negative on error! */ if ((rv = do_check_string(cstr, alt_type, equal, flags, chk, chklen, peername)) != 0) diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem new file mode 100644 index 000000000000..e8a2c6f55d45 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDbDCCAlSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARSb290 +MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAXMRUwEwYDVQQDDAxU +RVNULkVYQU1QTEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6wfP+ +6go79dkpo/dGLMlPZ7Gw/Q6gUYrCWZWUEgEeRVHCrqOlgUEyA+PcWas/XDPUxXry +BQlJHLvlqamAQn8gs4QPBARFYWKNiTVGyaRkgNA1N5gqyZdrP9UE+ZJmdqxRAAe8 +vvpGZWSgevPhLUiSCFYDiD0Rtji2Hm3rGUrReQFBQDEw2pNGwz9zIaxUs08kQZcx +Yzyiplz5Oau+R/6sAgUwDlrD9xOlUxx/tA/MSDIfkK8qioU11uUZtO5VjkNQy/bT +7zQMmXxWgm2MIgOs1u4YN7YGOtgqHE9v9iPHHfgrkbQDtVDGQsa8AQEhkUDSCtW9 +3VFAKx6dGNXYzFwfAgMBAAGjgcgwgcUwHQYDVR0OBBYEFFR5tZycW19DmtbL4Zqj +te1c2vZLMAkGA1UdIwQCMAAwCQYDVR0TBAIwADCBjQYDVR0RBIGFMIGCoD8GBisG +AQUCAqA1MDOgDhsMVEVTVC5FWEFNUExFoSEwH6ADAgEBoRgwFhsGa3JidGd0GwxU +RVNULkVYQU1QTEWgHQYIKwYBBQUHCAmgERYPbW9lQGV4YW1wbGUuY29tgQ9qb2VA +ZXhhbXBsZS5jb22CD214MS5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA +T0xzVtVpRtaOzIhgzw7XQUdzWD5UEGSJJ1cBCOmKUWwDLTAouCYLFB4TbEE7MMUb +iuMy60bjmVtvfJIXorGUgSadRe5RWJ5DamJWvPA0Q9x7blnEcXqEF+9Td+ypevgU +UYHFmg83OYwxOsFXZ5cRuXMk3WCsDHQIBi6D1L6oDDZ2pfArs5mqm3thQKVlqyl1 +El3XRYEdqAz/5eCOFNfwxF0ALxjxVr/Z50StUZU8I7Zfev6+kHhyrR7dqzYJImv9 +0fTCOBEMjIETDsrA70OxAMu4V16nrWZdJdvzblS2qrt97Omkj+2kiPAJFB76RpwI +oDQ9fKfUOAmUFth2/R/eGA== +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem new file mode 100644 index 000000000000..a74c96bf3146 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICnDCCAYQCCQCBswYcrlZSHjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARS +b290MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAPMQ0wCwYDVQQD +DARSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqRj8S4kBbIUj +61kZfi6nE35Q38U140+qt4uAiwAhKumfVHlBM0zQ98WFt5zMHIBQwIb3yjc2zj+0 +qzUnQfwm1r/RfcMmBPEti9Ge+aEMSsds2gMXziOFM8wd2aAFPy7UVE0XpEWofsRK +MGi61MKVdPSbGIxBwY9VW38/7D/wf1HtJe7y0xpuecR7GB2XAs+qST59NjuF+7wS +dLM8Hb3TATgeYbXXWsRJgwz+SPzExg5WmLnU+7y4brZ32dHtdSmkRVSgSlaIf7Xj +3Tc6Zi7I+W/JYk7hy1zUexVdWCak4PHcoWrXe0gNNN/t8VfLfMExt5z/HIylXnU7 +pGUyqZlTGQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAHpLF1UCRy7b6Hk0rLokxI +lgwiH9BU9mktigAGASvkbllpt+YbUbWnuYAvpHBGiP1qZtfX2r96UrSJaGO9BEzT +Gp9ThnSjoj4Srul0+s/NArU22irFLmDzbalgevAmm9gMGkdqkiIm/mXbwrPj0ncl +KGicevXryVpvaP62eZ8cc3C4p97frMmXxRX8sTdQpD/gRI7prdEILRSKveqT+AEW +7rFGM5AOevb4U8ddop8A3D/kX0wcCAIBF6jCNk3uEJ57jVcagL04kPnVfdRiedTS +vfq1DRNcD29d1H/9u0fHdSn1/+8Ep3X+afQ3C6//5NvOEaXcIGO4QSwkprQydfv8 +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh new file mode 100755 index 000000000000..7a8dbc719fb7 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh @@ -0,0 +1,41 @@ +#! /usr/bin/env bash + +# Create a root CA, signing a leaf cert with a KDC principal otherName SAN, and +# also a non-UTF8 smtpUtf8Mailbox SAN followed by an rfc822Name SAN and a DNS +# name SAN. In the vulnerable EAI code, the KDC principal `otherName` should +# trigger ASAN errors in DNS name checks, while the non-UTF8 `smtpUtf8Mailbox` +# should likewise lead to ASAN issues with email name checks. + +rm -f root-key.pem root-cert.pem +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-root-key.pem \ + -x509 -subj /CN=Root -days 36524 -out kdc-root-cert.pem + +exts=$( + printf "%s\n%s\n%s\n%s = " \ + "subjectKeyIdentifier = hash" \ + "authorityKeyIdentifier = keyid" \ + "basicConstraints = CA:false" \ + "subjectAltName" + printf "%s, " "otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name" + printf "%s, " "otherName:1.3.6.1.5.5.7.8.9;IA5:moe@example.com" + printf "%s, " "email:joe@example.com" + printf "%s\n" "DNS:mx1.example.com" + printf "[kdc_princ_name]\n" + printf "realm = EXP:0, GeneralString:TEST.EXAMPLE\n" + printf "principal_name = EXP:1, SEQUENCE:kdc_principal_seq\n" + printf "[kdc_principal_seq]\n" + printf "name_type = EXP:0, INTEGER:1\n" + printf "name_string = EXP:1, SEQUENCE:kdc_principal_components\n" + printf "[kdc_principal_components]\n" + printf "princ1 = GeneralString:krbtgt\n" + printf "princ2 = GeneralString:TEST.EXAMPLE\n" + ) + +printf "%s\n" "$exts" + +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-key.pem \ + -subj "/CN=TEST.EXAMPLE" | + openssl x509 -req -out kdc-cert.pem \ + -CA "kdc-root-cert.pem" -CAkey "kdc-root-key.pem" \ + -set_serial 2 -days 36524 \ + -extfile <(printf "%s\n" "$exts") From nobody Wed Sep 4 20:54:21 2024 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 4WzZVP6VYbz5VMtv; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVP4PnDz4Q6S; Wed, 4 Sep 2024 20:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PAMkL9nCMXF8AqqKNPnqKXRaDLg6YfjDu4Gdo5dTwKU=; b=ALa+yY84J+suKYmbLUvLGN8kciFrtuwkfxdOgK9MfdfM/L29lwFzyMHc8EvyarSjuQtjIo Nk2a1AhkW1RzVPTo1h63wBI0Y0/M75/xAwh4aRtVoR/mZV0ZyQ2EH0hxsCuoiabfZxqdiL clINlpmoi6LIzC0Wi2WmQ1uC0+FO8rnEIOvwoo/I+UEVCpSpESmfPMOLu8Lgm0Q6gIKPzT M7+oykIZcyMxfqCG2ajCmmQQ14CRM2CVuSwKKSFxzXZT17bxCYBeh8KShV5K33yTGYd3FG 3Keqwq7j+mdDDqP+j5n2PrdkVytcwTB3VCzrzDhIilWZnpZnajJlvWx2sgdBPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483261; a=rsa-sha256; cv=none; b=wiK04D+8dK7h+qVAtr3WqF/2KVQEA+Q6SHj1P/PK4zTuQREGgiZ8d1uqjgTi4jKHLQlQhd Un+CN+5BBjpF7pPzTZdQILTgmUR+3koBKagPha7y+Uvt2D27EtalVEUyeyFmQgg2sqLohj HasNttZaFLh6JDQ9qj91vEhkyF6L05rfoQBiwaWyBbc+NC/vbXMneQ99708rFpYiSRSQIr 3zfQjPfASkeBWWODD329cmrROlJpwFXBHgGUBkFsNPNkQjOnvZN1t3qgGty2FO40ThZrTR EJ0h5faRkZcaIUqXtzGCpCKfHumG3UCIl9EIdai85Rq2YsEskjvxe2JO118FdA== 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=1725483261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PAMkL9nCMXF8AqqKNPnqKXRaDLg6YfjDu4Gdo5dTwKU=; b=BGt9K7tx4pf5YEUlcac0Fd16ZNuNxInRt5nx+51hu0HT4XrLoFwY0culB94B+5vlEnGH/Y mS+PH52k51aG4SxT4pm9gTEBpgTa1SKoAASwf33PzmTRMhIx/G3CVMM18/F+X1GPbUfumu 70kU/u0ChTqL6ZgIbJJrXQp5nU6Gy1AcP2ZLj8ooIGjhqE4XtzQJXcAnPjYJcyWwVtrGC7 hgVx0XGgINfniBp3au6HtEv4047zrmfVu7pYMBjVLwRYqNxPLldblA/k8P364X0r4ST+34 3owrlWcrWWiUs8Lr40LHIbcMFUJHHcdrTlgHwdXSBTrT/7xfFAZitwWsM5Q2xw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVP3znCzgMr; Wed, 4 Sep 2024 20:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsLom034088; Wed, 4 Sep 2024 20:54:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsLpv034085; Wed, 4 Sep 2024 20:54:21 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:21 GMT Message-Id: <202409042054.484KsLpv034085@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d868c5df69a8 - releng/14.0 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: d868c5df69a8cbf6ea3cf3ed4ce2b200eafc92c5 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d868c5df69a8cbf6ea3cf3ed4ce2b200eafc92c5 commit d868c5df69a8cbf6ea3cf3ed4ce2b200eafc92c5 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) (cherry picked from commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63) Approved by: so --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index ff9505b8e31d..afc3f705e231 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4271,8 +4271,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4332,7 +4331,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4372,14 +4371,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4472,7 +4468,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 20:54:22 2024 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 4WzZVR1lX7z5VMxP; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVQ5fN0z4QHw; Wed, 4 Sep 2024 20:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I5tL08npTbZXefjy1vUW9hi6mevY9RDV8WaLS6SsFsk=; b=nkJgHvVOl5mY1KAy55hC1P942RbDQP8cAsMBsgXNSkSfh/UTmDByQKMzrwhCsG2uqOOl9a GXI3V/sIrW0flmzZ4Tn0IQckBeE0FSDg8OGHyt/JUTqesStFYU0nrMqSjIeXD5BcwC9FFy T1SNJaGpgqJMcHX8cvyok1R+8qe3ZDsj2/Idm5qR2vxt6BLKiRSXrYY0KE+AQGpAQ9O/9y xhXFVnMnk7KqoO015ymx5RNVeLCiMoFOQM6+f1TUfpGjI1HVsUK6tyk9iMotqs1kLM+fja PT306dGnyxULt4+9likZ8wm/ENwNGJo6jKTX81eUPBpi1oARB+SqQA8kVHVEWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483262; a=rsa-sha256; cv=none; b=Lu7E02RELbiW0f/InQg/DtQctnQ12PRXAT5bh/WtvXOPRQlKzcA7sbW5M/vEvte3o7kdTG 7HxJY8g976SonZoTnXitvbOWTGoS+bnZQC9CeHMERQpImqLVy/2lSbykygMhRYZ+NyrSMa xDYUpHJ3PIRZBL1fsdqv2/vVNLC1b0rBtm4vI5kIBf733UlXtREOsXKcztfNYAvyVmJ36j AcfqdaG/Thl5b3kkVQOEkWWjkqX01JIclUBzSHeiu4mFBA4CyVbKQh74zJWEdRXig+8lN/ 1nppgsN48ZSrS95DKfdp/glRITMqSAh2sTmECUtg1RI4pRfUju/9TczBoIbQJg== 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=1725483262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I5tL08npTbZXefjy1vUW9hi6mevY9RDV8WaLS6SsFsk=; b=mZV0flj7KcoNEyWV5YheHz/JnvlV05BDZDzz+DYBCGgDbt59OWrip51bp3EX9OnMEZFJ1+ KbVoNFKphjNnZiWL2qLDTAsKTzL5mfLQy1Ix09jAmaH9vbWckm0KF1XDUvb2UYAsnebgQk +r3k+47VyrbxnmYGVhZeeTSOQSsJ/lwfz6s8YxS1i2M22Oc1BS2TXPN5K8eJtS9J9h4CWb e3M/OjoMH+oopC8OZ9fAwWcme6p21g5tPqJUdBqV77+Z1JUB73HVWR4UBl+u1zOCTEAvEl II44qSA8dXmDvfbMG2LYzbXQl3ZurKQ1vgqYYiGWzuomnXUv6MHIFBHDRAZTRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVQ5DmkzgYy; Wed, 4 Sep 2024 20:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsMG5034151; Wed, 4 Sep 2024 20:54:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsMi8034148; Wed, 4 Sep 2024 20:54:22 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:22 GMT Message-Id: <202409042054.484KsMi8034148@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 6d2923e03221 - releng/14.0 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 6d2923e0322179fa3d12b879f2ec8943f92d2ed6 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6d2923e0322179fa3d12b879f2ec8943f92d2ed6 commit 6d2923e0322179fa3d12b879f2ec8943f92d2ed6 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) (cherry picked from commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed) Approved by: so --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index afc3f705e231..4f8d13a40d31 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4362,39 +4362,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4447,7 +4457,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4464,11 +4473,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 20:54:23 2024 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 4WzZVS3MJlz5VMTx; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVR6pSVz4QJ7; Wed, 4 Sep 2024 20:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PU49EhfTd5LWkhhgMIvHznq2HEn35Pfoj86ZJV2WORY=; b=u8D3OgT5bcHukQppb1xHlecZtUYFOhtLWbAY3dTTUX0TEp05ZBbg789zwbiopQkhKpNfXG tchshcSBtF1BGAQNC+0Z2/v1e3ow8wqfVLj5tQulVMsMxxVobyf1YfdwE08po09QrzIEME kiRsRTvTv73Xj8QdBoZjZy+wM05dmZurst9w+9H0JNG/T7TKlbvRPdfxFAOwYHJWR+Cxf+ fvCWH0hn06cL4mHfP09GZKtTtmks0ln+0nWokgrQQQnxjR6bk+NAaHtWFn+5LR0qAb3+QG xM7SPEGAeYdG0G4gyboKx42Lphkrz+safFF+uqlq4Xa4CAHIXCh8bPvEOwTsaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483264; a=rsa-sha256; cv=none; b=g3UToJKfv5Xe7laS4Zr4QaVlB5GGgq7gYA9s3YgLOet+4s5ybkm2djhgImkj4JjtHzVHAH 9u3yhr42ytYTiM7QOrbsGW/hfIuGbtTiiKYOA4dj2L36pB5yFnTIqX5P89lTRYOSoySYvG Zm68EtaEqAXph8D02GM6TNYLYHh1V8PyWqYL3nOiVESV1iI//VdTG57Y2xbswz+w4mGt05 GCKqrJ0ASJxgwly/b5RFrgzKwOiONJq5lXMsVpILtkfI/RCAHNHgbRc3KeE5NSUruid7P2 mtS0/gOyEDlD7Z/9bxyQ4I6ZyF07BQxbAy5YN4xb/BDJvd+LWwmMDg9hRoLLmw== 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=1725483264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PU49EhfTd5LWkhhgMIvHznq2HEn35Pfoj86ZJV2WORY=; b=x1A/YCv9enhEFPnnHyrxIk85W/4DLsS4zf72HzhsYyt3fBehTXOmLXXqcuR7VrB5gFHCOr MTFUatJJb4fNtDNigTgXfqgG9/QDOnmMRaNsNsgnZs3qx9fG+IhWyqd99w5C+h2EMvJiB0 ptSu/fyc+KlhQwUg9AabsSkGc5i0Dabp9HpA7JcbDNKjuqSu6SWq+fyDm9T+rjNktau30Z DORsbn6Jx3HAp9dQIScaYE6vx8HkYsR2GPCKQgGeYnvG2/qpbSoPBs34lxRmmof5C98loW ulZmhUunHFgQ0YSfLreni3DA6YdbAo+MJ380AjJxQBR9Pocq7EcssGMrtBHTsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVR6Q7qzgDL; Wed, 4 Sep 2024 20:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsN7n034196; Wed, 4 Sep 2024 20:54:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsNGW034193; Wed, 4 Sep 2024 20:54:23 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:23 GMT Message-Id: <202409042054.484KsNGW034193@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 39a2b8b01b48 - releng/14.0 - umtx: shm: Prevent reference counting 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 39a2b8b01b485ecf08faf72a7b74384cb78b24aa Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=39a2b8b01b485ecf08faf72a7b74384cb78b24aa commit 39a2b8b01b485ecf08faf72a7b74384cb78b24aa Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) (cherry picked from commit b20ae160872071fc20e5dde27051792177057fa5) Approved by: so --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 4f8d13a40d31..d7171a9694f7 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4312,8 +4312,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4333,22 +4342,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4448,11 +4469,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4466,12 +4494,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4542,13 +4578,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 20:54:24 2024 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 4WzZVT2Wssz5VMvQ; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVT0tlqz4QWC; Wed, 4 Sep 2024 20:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=waAnXi0PaRPgaSh0j8+htqIDwyIeHtcXoA+oXYc0j04=; b=oXC5qDA+T3UTsewxXiE3/3iMp8bUa+c8/Z94yEJvtA/v9InX7wth8hjgLTRO53qRwykkSB 4MNqXMfx6QHYP9UVxQZnT4by9z6Ic1lXHcQN5Hr1zMmAxOuhudyGIEjQBeYaFltOGOY4zq gMsYD0pGUpftY8eYMoRCszAhCE1+0MOzzCE9GDrC7Yj2L8M/7A8w9mQhjjJCVtcaVdsnps DQF0UfxvCd+LUkRMetDgzANiQ0rhIQADqb+rEqIWy5GPSTRLuZVaAUab9gVU9aOas1ln2l R0VtxV+r5TBRtkV5z+K9a4zuRa3j1SupmOVltznx40dRYx2h9G754uaZ/dZdQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483265; a=rsa-sha256; cv=none; b=VF0imE4yfyav8j7TWBYmRB6TG7fnmN7YESZVcsT5lJbZZZRKG3bNcEej9PcEMY6GMnVRKD iAdVPQh5PH5gwpkeCdFpoTRnLsUkeZaI00FUGV8bfoF187CGgHLSsiGpa9QzO4UtKtRHBM 9DQ2RchqRGVNS5qq0M4KNlI/1WGATC8rzNbmj/4OUJFnrH5PqiqeQtSzHuxQN3cWSG+zWN MSin2PYnJ9MLzyOpdAjweb8q7b1Vts53oM++jIlXdhivsuHfpKxH30hMPtTW9S+Vn/gqDc ReZIPIPuFsF1FOsp6ApMkP1cJdz6qlHTv6aLYp7uvb7mhFNxoKyncoe1fMIHPg== 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=1725483265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=waAnXi0PaRPgaSh0j8+htqIDwyIeHtcXoA+oXYc0j04=; b=AEbiK9+pbU4i4kOfXNXnrBg+f6TVIxwvt9VrXQtZdvr9h1cpzKAhHGLONqd1ZiAQZlcDF2 YX5pIsSPMm6FkjKilESJlEIvQh9n5SvZyJje2sH2yUB1pJwjdI99UBYMicXfXVgBxPN4aO n2kvfDXqR1eR/azopU5gn1E12X0WyqW/JQU2NNrXrIT3yCfbEMe+SudYwi+PVXKvJe0zM/ EMc9KrcdE9ylnVUTT5PI5LseGnTSrymyQmD0bLQP90tktUHBLMKf2A74oS5SaGNuPN83qz 07aWzjNgBfk6gF2A2Wt8rdYZsQB1gtp79gb/Y+BV8XQxh4QOTwC8bTgnd7biaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVT0SfyzgH2; Wed, 4 Sep 2024 20:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsOvE034250; Wed, 4 Sep 2024 20:54:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsOVZ034247; Wed, 4 Sep 2024 20:54:24 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:24 GMT Message-Id: <202409042054.484KsOVZ034247@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 37823ca38148 - releng/14.0 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 37823ca38148a4b53b373eb0e3a39242ccc4b06d Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=37823ca38148a4b53b373eb0e3a39242ccc4b06d commit 37823ca38148a4b53b373eb0e3a39242ccc4b06d Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) (cherry picked from commit 4938f554469bc81783998143968ec3eba2a43def) Approved by: so --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index d7171a9694f7..d6209c5dd505 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4338,7 +4338,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4386,7 +4386,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 20:54:26 2024 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 4WzZVV47ZZz5VMT3; Wed, 04 Sep 2024 20:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZVV21f1z4QYh; Wed, 4 Sep 2024 20:54:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725483266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xT7FZMLIyuJD7W+hqyvm9UOQvPp2tfO5LUB7llwiZIU=; b=vvulUHh1gxHKfau+5tlKxn17RLsgCcm2b04uTcIQktIxZ1n0krdhhGybS8UHx2nhUBp6gw vc2hOGAVrQ+T9vRWjaQ9OK4wA4S+B/UVNaymmH2oO10wVH78Yox9B5Acl9NKv5ZQZ+uOds hbvske1HfNPCb53r7SKDxyhoM9M9liCqG0I+cJLGnT0pAztIxIcPqtai4FQWh65DWyJIBY jHaPIDsHTSh0ckY+BbnWJlOaUYYdHPNSGZlmNZTwNXosT2XP0kSzl/d33RiyWt3Vkz4QPM ScLEku3nGPZjHZIhBT8kzmKz4eLwGf+MSIUf2jehTbl+0uUizP/B2iUeqXemRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725483266; a=rsa-sha256; cv=none; b=iUsHOd1wBFpVjX4D1q+k4MVIxUf6MibCdVkI2eTO6v/jKyU1OTqUfWI3BcV30bBSMggiG2 9ZCWkJxRc9KmlzDjjSRhPb2ogn7CrdTLZ4+rdcZnjD9JDNGxv4/AQcdMtdvUTGUlvpjsyS xjiXH6bfpCC2HQCU4zsk1HKaS3WydD3cCiTVEh7Tsj/09/uf8SnzBxJn2b9A6nDcqmbZUR J7VaWOAP4ZuNScSJfSxLn/rFDZAyHJzggSPOD9sRmxioI8awKNDjfmAteLU1PmwISn68Ps V+7yfDVaNd3UkxI/wndB9KWtZBCacLiIZ7RehOE2wt+BryRTCKBGQMtQjkeUXw== 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=1725483266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xT7FZMLIyuJD7W+hqyvm9UOQvPp2tfO5LUB7llwiZIU=; b=GmHRRy0Yubo04Y5YSzr47cS6UtVZDN86qthE21/9/9O/R291PVFC6T2+Hjn6IlrCoNrBV5 PM4EzbMtp7yMEeyXUSnpG923vPiwDIjYfH1N7PZDUSslLiULj2vm/nhMz4AtTqJTkbbvKS f4Y3dQdr8tooSqXwlmkjerzdEdYiRpfPGolSW3RjVBi8GkoZO30ghe8wLKNkB/69H/fb+R wmP0+VpfqrjNEK1Xi4CRtJ/EqT/OckomQDrH6TEG674CBqGPYGBGdbYVXg1daz8IxAvOGh MV/LXM7w2JQKOHhMJnWhxTReRzgf+AOOliS9hvRMsWlvC5aDF4Y+1+aGRo7sdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZVV1dbhzgZ0; Wed, 4 Sep 2024 20:54:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484KsQmY034302; Wed, 4 Sep 2024 20:54:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484KsQkr034299; Wed, 4 Sep 2024 20:54:26 GMT (envelope-from git) Date: Wed, 4 Sep 2024 20:54:26 GMT Message-Id: <202409042054.484KsQkr034299@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: f96bae43f0c1 - releng/14.0 - Add UPDATING entries and bump revision 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 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: f96bae43f0c12418864bebbe271c4c3f036649c3 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f96bae43f0c12418864bebbe271c4c3f036649c3 commit f96bae43f0c12418864bebbe271c4c3f036649c3 Author: Ed Maste AuthorDate: 2024-09-04 20:26:46 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:54:03 +0000 Add UPDATING entries and bump revision EN-24:15.calendar SA-24:09.libnv SA-24:10.bhyve SA-24:11.ctl SA-24:12.bhyve SA-24:13.openssl SA-24:14.umtx Approved by: so --- UPDATING | 22 ++++++++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index dda09f1d5226..89961db5fabb 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,28 @@ 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. +20240904: + 14.2-RELEASE-p10 EN-24:15.calendar + SA-24:09.libnv + SA-24:10.bhyve + SA-24:11.ctl + SA-24:12.bhyve + SA-24:13.openssl + SA-24:14.umtx + + cron(8) / periodic(8) session login [EN-24:15.calendar] + + Multiple vulnerabilities in libnv [SA-24:09.libnv] + + bhyve(8) privileged guest escape via TPM device passthrough [SA-24:10.bhyve] + Multiple issues in ctl(4) CAM Target Layer [SA-24:11.ctl] + + bhyve(8) privileged guest escape via USB controller [SA-24:12.bhyve] + + Possible DoS in X.509 name checks in OpenSSL [SA-24:13.openssl] + + umtx Kernel panic or Use-After-Free [SA-24:14.umtx] + 20240807: 14.0-RELEASE-p9 EN-24:14.ifconfig SA-24:05.pf diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index b13f7b741ea6..3fde4ce763f6 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.0" -BRANCH="RELEASE-p9" +BRANCH="RELEASE-p10" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Sep 4 21:07:26 2024 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 4WzZnV6j2sz5VNs3; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnV64zfz4Vbk; Wed, 4 Sep 2024 21:07:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zyGJGuv9IUF74/GXje7DlCCAu7RD+L7YnGTcmxHI1TE=; b=B4DPny5mZ8p0vEScoMfYvqDD9p1vwAMid8w31/u2CC+Ks0ywbOuwMmYEkLyn81W3aBXaKY kyVWwvMVh+d0r0Dli7ceMifrIXhNJ4uanox/SyVvGOKSsuYx8I6ndgPviJf9GUc5xNQpls OWZaFYE3EupjDduSvcBXniltV/yrRwJWjF53+KKyFpCBJ8W3vIqdfHveqXrF+EYlr7Nqgs KxrtoGvg1QhoYEPJ/KqDgiM90r842KVgEJ4eLg7QjYd5Lp5yezdCgcu/378p9Ye6189lA4 haqqV1/kNl5spEBfNay6crBlE6eCDtf4ZTGgKzZXPTAwGp4i//nRJNziZQv3Ag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484046; a=rsa-sha256; cv=none; b=FhA46vIg1kLmCFT8M371Vmsh3ICvz8lpHg7bA3rtypQhmV5OFgts7MwrNqdpUzCUzFgr1W YlIOD1n1thmP0twaaNjfnKVqpvTiOFkF8yft4dSdVXhPtFgvIDItG3QFEYWc7kt3dUPRJ9 3pHy5r4e1r93uY62/MQNLtXc0ukwKkAvObtjOCsH5530apoSIGWKGL7difFtv/z/Hm6O6/ G0oBlThm8+jqK91ucpOSpdsvvY7q3NER+ZfMNg/0qS1pjmKPGpcR2SaQI4epJSdclcKiuy 3RzgfvB9ov4v5nytCUQqJIzdXkNMwDzmalIcZesgTq6v2fFjB02Mlrk7+8hWdg== 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=1725484046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zyGJGuv9IUF74/GXje7DlCCAu7RD+L7YnGTcmxHI1TE=; b=FBO61gGYdcLHGmWA41dh6GcOY+JheIPKBqPmxXzRQ+fhCsGJUx6Lr3Zr3rPd2ubNWsR3Wc zlgkxZLWEDCRl0A+eBwjp2TmWs2BPVSrqHCbvPbaPBNINZ8SmICiF/BZ76nbRHGir9Jwtv AJR0BScg/PxFtha1C1Tn6NwiJeimH7wYqBnASK/gnIqfpdE1aP5Z8pH8tdxRua4WocpwTZ vuyN2kKyiNKlyM+bLghOH/MhQpJq74osUQyUBmKBrmSU/EP+aHXGrjn9vmo/3S1KVw2Snk /m8A19WadVn0+hfm2lvjapyGOR2R+0vO27NRXOlvLMdrcMyBexMEBQgVtwpyKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnV5ZCFzgg2; Wed, 4 Sep 2024 21:07:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7QRe053043; Wed, 4 Sep 2024 21:07:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7QcK053040; Wed, 4 Sep 2024 21:07:26 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:26 GMT Message-Id: <202409042107.484L7QcK053040@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 5fd7301afa97 - releng/14.1 - libnv: allocate buffer in a safe way 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 5fd7301afa975f9ba20051d83b838d90f3aa792b Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5fd7301afa975f9ba20051d83b838d90f3aa792b commit 5fd7301afa975f9ba20051d83b838d90f3aa792b Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:10:25 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:06 +0000 libnv: allocate buffer in a safe way Ensure that the calculation of size of array doesn't overflow. Security: FreeBSD-24:09.libnv Security: CVE-2024-45287 Security: CAP-02 Reported by: Synacktiv Reported by: Taylor R Campbell (NetBSD) Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46131 (cherry picked from commit 36fa90dbde0060aacb5677d0b113ee168e839071) (cherry picked from commit 371af89975e3edd1e9f57aa5efba2598b63c0d2d) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 18 +++++++++--------- sys/contrib/libnv/nvlist.c | 8 ++++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 0c76fefeebb6..9560ebc74f83 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -999,7 +999,7 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(sizeof(*value) * nvp->nvp_nitems); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1092,7 +1092,7 @@ nvpair_unpack_nvlist_array(bool isbe __unused, nvpair_t *nvp, return (NULL); } - value = nv_malloc(nvp->nvp_nitems * sizeof(*value)); + value = nv_calloc(nvp->nvp_nitems, sizeof(*value)); if (value == NULL) return (NULL); @@ -1330,10 +1330,10 @@ nvpair_create_bool_array(const char *name, const bool *value, size_t nitems) return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_BOOL_ARRAY, (uint64_t)(uintptr_t)data, @@ -1360,10 +1360,10 @@ nvpair_create_number_array(const char *name, const uint64_t *value, return (NULL); } - size = sizeof(value[0]) * nitems; - data = nv_malloc(size); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); + size = sizeof(value[0]) * nitems; memcpy(data, value, size); nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, @@ -1393,7 +1393,7 @@ nvpair_create_string_array(const char *name, const char * const *value, nvp = NULL; datasize = 0; - data = nv_malloc(sizeof(value[0]) * nitems); + data = nv_calloc(nitems, sizeof(value[0])); if (data == NULL) return (NULL); @@ -1440,7 +1440,7 @@ nvpair_create_nvlist_array(const char *name, const nvlist_t * const *value, return (NULL); } - nvls = nv_malloc(sizeof(value[0]) * nitems); + nvls = nv_calloc(nitems, sizeof(value[0])); if (nvls == NULL) return (NULL); @@ -1507,7 +1507,7 @@ nvpair_create_descriptor_array(const char *name, const int *value, nvp = NULL; - fds = nv_malloc(sizeof(value[0]) * nitems); + fds = nv_calloc(nitems, sizeof(value[0])); if (fds == NULL) return (NULL); for (ii = 0; ii < nitems; ii++) { diff --git a/sys/contrib/libnv/nvlist.c b/sys/contrib/libnv/nvlist.c index 57343f953e94..64078b10973e 100644 --- a/sys/contrib/libnv/nvlist.c +++ b/sys/contrib/libnv/nvlist.c @@ -758,7 +758,7 @@ nvlist_descriptors(const nvlist_t *nvl, size_t *nitemsp) int *fds; nitems = nvlist_ndescriptors(nvl); - fds = nv_malloc(sizeof(fds[0]) * (nitems + 1)); + fds = nv_calloc(nitems + 1, sizeof(fds[0])); if (fds == NULL) return (NULL); if (nitems > 0) @@ -1029,6 +1029,10 @@ static bool nvlist_check_header(struct nvlist_header *nvlhdrp) { + if (nvlhdrp->nvlh_size > SIZE_MAX - sizeof(nvlhdrp)) { + ERRNO_SET(EINVAL); + return (false); + } if (nvlhdrp->nvlh_magic != NVLIST_HEADER_MAGIC) { ERRNO_SET(EINVAL); return (false); @@ -1313,7 +1317,7 @@ nvlist_recv(int sock, int flags) goto out; if (nfds > 0) { - fds = nv_malloc(nfds * sizeof(fds[0])); + fds = nv_calloc(nfds, sizeof(fds[0])); if (fds == NULL) goto out; if (fd_recv(sock, fds, nfds) == -1) From nobody Wed Sep 4 21:07:27 2024 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 4WzZnX1dNQz5VP0H; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnW6vjqz4VfB; Wed, 4 Sep 2024 21:07:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tf/J/z4vdOj9cpE98pjkX41FKtlXIbTrreBUC31KgZM=; b=eRbOHJUsOHiqAMvqwsOLcsgcI6NpwEak8OYPJ4SpPZ2rtg6Fml0UHb2X/RN3UoqKoC69Ub QNcCy/5HInNevyV4KIadXcK8cumXEbGuN0ltNRIewtunImIyk2WDOONb7Akouu+RIB/kjs e8VkF+GDXsF9hj9ftXp2k4icWySMnInLzc3QOM2SpJScgYc7sqxtzO2u7XA+u6fUFSz79S tf/Nnd04tKXR4snOmCQwCsUd8fTozp5V+4udarFaZ4P+MfgcGfdaKKYvZesdTynEyZGY+4 eKON4m8LtIyFvfpH+nNyaxL+5LrlVdeqO6qVQY5jHStqL7IiNJF5Qk59gg49yw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484048; a=rsa-sha256; cv=none; b=Sh6fqAe4wqdOAOipeQYvYtfV53k6FWs0JuoTbtWurm2mxQXHJBPZTDwQOukngzVkM6gx2Y NFbf51wtA6xKBfgwDmn0nzHAI/xZ4pz99D0BSJajnCNbFaHFqhlpeTpCsTfvg4N5IO01e2 gjqw9WdasGJ7nCOJESZ7Y+Z/SXGzkvgUKOUS6XJ0hFDAjnyJAhIXkrfx7FrcmnlqQBJOnq PY+YtOfBY0uQU4qtD4ZRCdUU9kZg7+6IbJvvNokPDApaJiBw1qfq6E7fcpulfyz1Wh5Ei2 UWcMZkyIZyALDniDqBqN63EhmMZnLZOEZrjfUKXWJ4BGLyOslrlWrK/TJlc0FA== 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=1725484048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tf/J/z4vdOj9cpE98pjkX41FKtlXIbTrreBUC31KgZM=; b=cr6CDLrXt1ZLXDRpRIwcoW85dlk0tv53WnDkvk0O2O4sZWXsilGGQkf3SMOiCBWOjVOl6h vK/JKqbUtRHGDu4MtTLebk9168T/weuaeR61tG69qjn8Yusi4fvZed2ZcWApS6J5bOKkbT a8vQdRax6+s7/0BC0Jp5ikrutjCYE0YYwzXIAtiiPE/N1r9dDkhy6dYw6LOyf1bdJnuiTZ cnKPJBtix4GiFATRaKGNhHAIgV4j0z5hBdcp1EOPK5qJmYIaloDgwpjf5NjfTipHHoSaFV wHEx0OukCc3LCpgyJoLpsKGcpM2LKksE/9pof1P7iytQjHYsZB+ATRxwgyLXHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnW6Wm7zgcR; Wed, 4 Sep 2024 21:07:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7Rmt053098; Wed, 4 Sep 2024 21:07:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7RVV053095; Wed, 4 Sep 2024 21:07:27 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:27 GMT Message-Id: <202409042107.484L7RVV053095@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d87f821959fb - releng/14.1 - libnv: verify that string is null terminated 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: d87f821959fb59f902a2064afa37a70180385377 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d87f821959fb59f902a2064afa37a70180385377 commit d87f821959fb59f902a2064afa37a70180385377 Author: Mariusz Zaborski AuthorDate: 2024-08-26 18:20:24 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:46 +0000 libnv: verify that string is null terminated During unpacking, we ensure that we do not read beyond the declared size. However, unpack uses a function that copies null-terminated strings. Prior to this commit, if the last string was not null-terminated, it could result in copying data into a buffer smaller than the allocated size. Security: FreeBSD-24:09.libnv Security: CVE-2024-45288 Security: CAP-03 Reported by: Synacktiv Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46138 (cherry picked from commit 3aaaca1b51ad844ef9e9b3d945217ab3dd189bae) (cherry picked from commit 9c2ef102166eaab4c2531eb0ce6ffb20b82e778a) Approved by: so --- sys/contrib/libnv/bsd_nvpair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/libnv/bsd_nvpair.c b/sys/contrib/libnv/bsd_nvpair.c index 9560ebc74f83..a977d7941aa3 100644 --- a/sys/contrib/libnv/bsd_nvpair.c +++ b/sys/contrib/libnv/bsd_nvpair.c @@ -988,6 +988,10 @@ nvpair_unpack_string_array(bool isbe __unused, nvpair_t *nvp, for (ii = 0; ii < nvp->nvp_nitems; ii++) { len = strnlen(tmp, size - 1) + 1; size -= len; + if (tmp[len - 1] != '\0') { + ERRNO_SET(EINVAL); + return (NULL); + } if (size < 0) { ERRNO_SET(EINVAL); return (NULL); From nobody Wed Sep 4 21:07:28 2024 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 4WzZnY1T33z5VNjG; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnY13Z8z4VYQ; Wed, 4 Sep 2024 21:07:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D1GLF4pTsGytpK6NM+Pats8q7OaZf5ZWPPqrqfRyPHs=; b=Fw3V0cSZxV1xVvtsFmwFsq6SaZpwkJJIytlaWk+xeI+FhRrQKON9mZhPmEyoVObYbsAaKL 8j0tjnEo+wEeN5GZ1g1piCninwxQ/AKCO3EEgTGpcHSOo1F5u0to2Tg7s8d0KuOutCytMv R6qQKYTzvinor5briU99PIiQKrSkDqRKEI9Nq1lXBoQPMJgfvCCzSLslu5LCBhpR18LLSY jFVu6h0he0gZl7R9dK/FLstP0T0Z7rHtRjPAhACxf/DbwyCu9QzhMjNjlPMG/z3u39iJ6j SFBDGNGkNYAXiIgHa4S3oFONIKjkJ/rzzYk7UhCsh3nzQBCu+E0XT4pWZwab7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484049; a=rsa-sha256; cv=none; b=x+b/jm28m/pw8a65QkdjdY5im0WjpyeCm0AD3gJTCk4xzM+xeoU9DNdCWl3G7HjSuK5wpV CqoOUv7sJrd9cvRreOzQEUF2xArdtrCRawMkRy5M4hTHCShudQPunnY+ipv4a6VjhQ+5C1 noTeeL1UZ8Q+pCl1+PHKwyWMLahdPk99p3eqtviu93bN3fWB4zy5l4999HMc90x5sOd7Ck EVM581AGO9EJYeCpsQWDPdOzJoR5IWXQ9JuKsq3Db5QsrS5HetsvE57L0mtM8GrWDRDJac rguv74Igyn82+SWfVdntYFzochIRuDYKUBuAjNH7EMYpSQyGjKhQtlF/cqIuYA== 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=1725484049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D1GLF4pTsGytpK6NM+Pats8q7OaZf5ZWPPqrqfRyPHs=; b=urDWdCQLLdrryYUCCOGuR12u969ggQ9r3lBfday2czhSpe1ijBRT3c7YGfO4gYLgdQ/qOk iZtR02s2NmkEnsAllk+WS5HRKzkwDxboS9L01HBWkUr6TZEopuJjijrhAF5SGl2YHFPDdT KeHgE1O1Lm2jOfsrxTH4ofhf2bX5ZgU4M658epwh6E1Jvc1Lvs63u0dG78UqlcsrsD99IC VGdnv6M4Zbebq9XhxF03ZWSjMNT1l+xhXdr+qqZwdT2/0U0wwkLViVhq7n00h9V0pB8WFW xrB/Umvovh5DhPdMSszktc6nw9PqLD+IlrkSX/ioQ2uNVhuDw7Q76yasma/OCA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnY05QvzgZb; Wed, 4 Sep 2024 21:07:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7StO053146; Wed, 4 Sep 2024 21:07:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7SDC053143; Wed, 4 Sep 2024 21:07:28 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:28 GMT Message-Id: <202409042107.484L7SDC053143@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: eab723be7542 - releng/14.1 - bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: eab723be754290be0501f8d287afd812c6e80a03 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=eab723be754290be0501f8d287afd812c6e80a03 commit eab723be754290be0501f8d287afd812c6e80a03 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 bhyve: fix Out-Of-Bounds read/write heap in tpm_ppi_mem_handler The function tpm_ppi_mem_handler is vulnerable to buffer over-read and over-write, the MMIO handler serves the heap allocated structure tpm_ppi_qemu. The issue is that the structure size is smaller than 0x1000 and the handler does not validate the offset and size (sizeof is 0x15A while the handler allows up to 0x1000 bytes) Reported by: Synacktiv Reviewed by: corvink Security: FreeBSD-SA-24:10.bhyve Security: CVE-2024-41928 Security: HYP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45980 (cherry picked from commit a06fc21e770a482c8915411ebc98c870e42dd29b) (cherry picked from commit 6ce4821f0859eb00e1754917e1471184755b6358) Approved by: so --- usr.sbin/bhyve/tpm_ppi_qemu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/tpm_ppi_qemu.c b/usr.sbin/bhyve/tpm_ppi_qemu.c index 8bea45ea3208..11a306077108 100644 --- a/usr.sbin/bhyve/tpm_ppi_qemu.c +++ b/usr.sbin/bhyve/tpm_ppi_qemu.c @@ -26,7 +26,7 @@ #include "tpm_ppi.h" #define TPM_PPI_ADDRESS 0xFED45000 -#define TPM_PPI_SIZE 0x1000 +#define TPM_PPI_SIZE 0x400 #define TPM_PPI_FWCFG_FILE "etc/tpm/config" @@ -101,7 +101,7 @@ tpm_ppi_init(void **sc) struct tpm_ppi_fwcfg *fwcfg = NULL; int error; - ppi = calloc(1, sizeof(*ppi)); + ppi = calloc(1, TPM_PPI_SIZE); if (ppi == NULL) { warnx("%s: failed to allocate acpi region for ppi", __func__); error = ENOMEM; From nobody Wed Sep 4 21:07:30 2024 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 4WzZnZ3BkYz5VP0M; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnZ272Mz4Vc3; Wed, 4 Sep 2024 21:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k6a2S5HMQiQ0Ed6/nZcZI2s5UsjSt3CGvxxIPauUDDc=; b=WhqY1+mYGiaVm537RXpgyn2GXK1iaCyOoUAdXSoygrISf8HJsbnAoD/DUupylygUlwull/ uMjXHd6aWC20SiQattHGde56bZc2etkWjCiqkFB/tnlTOhB3S6ALXXqPTvlgVQzEA0Xg/H w2DX/UPBkqWtRMAk903IrllfuF0C2oqFl2y6sW4S5UbkFaaHU7R5l8H58/J/zBGRfTEDZk WPNZUZWwo2e4Rsv5djTEwEvPjCsjpvSlw/518sO0vo0BDHOacL+d0SCCjD7rYmlF4K/tlM KA8w9jIif+qBfkdnvHgnkyAlIkDjzVegtIzz6dRiR+nDDtoZfbbD02HYQsNYHA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484050; a=rsa-sha256; cv=none; b=A2F6L6SDQKIKbdfmlMV5n1doMkxASrsTXEMdW1MOtU1g+/eRTP49luEyamMKjghnnYWcx3 CYKiP3+hctfYiqKmonnaODNGFYBbhhyyltyHmVZwRzJxDZP+crcn2wiHktaziGTf1/Ukol DcRXsXU+VbX4MB0AdOUNHJxe1IxslU+6lmORDhrhkV0NCJ8+WLUtKC6yyPi3ADwFIwmqLt 4+KSIZWwcCB01QjTWFY0oDWoVCDbrlLM/F1pXEDl4xWH0gssFfaBNZaijzQJfHaKruJTwJ rYkLGVGncJFJoRaGvW9YCWrs5oIFlCGNWIcx3nAR5smdUHG2VioFBYZRHoAZ+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=1725484050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k6a2S5HMQiQ0Ed6/nZcZI2s5UsjSt3CGvxxIPauUDDc=; b=sE50lcE0Tdo1EoOcDFjNoN650w+CHzL2JvjjkQIVWdx+P399/OaVH3y+2/etLJkfoozhzy AELGGVcsgDL8XAoypo0nIfezZJD2uplt6wJ6X/cC6c5u4qP7paSktb1+Whc+j9lnESAOvE DQVlVa6SGIihZ3NPmX1jbdbUAB3+W+6i3Xxi/bIa/o07r1zOTG1+BFEEyvSwKcd1ePGT0i jj+4Gzd1Ezvh7XQv42i8kubBUgIczA1/sfuD9rsNAZRC177SdZUElhYQIfHgYP9tuGZHyq mViXBMfQ91mJZ2BkjagpPR/y6CcrBt67GkLKGpA4UZVp+gBh1CT6pIN8uAzJ2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnZ17lBzgcS; Wed, 4 Sep 2024 21:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7Umt053188; Wed, 4 Sep 2024 21:07:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7U57053185; Wed, 4 Sep 2024 21:07:30 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:30 GMT Message-Id: <202409042107.484L7U57053185@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 31d839d66e8a - releng/14.1 - ctl: fix Use-After-Free in ctl_write_buffer 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 31d839d66e8a10693e791696ea4bfd93ec1feb34 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=31d839d66e8a10693e791696ea4bfd93ec1feb34 commit 31d839d66e8a10693e791696ea4bfd93ec1feb34 Author: Alan Somers AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 ctl: fix Use-After-Free in ctl_write_buffer The virtio_scsi device allows a guest VM to directly send SCSI commands to the kernel driver exposed on /dev/cam/ctl. This setup makes the vulnerability directly accessible from VMs through the pci_virtio_scsi bhyve device. The function ctl_write_buffer sets the CTL_FLAG_ALLOCATED flag, causing the kern_data_ptr to be freed when the command finishes processing. However, the buffer is still stored in lun->write_buffer, leading to a Use-After-Free vulnerability. Since the buffer needs to persist indefinitely, so it can be accessed by READ BUFFER, do not set CTL_FLAG_ALLOCATED. Reported by: Synacktiv Reviewed by: Pierre Pronchery Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-45063 Security: HYP-03 Sponsored by: Axcient Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46424 (cherry picked from commit 670b582db6cb827a8760df942ed8af0020a0b4d0) (cherry picked from commit 29937d7a1a0a3061c6ae12b5b35cc32b03829501) Approved by: so --- sys/cam/ctl/ctl.c | 19 +++++++++++-------- sys/cam/ctl/ctl_private.h | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index a315c5ef7df3..7fb38c794a4c 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5673,21 +5673,24 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) return (CTL_RETVAL_COMPLETE); } + if (lun->write_buffer == NULL) { + lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, + M_CTL, M_WAITOK); + } + /* - * If we've got a kernel request that hasn't been malloced yet, - * malloc it and tell the caller the data buffer is here. + * If this kernel request hasn't started yet, initialize the data + * buffer to the correct region of the LUN's write buffer. Note that + * this doesn't set CTL_FLAG_ALLOCATED since this points into a + * persistent buffer belonging to the LUN rather than a buffer + * dedicated to this request. */ - if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) { - if (lun->write_buffer == NULL) { - lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); - } + if (ctsio->kern_data_ptr == NULL) { ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; ctsio->kern_data_len = len; ctsio->kern_total_len = len; ctsio->kern_rel_offset = 0; ctsio->kern_sg_entries = 0; - ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED; ctsio->be_move_done = ctl_config_move_done; ctl_datamove((union ctl_io *)ctsio); diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 04846f80e913..db8e748ec014 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -411,6 +411,14 @@ struct ctl_lun { uint8_t pr_res_type; int prevent_count; uint32_t *prevent; + + /* + * The READ_BUFFER and WRITE_BUFFER commands permit access to a logical + * data buffer associated with a LUN. Accesses to the data buffer do + * not affect data stored on the storage medium. To support this, + * allocate a buffer on first use that persists until the LUN is + * destroyed. + */ uint8_t *write_buffer; struct ctl_devid *lun_devid; TAILQ_HEAD(tpc_lists, tpc_list) tpc_lists; From nobody Wed Sep 4 21:07:31 2024 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 4WzZnb4qRtz5VNmF; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnb3C8lz4VYb; Wed, 4 Sep 2024 21:07:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkVfKFNPhV5PVlkqBPgMFDVtV4ZaT2J9S6DR70ncv7g=; b=yLxoVGGB5qoMnv0CSjxho7DHDevDhrreEHuET+IR/dAGuw3H88H3KK32CRa4wWIXs/KSKy s3M2Ov4RxUgZoDfutOLMNdYSSpn8PyPkRpL/SRCv4I4ma7qFKv6l8f7FQBtL8Zn+oUc9v/ LouyfjbDocVnJsImJqchFhuBch1qvmwooFVa4SCYzkrOV1+Yb0deuvBS/zHFN3T0+HH7oy YLCuQPGHrSCSvnbtGYQsUwbyVZrm5bQxnKoKOtCkKPvx0RWi+FpovSpv1oXxOxuXuR2Wqu gMcLNB5XBFC+8AnLUFNlbVWF1ro6Rw315OpjHidcsR5a+p4QJsN70z9RmNmyKw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484051; a=rsa-sha256; cv=none; b=wn27fqeN14zA4i8QLh/rtVHEkHeTWmbd1oOgFT/uve9xX6rDJDTybhmv/Bb0BvI+dfIFdm 7i/EnAyF4wouqvq487EVKQwU0ZvkOvjM/H4+t9exhmCd2LHXwmMgqMoUkndlTkQbtcud9r mv1x0vm5/9l9FiIO03eyWl8tHAO4q6e/C8NMweUlttcJDCqlRDYpXXLvkvwjwUJO3rTFNx bT0BEJaX4HbgFONPFDv6sbAr2WtBaahlNlf0yNnVK7IE2UtVexkxSn/z+2R7eJXm3ze9EH xxP6ONEETASAYOyoK5KZHO0OElxNbYlqpP98PZJC3ktHb7p8gJkTdZI4hbkBFw== 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=1725484051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkVfKFNPhV5PVlkqBPgMFDVtV4ZaT2J9S6DR70ncv7g=; b=eclOFkzcYFRaI9iEqMsLLeXOKxJ/AAi6Xt+nNf3FNtP4yLyeDPRV+d3MhDNSP6vRaQmK4Z Gi9WpeBWFfNFkc/KgWmUPKM893r7VJUcgOISEOcNOT8EHllQW/fJv3JEgccQzhtouFSuY7 k1nbf8m+8nsg3B33dwGAK0XbVcjd/FgBmF6I9YmnhEKN5sRj1O+9cY4I1S/ka3D77d+wjD vV3TtmRaJ0BZlBUX1qXgUXxAP8YLWK2TCegbLAHG1szV8luoaxWgJObXQK+0c3X8zEh2uX XfoHha4uTcKfUstVwR9zvhDtFvoPIhGFEJlXSeybbfixmJkO3vWF2dRzt93e/w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnb1sh4zgcT; Wed, 4 Sep 2024 21:07:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7VlA053242; Wed, 4 Sep 2024 21:07:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7VVE053239; Wed, 4 Sep 2024 21:07:31 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:31 GMT Message-Id: <202409042107.484L7VVE053239@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 235b93d39d71 - releng/14.1 - ctl: fix memory disclosure in read/write buffer commands 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 235b93d39d71860983b15ce8ad63f0a939cd1be9 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=235b93d39d71860983b15ce8ad63f0a939cd1be9 commit 235b93d39d71860983b15ce8ad63f0a939cd1be9 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 ctl: fix memory disclosure in read/write buffer commands The functions ctl_write_buffer() and ctl_read_buffer() are vulnerable to a kernel memory disclosure caused by an uninitialized kernel allocation. If one of these functions is called for the first time for a given LUN, a kernel allocation is performed without the M_ZERO flag. Then a call to ctl_read_buffer() returns the content of this allocation, which may contain kernel data. Reported by: Synacktiv Reviewed by: asomers Reviewed by: jhb Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-8178 Security: HYP-05 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45952 (cherry picked from commit ea44766b78d639d3a89afd5302ec6feffaade813) (cherry picked from commit cdfdb3b0086268cdc365174ebfb69e66b5dde0b5) Approved by: so --- sys/cam/ctl/ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 7fb38c794a4c..9752ca93d36c 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5634,7 +5634,7 @@ ctl_read_buffer(struct ctl_scsiio *ctsio) } else { if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } ctsio->kern_data_ptr = lun->write_buffer + buffer_offset; } @@ -5675,7 +5675,7 @@ ctl_write_buffer(struct ctl_scsiio *ctsio) if (lun->write_buffer == NULL) { lun->write_buffer = malloc(CTL_WRITE_BUFFER_SIZE, - M_CTL, M_WAITOK); + M_CTL, M_WAITOK | M_ZERO); } /* From nobody Wed Sep 4 21:07:32 2024 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 4WzZnd0wM3z5VP0P; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnc4KpWz4VlC; Wed, 4 Sep 2024 21:07:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Gdwvn2/VaSNchUIeWbMja+/6yhEzaAHckRocFMwur9E=; b=v0mUSFkYigvCHgUB+6WZ2RG+09iwfz42VSZfqpHNQVTArxBS4wlM8Khi8kaA/iv6tLSgDu ACojsY0Luwk6IYAx8LVYCryrZLes47wU4P4GUD+QEdkzzNOISRjXhHuEtTYx2Z1DrLHP8K HFeqi4/DsiOEGr7dKmn25yE1A63skINYmM49wf4Aagir1J+B3UR4EoI+ofMST1oRiHlRdG We+dSnomeVB4cCtOdvczu/UzpsBKSzhAL6STtDxble4BkTyIEe1k7NLWApfwg1gg3+xwj6 nulQaUdEqEsICJTGzkziOOrWtctCRMoKqLaH8FsyzWC2qaE/yKPQETQnmVq6JA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484052; a=rsa-sha256; cv=none; b=NUposMYSWmGvmyIOkJOne9V9UjMmO3JBCsi/Ao9l05LquxlJ/uSxJ95uZeu8vRDuJEVU27 x4QXCbVohyT4oillDnGPRPzYmGrxFQNFAY0CLrTwyEx4rPJrMMsiU0pPpeR42YG3+qwQm/ zkO31wkJeT61lN9H7442rBFbL60rrWrXQhdUVehrfkOQftz6r0EFrBufY3MdMNmShVbpSd 4Dew7pYT7tQSlUoJ574xT0/m4BS1ZtK2wfHTpr4xCXZiT1GSy3eR/diGPrA0IPHV1r2oAu s9i65OB7Nhp/7XunT0mpUybEu9bWOooYIqRpW2DG1ohhbg74wGoNCeQOh4Q8Mw== 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=1725484052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Gdwvn2/VaSNchUIeWbMja+/6yhEzaAHckRocFMwur9E=; b=JJUbZ7IdCY4PGMpgtFoseRbu7xrWV2mj8sBcAqubzxl2KpVfS7+YakIYDm4hzu3/gAZcoH fPLi2VAzDiJh8xvWvC6PFb+KtKgm+OPUYPbJlXpLEJlvjrqSK7tXw7W+/cQf09RFHY/6Vu tIPlER7kVjOvb7lqtcLnUfzQXYMyDR1vfC8TxxyzFC1wAwKMSyehXu9Hb7jt2VbwdupHF8 QOxrzD6lZxG+EwXrNG7cXAtYvooj3k0wtnBJnPHVHdCUjPtUWZsT45Xl3FM87jiD54Uo/h NuosIDU4jVuYEzb4J/HETTbGsh9r1YSBHf5SX93NkIbLv1/dGhuoG7E/hArVYA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnc2hLqzgcV; Wed, 4 Sep 2024 21:07:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7WLj053288; Wed, 4 Sep 2024 21:07:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7W1F053285; Wed, 4 Sep 2024 21:07:32 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:32 GMT Message-Id: <202409042107.484L7W1F053285@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 1c872882803a - releng/14.1 - ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 1c872882803ad215e2c4bf867885d70e40f6f7f5 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1c872882803ad215e2c4bf867885d70e40f6f7f5 commit 1c872882803ad215e2c4bf867885d70e40f6f7f5 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 ctl: fix Out-Of-Bounds access in ctl_report_supported_opcodes This vulnerability is directly accessible to a guest VM through the pci_virtio_scsi bhyve device. In the function ctl_report_supported_opcodes() accessible from the VM, the option RSO_OPTIONS_OC_ASA does not check the requested service_action value before accessing &ctl_cmd_table[]. Reported by: Synacktiv Reviewed by: asomers Security: FreeBSD-SA-24:11.ctl Security: CVE-2024-42416 Security: HYP-06 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46027 (cherry picked from commit af438acbfde3d25dbdc82b2b3d72380f0191e9d9) (cherry picked from commit 803e0c2ab29bb6b715c38e82da4930d46590e8e0) Approved by: so --- sys/cam/ctl/ctl.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 9752ca93d36c..ede6b7d88b94 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -7514,20 +7514,19 @@ ctl_report_supported_opcodes(struct ctl_scsiio *ctsio) case RSO_OPTIONS_OC_SA: if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) == 0 || service_action >= 32) { - ctl_set_invalid_field(/*ctsio*/ ctsio, - /*sks_valid*/ 1, - /*command*/ 1, - /*field*/ 2, - /*bit_valid*/ 1, - /*bit*/ 2); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); + goto invalid; } - /* FALLTHROUGH */ + total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; + break; case RSO_OPTIONS_OC_ASA: + if ((ctl_cmd_table[opcode].flags & CTL_CMD_FLAG_SA5) != 0 && + service_action >= 32) { + goto invalid; + } total_len = sizeof(struct scsi_report_supported_opcodes_one) + 32; break; default: +invalid: ctl_set_invalid_field(/*ctsio*/ ctsio, /*sks_valid*/ 1, /*command*/ 1, From nobody Wed Sep 4 21:07:33 2024 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 4WzZnd6njCz5VNmL; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnd4DQYz4VgG; Wed, 4 Sep 2024 21:07:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fBhSwltYQSeZtIphC+u8w4VrIbecW2yxITjl37HD0m8=; b=KW4TPC4mbVD+K6UQzXwJAbCBfY7EkkyJ096tgkWHSqfa1xi+QGdekCp8DKyBRn783UwNQD PWdrdGTe8iNHIvpyI+TDf6klV8UdNLpeEEpNuzmbln6U0SVHYsJOzASDn5Lx+Iqm2R8DIJ Zivxd5r6UDm5IgiiTadYP9KfOcJvGeLbiGWvOHUymiT+GMopSc2N+Vg0mPyAYhabGtovCB lVbyBkNhp1Qjf4WOz1nsVjS3P7rKDrrHb68+YbaULY6DlS57qNOepAVatICvtODqghp2kC yvfSS/qx9xdwA+iyW6a6zUiRtoQ/MDyGOvKlqOZWvAWIrh08xYeyscu71dordg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484053; a=rsa-sha256; cv=none; b=uCrKjRquWVMgnr5tiHAYoJNBZkw3V3tA7kBJA9q6wLN0qzIlvJJxYSKQpgzJAoFUZKulkF 2OmXcWxEEp37fOF1hcK65C+6a9Tm6Ebchfo4MjTkQfIXOTcLeqYrLCKsM1mXAL2kgAoSh1 YADEjHZXEWM34tob1PkxwGL6WPnQ9vp71KSluzoHHqjFi9EuHGYHZsIe1aV0p4LfcuLmvE kjs+0J0DoHiZT/ys7QBBfKMcpTzurNdXg6dAb9u/QC9iADGkBBLuXmrkw3Uc0U8zy4FJ8W a/cX4m7tBmwk8i4pL32CVVFkXu0GESjoTQ9osjJ91+t0nLIkcnYCt3wr0V/7sA== 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=1725484053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fBhSwltYQSeZtIphC+u8w4VrIbecW2yxITjl37HD0m8=; b=c11/yLIFe7w3H+3r4/AdkIB8fKp9iPCZb7kyVHHzJfww0y/0hGTC1mXQcnedzRflW2lXka uvXdjAdyim9mi/hKdTZBOqTR7PVK9ibA/v1pZVgnhnE6GzxVAdU/RVwbkfDraphLlGK6bm U8Jq92yHjqXdvQcwscplXANujSKp8+NOI2LpMNfhc7NyIMKtpvq8aklLwm9uw7A5zIiyO8 QfEHboOTp17kqOBDR44PmkVPLd4Ks+/2UTWZxlA9516MshjZ8xk6wFG+O3m040GFa4+vQh RIiprNh29cC6F2dbW/ODpX38TaqED2IenioteULSpiNnCuU2p5uWMcO8ve/gBQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnd3qz9zgg3; Wed, 4 Sep 2024 21:07:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7XpB053342; Wed, 4 Sep 2024 21:07:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7Xd9053339; Wed, 4 Sep 2024 21:07:33 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:33 GMT Message-Id: <202409042107.484L7Xd9053339@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d30ffde0806e - releng/14.1 - ctl: avoid heap info leak in ctl_request_sense 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: d30ffde0806e8738b6548d2a890a9eb7d06c18fb Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d30ffde0806e8738b6548d2a890a9eb7d06c18fb commit d30ffde0806e8738b6548d2a890a9eb7d06c18fb Author: Ed Maste AuthorDate: 2024-08-20 18:12:47 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 ctl: avoid heap info leak in ctl_request_sense Previously 3 bytes of data from the heap could be leaked to ctl consumers. Reported by: Synacktiv Reviewed by: asomers, mav Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46091 (cherry picked from commit db87c98168b1605f067d283fa36a710369c3849d) (cherry picked from commit 131b7dcb2fbf8f15815387f60536d9cc16585b0d) Approved by: so --- sys/cam/ctl/ctl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index ede6b7d88b94..0e0d79d15d8f 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -9342,14 +9342,8 @@ ctl_request_sense(struct ctl_scsiio *ctsio) sense_ptr = (struct scsi_sense_data *)ctsio->kern_data_ptr; ctsio->kern_sg_entries = 0; ctsio->kern_rel_offset = 0; - - /* - * struct scsi_sense_data, which is currently set to 256 bytes, is - * larger than the largest allowed value for the length field in the - * REQUEST SENSE CDB, which is 252 bytes as of SPC-4. - */ - ctsio->kern_data_len = cdb->length; - ctsio->kern_total_len = cdb->length; + ctsio->kern_data_len = ctsio->kern_total_len = + MIN(cdb->length, sizeof(*sense_ptr)); /* * If we don't have a LUN, we don't have any pending sense. From nobody Wed Sep 4 21:07:34 2024 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 4WzZnf6tymz5VNvd; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnf5VY5z4Vlh; Wed, 4 Sep 2024 21:07:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCtgKR5H2k8U5AB6Pc1Z7lqQG7ZWRWNH/K4pKLcEz2c=; b=mcNL2BbC0LnAiHqyiyQhLdvsvBS2JmVHZXKAkjhDYbPvyKm3FZ3BpzSt3vMIeWkUnIkhbx FLr4WiVfplvblVK0jpwE2BLi+wVL4F5WuM54hXnvzca+KhrEUyKzQrS+QBeSSjnIPc7XYH W50l7i08eqBai4jyNpeip2e2LB2/JKIx0qfsFzEK+eilAOxslLWOCMEOGAjFedozO6wvBQ Nfqo5xHhP8+Sr+oIg0XmRXeuHWwtWejtk5tDvq4gKG6p3/ItBr8auBtDg31ZEsi1bfSn6T RUh2Z2aPpdLdBlbPpiQMlX/XXovsOXSFs0SWXpA/2nwRx6E22r3QGBkdvSkzWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484054; a=rsa-sha256; cv=none; b=Kv80Qtzhh3fVs6xpGthsOQbnVZ52M2VoWm6yjL5MqLbnvt9Dc4eTgzAmUf9CR9oLoIR+Jh pSS4Y/o3zwZZ9Ws/PVHT3v29SowJZxNFcJ4h2LnEruThWrbT6NMVbvDtdr9eBdSWf4O9U3 Zs5/m1itLQ2pL+OvfXqUMRmGZ3I9G7n/Khs+u1jLsDmL+n6GyN9+kXkFKYdo87oNK/XRge OsB/X6dr7+kaWUGJjTEvENAMV3Tp13PGqTpcv3oT/Uw8q+dsTdM04+TIlqoV+GpQg2K/j8 Xo3zqbc2uMxr2qyWaUdc6+SX9uq9hlmmxV9ag7TiTKj18oox3RKTv/RRE9yoqw== 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=1725484054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCtgKR5H2k8U5AB6Pc1Z7lqQG7ZWRWNH/K4pKLcEz2c=; b=cicVbeY1gkgy1YvV11YuXXX4dfRbueui1dRjZYfp7c/cY+2VBqXQGwLTTD+cnn56t3kByi sRCKwEijlWTVuyiHvYywUKXSib/8XRrgfhgc6+e+sxlv4Pq1LA4Yyt/SX7ljC5WZMywbhG uT5Fo/W8fZXtbbhoaUOAAo1uNsTgIu2rfgSJCJUKNW6mJ1/ohxFR3AtcSN/TUfcSXOoyNG cLUMndiY7aLHBrQ71s0LiOMK7pk0uQzb5hGZwLXxkv0BmCTf5OBb91JW4USz0CGxRJKS0C pqIZkT78Y4rDvdeaCbGooBTxlBnz7Mff5eJP0jW1CrBR9BykzfkyA8fdMq75ug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnf4rHHzgq0; Wed, 4 Sep 2024 21:07:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7Yqm053398; Wed, 4 Sep 2024 21:07:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7Yxb053395; Wed, 4 Sep 2024 21:07:34 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:34 GMT Message-Id: <202409042107.484L7Yxb053395@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: bb245c142075 - releng/14.1 - bhyve: fix off by one error in pci_xhci 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: bb245c1420753a68f9a17c1ee78ab84ddaf30b61 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=bb245c1420753a68f9a17c1ee78ab84ddaf30b61 commit bb245c1420753a68f9a17c1ee78ab84ddaf30b61 Author: Pierre Pronchery AuthorDate: 2024-09-04 14:38:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 bhyve: fix off by one error in pci_xhci The function pci_xhci_find_stream validates that the streamid is valid but the bound check accepts up to ep_MaxPStreams included. The bug results in an out-of-bounds write on the heap with controlled data. Reported by: Synacktiv Reviewed by: jhb Security: FreeBSD-SA-24:12.bhyve Security: CVE-2024-32668 Security: HYP-04 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45994 (cherry picked from commit 5c9308a4130858598c76f3ae6e3e3dfb41ccfe68) (cherry picked from commit 90af1336ed5e3c8556147325c4841c68639c4b63) Approved by: so --- usr.sbin/bhyve/pci_xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/bhyve/pci_xhci.c b/usr.sbin/bhyve/pci_xhci.c index 99c1d20b3378..791c56a45f0b 100644 --- a/usr.sbin/bhyve/pci_xhci.c +++ b/usr.sbin/bhyve/pci_xhci.c @@ -660,7 +660,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid) devep = &dev->eps[epid]; pstreams = XHCI_EPCTX_0_MAXP_STREAMS_GET(ep_ctx->dwEpCtx0); if (pstreams > 0) { - DPRINTF(("init_ep %d with pstreams %d", epid, pstreams)); + DPRINTF(("init_ep %d with pstreams %u", epid, pstreams)); assert(devep->ep_sctx_trbs == NULL); devep->ep_sctx = XHCI_GADDR(dev->xsc, ep_ctx->qwEpCtx2 & @@ -1202,7 +1202,7 @@ pci_xhci_find_stream(struct pci_xhci_softc *sc, struct xhci_endp_ctx *ep, } /* only support primary stream */ - if (streamid > devep->ep_MaxPStreams) + if (streamid >= devep->ep_MaxPStreams) return (XHCI_TRB_ERROR_STREAM_TYPE); sctx = (struct xhci_stream_ctx *)XHCI_GADDR(sc, ep->qwEpCtx2 & ~0xFUL) + From nobody Wed Sep 4 21:07:35 2024 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 4WzZnh1v99z5VNmR; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZng6wRrz4Vnt; Wed, 4 Sep 2024 21:07:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yCI3yqPdSE94pKfIABNSqfVIzr3qHjvjDVPKauIfVcE=; b=cx4Q985PSiSzGyBROECoC/8EHLGdcPOnXZikFvYeceMqWGBwG8X4v1NXixd4shBTBrH5EC eFa8CeVdS9gBFAcqfKATthDLtYLHqlN0EeqqQA/1lrb7s7J7oo5x1eO3guZFbCf3ns/iXv 523ev0hKMG+p+Udn+cd42zi9oZZkIXnGNRqukmACuCEFH8RWKt5Jtwwj2etcc5mfmYxX3D axthIGgW7IOMOb2Zslb7dwlwouhclh3A/MlxkaF6zHIAGMtbKD/M5dzSmt3GSHwuq0DhOr tfZb02ud9aE5CbuXggLkDLIeSnclFtwZNPWCNtihl8lip5Eh+MlokR6OFz6iEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484056; a=rsa-sha256; cv=none; b=Blt5KflHLHkdb32pKtIuiMFqJYf0JT+Yp1eHi1R/Hhcpa0Z+tsyZKpF5RaEPyejxGpMxD+ hIDLdx4g/yYN/kOKUoxY6J1f57Xjj6TWwwyggPpGp7fWSVa7NAwuhsoUhNfpIVD2r21c8q /YJfj72q5Fyl4ZH4d0RGD9H5tAkihRclVi86y1jjo4ERUHZtTyku4WY6ZL3pKruznDbgmO R1+YAHiFdjoX3tAh0tZZ3qqtgZ9Up96I4Hew7QhzOO0zclL/ovmkZC/yV+00vLI42Xq2tQ 5Gz5UuOQlQJkWh6nWaQH5YOyw/6ihMXrn04odMjG2XQ1tO/jbki3KJdpLTrAAQ== 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=1725484056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yCI3yqPdSE94pKfIABNSqfVIzr3qHjvjDVPKauIfVcE=; b=i57B6b/64eHuL0Ed+9rAVip5KEjfgNv/IjP03Wb+nhti5yVRJ7DXfYWKbIGHaG4w1rv2hB hg0TJgYNaZ4guY5gdKmQaVh6cgB6FD0i8Y3dFUDWX0JblXSH6qU6x1CUVwfogMBXZI3bAb LBFpMqordIBDIDIk1gVLFCW8s5RXymKaqAH3uxArC7V6fPmUUF4Bte/dvVXsorbr02iLLX sBgG4ZruU1MAwSNeehQomfSExYYLQebZVY3ujhNu/64P596DyB/rzqfHxN9es5IreZs9tp a1B4DJQCZsXIk51phD6Nv55BL34wp8megjNG2zAJklOqtiV/jArlikCwMvhw6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZng60l4zgg4; Wed, 4 Sep 2024 21:07:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7ZiY053456; Wed, 4 Sep 2024 21:07:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7ZYG053453; Wed, 4 Sep 2024 21:07:35 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:35 GMT Message-Id: <202409042107.484L7ZYG053453@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 9a5a7c90d5e5 - releng/14.1 - openssl: Avoid type errors in EAI-related name check logic. 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 9a5a7c90d5e5971fe2b9c9265e9279a6f173a8f3 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=9a5a7c90d5e5971fe2b9c9265e9279a6f173a8f3 commit 9a5a7c90d5e5971fe2b9c9265e9279a6f173a8f3 Author: Viktor Dukhovni AuthorDate: 2024-06-19 11:04:11 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 openssl: Avoid type errors in EAI-related name check logic. The incorrectly typed data is read only, used in a compare operation, so neither remote code execution, nor memory content disclosure were possible. However, applications performing certificate name checks were vulnerable to denial of service. The GENERAL_TYPE data type is a union, and we must take care to access the correct member, based on `gen->type`, not all the member fields have the same structure, and a segfault is possible if the wrong member field is read. The code in question was lightly refactored with the intent to make it more obviously correct. Security: CVE-2024-6119 Obtained from: OpenSSL Project (cherry picked from commit 1486960d6cdb052e4fc0109a56a0597b4e902ba1) (cherry picked from commit 5946b0c6cbc77e6c5f62f5f7e635c6036e14f4d0) Approved by: so --- crypto/openssl/crypto/x509/v3_utl.c | 78 +++++++++++++++------- crypto/openssl/test/recipes/25-test_eai_data.t | 12 +++- .../test/recipes/25-test_eai_data/kdc-cert.pem | 21 ++++++ .../recipes/25-test_eai_data/kdc-root-cert.pem | 16 +++++ .../openssl/test/recipes/25-test_eai_data/kdc.sh | 41 ++++++++++++ 5 files changed, 142 insertions(+), 26 deletions(-) diff --git a/crypto/openssl/crypto/x509/v3_utl.c b/crypto/openssl/crypto/x509/v3_utl.c index 6e4ef26ed608..304463d572c6 100644 --- a/crypto/openssl/crypto/x509/v3_utl.c +++ b/crypto/openssl/crypto/x509/v3_utl.c @@ -916,36 +916,64 @@ static int do_x509_check(X509 *x, const char *chk, size_t chklen, ASN1_STRING *cstr; gen = sk_GENERAL_NAME_value(gens, i); - if ((gen->type == GEN_OTHERNAME) && (check_type == GEN_EMAIL)) { - if (OBJ_obj2nid(gen->d.otherName->type_id) == - NID_id_on_SmtpUTF8Mailbox) { - san_present = 1; - - /* - * If it is not a UTF8String then that is unexpected and we - * treat it as no match - */ - if (gen->d.otherName->value->type == V_ASN1_UTF8STRING) { - cstr = gen->d.otherName->value->value.utf8string; - - /* Positive on success, negative on error! */ - if ((rv = do_check_string(cstr, 0, equal, flags, - chk, chklen, peername)) != 0) - break; - } - } else + switch (gen->type) { + default: + continue; + case GEN_OTHERNAME: + switch (OBJ_obj2nid(gen->d.otherName->type_id)) { + default: continue; - } else { - if ((gen->type != check_type) && (gen->type != GEN_OTHERNAME)) + case NID_id_on_SmtpUTF8Mailbox: + /*- + * https://datatracker.ietf.org/doc/html/rfc8398#section-3 + * + * Due to name constraint compatibility reasons described + * in Section 6, SmtpUTF8Mailbox subjectAltName MUST NOT + * be used unless the local-part of the email address + * contains non-ASCII characters. When the local-part is + * ASCII, rfc822Name subjectAltName MUST be used instead + * of SmtpUTF8Mailbox. This is compatible with legacy + * software that supports only rfc822Name (and not + * SmtpUTF8Mailbox). [...] + * + * SmtpUTF8Mailbox is encoded as UTF8String. + * + * If it is not a UTF8String then that is unexpected, and + * we ignore the invalid SAN (neither set san_present nor + * consider it a candidate for equality). This does mean + * that the subject CN may be considered, as would be the + * case when the malformed SmtpUtf8Mailbox SAN is instead + * simply absent. + * + * When CN-ID matching is not desirable, applications can + * choose to turn it off, doing so is at this time a best + * practice. + */ + if (check_type != GEN_EMAIL + || gen->d.otherName->value->type != V_ASN1_UTF8STRING) + continue; + alt_type = 0; + cstr = gen->d.otherName->value->value.utf8string; + break; + } + break; + case GEN_EMAIL: + if (check_type != GEN_EMAIL) continue; - } - san_present = 1; - if (check_type == GEN_EMAIL) cstr = gen->d.rfc822Name; - else if (check_type == GEN_DNS) + break; + case GEN_DNS: + if (check_type != GEN_DNS) + continue; cstr = gen->d.dNSName; - else + break; + case GEN_IPADD: + if (check_type != GEN_IPADD) + continue; cstr = gen->d.iPAddress; + break; + } + san_present = 1; /* Positive on success, negative on error! */ if ((rv = do_check_string(cstr, alt_type, equal, flags, chk, chklen, peername)) != 0) diff --git a/crypto/openssl/test/recipes/25-test_eai_data.t b/crypto/openssl/test/recipes/25-test_eai_data.t index 522982ddfb80..e18735d89aad 100644 --- a/crypto/openssl/test/recipes/25-test_eai_data.t +++ b/crypto/openssl/test/recipes/25-test_eai_data.t @@ -21,16 +21,18 @@ setup("test_eai_data"); #./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/utf8_chain.pem test/recipes/25-test_eai_data/ascii_leaf.pem #./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/ascii_chain.pem test/recipes/25-test_eai_data/utf8_leaf.pem -plan tests => 12; +plan tests => 16; require_ok(srctop_file('test','recipes','tconversion.pl')); my $folder = "test/recipes/25-test_eai_data"; my $ascii_pem = srctop_file($folder, "ascii_leaf.pem"); my $utf8_pem = srctop_file($folder, "utf8_leaf.pem"); +my $kdc_pem = srctop_file($folder, "kdc-cert.pem"); my $ascii_chain_pem = srctop_file($folder, "ascii_chain.pem"); my $utf8_chain_pem = srctop_file($folder, "utf8_chain.pem"); +my $kdc_chain_pem = srctop_file($folder, "kdc-root-cert.pem"); my $out; my $outcnt = 0; @@ -56,10 +58,18 @@ SKIP: { ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $ascii_pem]))); ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem, $utf8_pem]))); +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $kdc_chain_pem, $kdc_pem]))); ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $utf8_pem]))); ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem, $ascii_pem]))); +# Check an otherName does not get misparsed as an DNS name, (should trigger ASAN errors if violated). +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_hostname", 'mx1.example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); +# Check an otherName does not get misparsed as an email address, (should trigger ASAN errors if violated). +ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", 'joe@example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); +# We expect SmtpUTF8Mailbox to be a UTF8 String, not an IA5String. +ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", 'moe@example.com', "-CAfile", $kdc_chain_pem, $kdc_pem]))); + #Check that we get the expected failure return code with({ exit_checker => sub { return shift == 2; } }, sub { diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem new file mode 100644 index 000000000000..e8a2c6f55d45 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-cert.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDbDCCAlSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARSb290 +MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAXMRUwEwYDVQQDDAxU +RVNULkVYQU1QTEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6wfP+ +6go79dkpo/dGLMlPZ7Gw/Q6gUYrCWZWUEgEeRVHCrqOlgUEyA+PcWas/XDPUxXry +BQlJHLvlqamAQn8gs4QPBARFYWKNiTVGyaRkgNA1N5gqyZdrP9UE+ZJmdqxRAAe8 +vvpGZWSgevPhLUiSCFYDiD0Rtji2Hm3rGUrReQFBQDEw2pNGwz9zIaxUs08kQZcx +Yzyiplz5Oau+R/6sAgUwDlrD9xOlUxx/tA/MSDIfkK8qioU11uUZtO5VjkNQy/bT +7zQMmXxWgm2MIgOs1u4YN7YGOtgqHE9v9iPHHfgrkbQDtVDGQsa8AQEhkUDSCtW9 +3VFAKx6dGNXYzFwfAgMBAAGjgcgwgcUwHQYDVR0OBBYEFFR5tZycW19DmtbL4Zqj +te1c2vZLMAkGA1UdIwQCMAAwCQYDVR0TBAIwADCBjQYDVR0RBIGFMIGCoD8GBisG +AQUCAqA1MDOgDhsMVEVTVC5FWEFNUExFoSEwH6ADAgEBoRgwFhsGa3JidGd0GwxU +RVNULkVYQU1QTEWgHQYIKwYBBQUHCAmgERYPbW9lQGV4YW1wbGUuY29tgQ9qb2VA +ZXhhbXBsZS5jb22CD214MS5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA +T0xzVtVpRtaOzIhgzw7XQUdzWD5UEGSJJ1cBCOmKUWwDLTAouCYLFB4TbEE7MMUb +iuMy60bjmVtvfJIXorGUgSadRe5RWJ5DamJWvPA0Q9x7blnEcXqEF+9Td+ypevgU +UYHFmg83OYwxOsFXZ5cRuXMk3WCsDHQIBi6D1L6oDDZ2pfArs5mqm3thQKVlqyl1 +El3XRYEdqAz/5eCOFNfwxF0ALxjxVr/Z50StUZU8I7Zfev6+kHhyrR7dqzYJImv9 +0fTCOBEMjIETDsrA70OxAMu4V16nrWZdJdvzblS2qrt97Omkj+2kiPAJFB76RpwI +oDQ9fKfUOAmUFth2/R/eGA== +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem new file mode 100644 index 000000000000..a74c96bf3146 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc-root-cert.pem @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICnDCCAYQCCQCBswYcrlZSHjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARS +b290MCAXDTI0MDYyMDA2MTQxNVoYDzIxMjQwNjIwMDYxNDE1WjAPMQ0wCwYDVQQD +DARSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqRj8S4kBbIUj +61kZfi6nE35Q38U140+qt4uAiwAhKumfVHlBM0zQ98WFt5zMHIBQwIb3yjc2zj+0 +qzUnQfwm1r/RfcMmBPEti9Ge+aEMSsds2gMXziOFM8wd2aAFPy7UVE0XpEWofsRK +MGi61MKVdPSbGIxBwY9VW38/7D/wf1HtJe7y0xpuecR7GB2XAs+qST59NjuF+7wS +dLM8Hb3TATgeYbXXWsRJgwz+SPzExg5WmLnU+7y4brZ32dHtdSmkRVSgSlaIf7Xj +3Tc6Zi7I+W/JYk7hy1zUexVdWCak4PHcoWrXe0gNNN/t8VfLfMExt5z/HIylXnU7 +pGUyqZlTGQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAHpLF1UCRy7b6Hk0rLokxI +lgwiH9BU9mktigAGASvkbllpt+YbUbWnuYAvpHBGiP1qZtfX2r96UrSJaGO9BEzT +Gp9ThnSjoj4Srul0+s/NArU22irFLmDzbalgevAmm9gMGkdqkiIm/mXbwrPj0ncl +KGicevXryVpvaP62eZ8cc3C4p97frMmXxRX8sTdQpD/gRI7prdEILRSKveqT+AEW +7rFGM5AOevb4U8ddop8A3D/kX0wcCAIBF6jCNk3uEJ57jVcagL04kPnVfdRiedTS +vfq1DRNcD29d1H/9u0fHdSn1/+8Ep3X+afQ3C6//5NvOEaXcIGO4QSwkprQydfv8 +-----END CERTIFICATE----- diff --git a/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh new file mode 100755 index 000000000000..7a8dbc719fb7 --- /dev/null +++ b/crypto/openssl/test/recipes/25-test_eai_data/kdc.sh @@ -0,0 +1,41 @@ +#! /usr/bin/env bash + +# Create a root CA, signing a leaf cert with a KDC principal otherName SAN, and +# also a non-UTF8 smtpUtf8Mailbox SAN followed by an rfc822Name SAN and a DNS +# name SAN. In the vulnerable EAI code, the KDC principal `otherName` should +# trigger ASAN errors in DNS name checks, while the non-UTF8 `smtpUtf8Mailbox` +# should likewise lead to ASAN issues with email name checks. + +rm -f root-key.pem root-cert.pem +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-root-key.pem \ + -x509 -subj /CN=Root -days 36524 -out kdc-root-cert.pem + +exts=$( + printf "%s\n%s\n%s\n%s = " \ + "subjectKeyIdentifier = hash" \ + "authorityKeyIdentifier = keyid" \ + "basicConstraints = CA:false" \ + "subjectAltName" + printf "%s, " "otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name" + printf "%s, " "otherName:1.3.6.1.5.5.7.8.9;IA5:moe@example.com" + printf "%s, " "email:joe@example.com" + printf "%s\n" "DNS:mx1.example.com" + printf "[kdc_princ_name]\n" + printf "realm = EXP:0, GeneralString:TEST.EXAMPLE\n" + printf "principal_name = EXP:1, SEQUENCE:kdc_principal_seq\n" + printf "[kdc_principal_seq]\n" + printf "name_type = EXP:0, INTEGER:1\n" + printf "name_string = EXP:1, SEQUENCE:kdc_principal_components\n" + printf "[kdc_principal_components]\n" + printf "princ1 = GeneralString:krbtgt\n" + printf "princ2 = GeneralString:TEST.EXAMPLE\n" + ) + +printf "%s\n" "$exts" + +openssl req -nodes -new -newkey rsa:2048 -keyout kdc-key.pem \ + -subj "/CN=TEST.EXAMPLE" | + openssl x509 -req -out kdc-cert.pem \ + -CA "kdc-root-cert.pem" -CAkey "kdc-root-key.pem" \ + -set_serial 2 -days 36524 \ + -extfile <(printf "%s\n" "$exts") From nobody Wed Sep 4 21:07:36 2024 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 4WzZnj2Qzvz5VNx4; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnj0gY1z4VpC; Wed, 4 Sep 2024 21:07:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bt3Z1yFH9eEvqWDva9eDExCAgG6mnmPT9voUeMbaG/0=; b=Yt9SgucYj+RZn6DOHE+ULwa+ILKRotuujseXATzp5NrsQVNLCYHnR3+IZpNtCEFu1jEEPf W7dcShLVYxJXv2ZaWIHPlv/EtagNYxyrvGI+58an45WEh9MHRP02oyATlCqx7gkci26b97 UfRuyJrqXocMAN1erzSbvr6kQm4FPu1/HOVabhvVsZgvCvODHMaa7fbNhkAxwjR40uZmjq Zc5woBr6UmZyLd62WVjJu7Z3DT1Tqe6gh1S4Mu82IA7brS4Yb98W+7gyG88cfuHtsHtDVq AeCl/7sZPhEzEYrPBDhwiOsyWgZ/cRYVlHRvBFsvfO0Ajs8nZZh01uem9WhsYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484057; a=rsa-sha256; cv=none; b=Fz56ZglKBwV3n3Z9Czll1sEyLRZzlkqWI0x9y+OmsRpadwG3n+ligsiUVc4LVDR04IJPqn n0LNUJHFsUVm7I7n99bjEZw5hjfuJSsIGvqawAW/gh/k88VlEVl3egmnuNZ08bdR5vjjUB Cm9TRTtq/totty36JEYUL0wlp02iGPh8qPRAMxqjOg3/nDWR8Z3efOvPetMV7oIo9TqpjE HyPkEW5KcAPc0dqRc3x7zZHeVGi6l70woa7+jiw+rh8vhj+5D6XP+IYuyg6kc2MBP8B8Ne GLqIycQ0dyYGG2ZZBm7D7VnbXfBQd72nnwZKhn+iRy6+FtpaJEoMOacQJrVgvw== 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=1725484057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bt3Z1yFH9eEvqWDva9eDExCAgG6mnmPT9voUeMbaG/0=; b=L2pRVdTX5nXYSjty+o7Fp9rWBO7vBGGklpPXnfhLHrYPgvQhhJCCqvlv7J+1DGyUzVQgEn r86yNxOxFkPnkiGyIKQTjeL3FEvbZ3CXeEZEKG9BtluEu8AYF4I3U8eNPYbh7wI45uFEEq m/4nqKtWwLsGt0zJ4Rl+xMBzLfn0G47DiqwpP99qOc4ZTfAvVw4G6gyBJcm96N0h2Xt172 Iwn7BUmdqf9TbBD8DDM0Hg3Ecd0BjoIbePMPrMqQcIjRPXIxQ0PC24nTn+NrsDv8aEWmY2 o+2G8SP9FlHutcNFLsYpuO92EEDCInkmqJJ9rMygpGCTH6RtZbc3HFkt/8S9Ag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnj01Rrzgq1; Wed, 4 Sep 2024 21:07:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7ah7053504; Wed, 4 Sep 2024 21:07:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7aLu053501; Wed, 4 Sep 2024 21:07:36 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:36 GMT Message-Id: <202409042107.484L7aLu053501@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 2e27b82531e4 - releng/14.1 - umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 2e27b82531e43c1de2ce0b2a62860f437eb3a3ae Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2e27b82531e43c1de2ce0b2a62860f437eb3a3ae commit 2e27b82531e43c1de2ce0b2a62860f437eb3a3ae Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 umtx: shm: Collapse USHMF_REG_LINKED and USHMF_OBJ_LINKED flags ...into the only USHMF_LINKED, as they are always set or unset together. This is both to stop giving the impression that they can be set/unset independently, which they can't with the current code, and to make it clearer that an upcoming reference counting fix is correct. Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit dd83da532c36830a0c0aac624903849262ec6f68) (cherry picked from commit 2d4511bb81ed70d84ba6ed2ffb54e6a138653a63) Approved by: so --- sys/kern/kern_umtx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 092fcade9d19..cecb4a021cfb 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4292,8 +4292,7 @@ __umtx_op_sem2_wake(struct thread *td, struct _umtx_op_args *uap, #define USHM_OBJ_UMTX(o) \ ((struct umtx_shm_obj_list *)(&(o)->umtx_data)) -#define USHMF_REG_LINKED 0x0001 -#define USHMF_OBJ_LINKED 0x0002 +#define USHMF_LINKED 0x0001 struct umtx_shm_reg { TAILQ_ENTRY(umtx_shm_reg) ushm_reg_link; LIST_ENTRY(umtx_shm_reg) ushm_obj_link; @@ -4353,7 +4352,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); KASSERT(reg->ushm_refcnt > 0, ("reg %p refcnt 0 onlist", reg)); - KASSERT((reg->ushm_flags & USHMF_REG_LINKED) != 0, + KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); reg->ushm_refcnt++; return (reg); @@ -4393,14 +4392,11 @@ umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) reg->ushm_refcnt--; res = reg->ushm_refcnt == 0; if (res || force) { - if ((reg->ushm_flags & USHMF_REG_LINKED) != 0) { + if ((reg->ushm_flags & USHMF_LINKED) != 0) { TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, ushm_reg_link); - reg->ushm_flags &= ~USHMF_REG_LINKED; - } - if ((reg->ushm_flags & USHMF_OBJ_LINKED) != 0) { LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_OBJ_LINKED; + reg->ushm_flags &= ~USHMF_LINKED; } } return (res); @@ -4493,7 +4489,7 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); - reg->ushm_flags = USHMF_REG_LINKED | USHMF_OBJ_LINKED; + reg->ushm_flags = USHMF_LINKED; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 21:07:38 2024 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 4WzZnk4LHyz5VNsP; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnk1Ky0z4W04; Wed, 4 Sep 2024 21:07:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jyQ0YREDYlex7BEv/6sdQvIDpGqojsSUiFDszv4r9vI=; b=f1krf0Ofm8Q+GVSJoUD6OycYICK5FfqJEfRdwRdkLwutYf8Fs0GcycTnbsF53BiWLnp/Zu s+Q9ke/SxKhn8pXAI5EQh/EyGduj+Whg7Q2jpgjjfL0KRf6aYHPnOEu0A5g0YBRyNCdvLH KWhQNq7XttS96m355fw+arr6+IFIxLytn+FIilp+RYMFqjmyDRfum3x0Xhd389qUAqiEVx V9JzKyjV5ge3WkKrArMALRnth4F31y0GMC5AImW90A2Nmk5qJSLoJBjYhtBNbnyGhU1gK1 tfH4Qgkjshrk0Ffmxuqg25BPHf2ZEXhtALGp0fHhQicjKVaTpnw4lelDaU1Ihg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484058; a=rsa-sha256; cv=none; b=IO4HRPIlNxZ7TsnYrbWtB0fjV45TBoADWC/9ZN5TKWIRN+N+iJGx9g7PUXiLlAW4AAxkfC tCtq9PfWafW2+x1Pg9IkZhGptqUwJ/pLULoHO8k5JKzcuywdplOfKXMwYkR0UIkgE/0Ddf qOteI3aPcgRE++dD6xBnR9WqFEy3jiHh5HOH4OtPlBAear1Dt2lVMSQOj8v+ejhF6EPwfA YeUaFzHRloBF7MAds2t/F2jl4Jf+oe0Q3Egj17EkWy12+EHQI7Wrp/KVhvIpR5fl515rf5 tS17FzM2pZXLVZyA09sufbDUY4wclH4bjHZRuwl7M3VBN4L16uXmkgFk2P3alw== 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=1725484058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jyQ0YREDYlex7BEv/6sdQvIDpGqojsSUiFDszv4r9vI=; b=Ub34qvNemPbbuCvURLUBpAXN/DBfbjjCzCKJHdMc0XRF+DDdVLvyien+9bel1JXvtdW8fY gFQTz1iXtc6n1UJbykOUzMAEWWg0YeSEOolKUxlFH+iU4D3GTZezSccfxpLEcC4CB3YfSE mXMQ75BFlZGwGspVMlmuRtwz6mrVW+89F12HSOun0MdBzG92CDpg44zqzXFrZZrGRT0tSy 7lI8NCIkQQzU9YnEMNTA7qYgkUr7kfjYpm2EnaJFLJkNev7XT1nXWxghZ04ndUFM8wXRyc Z42vkhGoq63XyBMNLiYEmKgPnAoWPzwtu5kXV2V/lRVo16AK6gzwy23msU3Dpg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnk0vkjzgNX; Wed, 4 Sep 2024 21:07:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7cOb053567; Wed, 4 Sep 2024 21:07:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7cPg053564; Wed, 4 Sep 2024 21:07:38 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:38 GMT Message-Id: <202409042107.484L7cPg053564@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 094bd6281f72 - releng/14.1 - umtx: shm: Fix use-after-free due to multiple drops of the registry reference 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 094bd6281f729e51c009586136634fafa501a398 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=094bd6281f729e51c009586136634fafa501a398 commit 094bd6281f729e51c009586136634fafa501a398 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:54 +0000 umtx: shm: Fix use-after-free due to multiple drops of the registry reference umtx_shm_unref_reg_locked() would unconditionally drop the "registry" reference, tied to USHMF_LINKED. This is not a problem for caller umtx_shm_object_terminated(), which operates under the 'umtx_shm_lock' lock end-to-end, but it is for indirect caller umtx_shm(), which drops the lock between umtx_shm_find_reg() and the call to umtx_shm_unref_reg(true) that deregisters the umtx shared region (from 'umtx_shm_registry'; umtx_shm_find_reg() only finds registered shared mutexes). Thus, two concurrent user-space callers of _umtx_op() with UMTX_OP_SHM and flags UMTX_SHM_DESTROY, both progressing past umtx_shm_find_reg() but before umtx_shm_unref_reg(true), would then decrease twice the reference count for the single reference standing for the shared mutex's registration. Reported by: Synacktiv Reviewed by: kib Approved by: emaste (mentor) Security: FreeBSD-SA-24:14.umtx Security: CVE-2024-43102 Security: CAP-01 Sponsored by: The Alpha-Omega Project Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit 62f40433ab47ad4a9694a22a0313d57661502ca1) (cherry picked from commit be7dc4613909e528e8b4ea8aaa3ae3aa62bec1ed) Approved by: so --- sys/kern/kern_umtx.c | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index cecb4a021cfb..35fc87994c80 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4383,39 +4383,49 @@ umtx_shm_free_reg(struct umtx_shm_reg *reg) } static bool -umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { - bool res; - mtx_assert(&umtx_shm_lock, MA_OWNED); KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); - reg->ushm_refcnt--; - res = reg->ushm_refcnt == 0; - if (res || force) { - if ((reg->ushm_flags & USHMF_LINKED) != 0) { - TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], - reg, ushm_reg_link); - LIST_REMOVE(reg, ushm_obj_link); - reg->ushm_flags &= ~USHMF_LINKED; - } + + if (linked_ref) { + if ((reg->ushm_flags & USHMF_LINKED) == 0) + /* + * The reference tied to USHMF_LINKED has already been + * released concurrently. + */ + return (false); + + TAILQ_REMOVE(&umtx_shm_registry[reg->ushm_key.hash], reg, + ushm_reg_link); + LIST_REMOVE(reg, ushm_obj_link); + reg->ushm_flags &= ~USHMF_LINKED; } - return (res); + + reg->ushm_refcnt--; + return (reg->ushm_refcnt == 0); } static void -umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool force) +umtx_shm_unref_reg(struct umtx_shm_reg *reg, bool linked_ref) { vm_object_t object; bool dofree; - if (force) { + if (linked_ref) { + /* + * Note: This may be executed multiple times on the same + * shared-memory VM object in presence of concurrent callers + * because 'umtx_shm_lock' is not held all along in umtx_shm() + * and here. + */ object = reg->ushm_obj->shm_object; VM_OBJECT_WLOCK(object); vm_object_set_flag(object, OBJ_UMTXDEAD); VM_OBJECT_WUNLOCK(object); } mtx_lock(&umtx_shm_lock); - dofree = umtx_shm_unref_reg_locked(reg, force); + dofree = umtx_shm_unref_reg_locked(reg, linked_ref); mtx_unlock(&umtx_shm_lock); if (dofree) umtx_shm_free_reg(reg); @@ -4468,7 +4478,6 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); reg = uma_zalloc(umtx_shm_reg_zone, M_WAITOK | M_ZERO); - reg->ushm_refcnt = 1; bcopy(key, ®->ushm_key, sizeof(*key)); reg->ushm_obj = shm_alloc(td->td_ucred, O_RDWR, false); reg->ushm_cred = crhold(cred); @@ -4485,11 +4494,17 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, *res = reg1; return (0); } - reg->ushm_refcnt++; TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, ushm_obj_link); reg->ushm_flags = USHMF_LINKED; + /* + * This is one reference for the registry and the list of shared + * mutexes referenced by the VM object containing the lock pointer, and + * another for the caller, which it will free after use. So, one of + * these is tied to the presence of USHMF_LINKED. + */ + reg->ushm_refcnt = 2; mtx_unlock(&umtx_shm_lock); *res = reg; return (0); From nobody Wed Sep 4 21:07:39 2024 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 4WzZnl5H1bz5VNmZ; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnl2ZTHz4Vmj; Wed, 4 Sep 2024 21:07:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3GYeRoximt+45mZqHSe53o9E8uNCetwfRMcYpVW0hw=; b=domQVAiKftPGlYF911q1GsTcnbwwGPs/EsZeodGJDB4EMUH3GsczcpKR7+NMjTBMWjeSYJ xYi1Ih70LTDg6XSLcffop2WuQetDYZyZRIe34vphzfoam90Tiv+wieN6MmDkupNIoONVOv ncapeFGnv5TLbCFMUXuT+oR5bRKCF58ExL1/ZpZC2SUPvNYRMS01sQWT0Sz0VSA/mfUB76 7bo5CLZUg8rEOljy1vrbtqfkkPmXrF+Wfr59SBAHtecpOjqmWXXp4qnIBfxAL/40l9wXO9 JQOGFd2tJ/b1SoPMmBP5XJsROWPuz5BQf52TJgdPZrW27TQ7PZeo+45tOOhdZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484059; a=rsa-sha256; cv=none; b=dfBQkRKU1SSuHUwvnAJysdsQOnjWZO0cFa9JWr0kiFSbzYyzfegIkH3Y3m+U8DpryOAvop s8lm3sb/KNOuJq5q/VDYyB2T4iKSQ1A+MZ3ExV/dejtm2R8p7q9yPMio1ANSEZbYw2XCpH 8cjVjPr6GZOsX2clFOMJOTb+36vzu9Vzg6hdVqb5QeMVL4Y7Epk6iOA5OCY06oIrv9FxD0 lbPDd6y7zcD9xfpHQyqOPa9nCy0HR7LWOhp/kngpuWcug5RSBRZZ59o+8+shxTWyokAGzJ iFbxmjd3fPSmk5clYDpm4VR2SeJojEZH40MWJczCxgph2aqUjSRwI3PcGT+tnw== 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=1725484059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3GYeRoximt+45mZqHSe53o9E8uNCetwfRMcYpVW0hw=; b=to9poBY+y5yW+yl1nfKfISxw4iO0CAlQuEZs/S+QGizDsBl+lzB1D998k61HOE+uK5oJTK hZV3lnn3xVo+oZ7VX9W3tYshfz2kXXt/I9Tbj4CxqPirtd9i7X/pt8CXNz8iyOVEiAiTfp v99KzuysnZApeMomQ18qSdYKCNa3z8EPm8YMWajRWjDAzgchrqW3nw+wJM6qcWG0vhSanq ERxUxM1AqP7EZo2qocOeNgMcAx5LdZnADvnY48N/MbOkcV0XwkEeAoBkX9H0lYrVK3YzdU F9mN8Vmts4rB2dxC1I8E1Ww6zswbsrFbSHsfJB+G4SavSzVkaeaz2nulUtbVIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnl1w7Tzgg5; Wed, 4 Sep 2024 21:07:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7dZH053621; Wed, 4 Sep 2024 21:07:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7drB053618; Wed, 4 Sep 2024 21:07:39 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:39 GMT Message-Id: <202409042107.484L7drB053618@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: a89b6e8cc7da - releng/14.1 - umtx: shm: Prevent reference counting 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: a89b6e8cc7daba9e0cbbc3d85682644cd3fea6d5 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a89b6e8cc7daba9e0cbbc3d85682644cd3fea6d5 commit a89b6e8cc7daba9e0cbbc3d85682644cd3fea6d5 Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:55 +0000 umtx: shm: Prevent reference counting overflow This hardens against provoked use-after-free occurences should there be reference counting leaks in the future (which is currently not the case). At the deepest level, umtx_shm_find_reg_unlocked() now returns EOVERFLOW when it cannot grant an additional reference to the registry object, and so will umtx_shm_find_reg(). umtx_shm_create_reg() will fail if calling umtx_shm_find_reg() returns EOVERFLOW (meaning a SHM object for the passed key already exists, but we can't acquire another reference on it), avoiding the creation of a duplicate registry entry for a given key (this wouldn't pose problem for the rest of the code in its current form, but is expressly avoided for intelligibility and hardening purposes). Since umtx_shm_find_reg*(), and consequently the whole _umtx_op() system call, can only return EOVERFLOW on such a bug manifesting, we don't document that return value. Reviewed by: kib, emaste Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c3e6dfe55c0e81d0717b0458bc95128384c3ebe8) (cherry picked from commit b20ae160872071fc20e5dde27051792177057fa5) Approved by: so --- sys/kern/kern_umtx.c | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 35fc87994c80..9a6df7ae20ff 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4333,8 +4333,17 @@ umtx_shm_reg_delfree_tq(void *context __unused, int pending __unused) static struct task umtx_shm_reg_delfree_task = TASK_INITIALIZER(0, umtx_shm_reg_delfree_tq, NULL); -static struct umtx_shm_reg * -umtx_shm_find_reg_locked(const struct umtx_key *key) +/* + * Returns 0 if a SHM with the passed key is found in the registry, in which + * case it is returned through 'oreg'. Otherwise, returns an error among ESRCH + * (no corresponding SHM; ESRCH was chosen for compatibility, ENOENT would have + * been preferable) or EOVERFLOW (there is a corresponding SHM, but reference + * count would overflow, so can't return it), in which case '*oreg' is left + * unchanged. + */ +static int +umtx_shm_find_reg_locked(const struct umtx_key *key, + struct umtx_shm_reg **const oreg) { struct umtx_shm_reg *reg; struct umtx_shm_reg_head *reg_head; @@ -4354,22 +4363,34 @@ umtx_shm_find_reg_locked(const struct umtx_key *key) ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); + /* + * Don't let overflow happen, just deny a new reference + * (this is additional protection against some reference + * count leak, which is known not to be the case at the + * time of this writing). + */ + if (__predict_false(reg->ushm_refcnt == UINT_MAX)) + return (EOVERFLOW); reg->ushm_refcnt++; - return (reg); + *oreg = reg; + return (0); } } - return (NULL); + return (ESRCH); } -static struct umtx_shm_reg * -umtx_shm_find_reg(const struct umtx_key *key) +/* + * Calls umtx_shm_find_reg_unlocked() under the 'umtx_shm_lock'. + */ +static int +umtx_shm_find_reg(const struct umtx_key *key, struct umtx_shm_reg **const oreg) { - struct umtx_shm_reg *reg; + int error; mtx_lock(&umtx_shm_lock); - reg = umtx_shm_find_reg_locked(key); + error = umtx_shm_find_reg_locked(key, oreg); mtx_unlock(&umtx_shm_lock); - return (reg); + return (error); } static void @@ -4469,11 +4490,18 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, struct ucred *cred; int error; - reg = umtx_shm_find_reg(key); - if (reg != NULL) { - *res = reg; - return (0); + error = umtx_shm_find_reg(key, res); + if (error != ESRCH) { + /* + * Either no error occured, and '*res' was filled, or EOVERFLOW + * was returned, indicating a reference count limit, and we + * won't create a duplicate registration. In both cases, we are + * done. + */ + return (error); } + /* No entry, we will create one. */ + cred = td->td_ucred; if (!chgumtxcnt(cred->cr_ruidinfo, 1, lim_cur(td, RLIMIT_UMTXP))) return (ENOMEM); @@ -4487,12 +4515,20 @@ umtx_shm_create_reg(struct thread *td, const struct umtx_key *key, return (error); } mtx_lock(&umtx_shm_lock); - reg1 = umtx_shm_find_reg_locked(key); - if (reg1 != NULL) { + /* Re-lookup as 'umtx_shm_lock' has been temporarily released. */ + error = umtx_shm_find_reg_locked(key, ®1); + switch (error) { + case 0: mtx_unlock(&umtx_shm_lock); umtx_shm_free_reg(reg); *res = reg1; return (0); + case ESRCH: + break; + default: + mtx_unlock(&umtx_shm_lock); + umtx_shm_free_reg(reg); + return (error); } TAILQ_INSERT_TAIL(&umtx_shm_registry[key->hash], reg, ushm_reg_link); LIST_INSERT_HEAD(USHM_OBJ_UMTX(key->info.shared.object), reg, @@ -4563,13 +4599,9 @@ umtx_shm(struct thread *td, void *addr, u_int flags) if (error != 0) return (error); KASSERT(key.shared == 1, ("non-shared key")); - if ((flags & UMTX_SHM_CREAT) != 0) { - error = umtx_shm_create_reg(td, &key, ®); - } else { - reg = umtx_shm_find_reg(&key); - if (reg == NULL) - error = ESRCH; - } + error = (flags & UMTX_SHM_CREAT) != 0 ? + umtx_shm_create_reg(td, &key, ®) : + umtx_shm_find_reg(&key, ®); umtx_key_release(&key); if (error != 0) return (error); From nobody Wed Sep 4 21:07:40 2024 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 4WzZnn2Dt1z5VNxG; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnm3KgNz4W2p; Wed, 4 Sep 2024 21:07:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=70tU5WCmHNxDm2qmMlxTIaL+4UgDShmoLMh4BEbpp/o=; b=IoN1mxM/bovH7fdU7rtX+z3js0sNKqAp8YJxaLQ1UiPZCNlRz6qWOTwRaXg6zfdu8VhQLU 2G6pSs9js7TQVc2YlgORHAGbfehfNlrLtN3vzzJeF2iY5ElSiYUftoiSFx1Auno9Ud6P1U S3hU2lEbugdzsjIGQDr3Fh2bSDVBG+FVBSCxIOK+jEY5YbQi6L3nBh+kmZJKTQcUABwN1O qnv5kGpSGkumFsfyOrnPhgwbFDYCXQ2MMVHPz1w3yrh5EH/8IAxZyffZG0C6tAA6e0Ehr2 bAvRV6Wt+MAsiB+MK2uUJmy9H6xAWzgG1CHnz4MaBRtDQBQ1FZnNqiHi1FngGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484060; a=rsa-sha256; cv=none; b=j8HY/k6iYeXgbelA9oyy0X6mKRVAVUvxserqNGnKPipeb3YHpo0MgN/4l3O8haKBqhYD0a Pte+fTdzP9ibIZrShexFh6x4yji358HszadR0d3S3VF03+WOHiyn66aC76DNymMhVkWiSC bNWS9tXB9DhmmZ0k5RpVOJnNU2LWUrTFOz4PW+0iXam7P7CNv7lWygZUTrGTxyEW4VEgw5 0+sdWFoT8WQf+7+tkbBA1Ex9il24GeyictJBcqVbWyopVNp2C3scR7T8+s3M7bJSBJsJaO mlYErfyn2+hIdmNFsc/oR8QvKmnE1sv2mv6xt3cbJ2514/bhWW5fQ+YpqUwMRA== 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=1725484060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=70tU5WCmHNxDm2qmMlxTIaL+4UgDShmoLMh4BEbpp/o=; b=PnS2C6p362YSEw3uIs0qWnFVDZDxaP97e/gCgqHHKBPO82e1JwEqTKy9gwx0OIuKG6yYnu tFC/nkegxh+qUUIJtvWIoaqkj0JwNwUeIBfoEqqyjEtrufxTX+rn4Y1oi1iE4z7EivBXyu T7QdWNFwWYEjXK/M4u1z2YM/5BsioFTTAC2On5bi6vICMNvTeIKAqBtSWcWcqmRurkZmI2 xeuOh7UN1j0aC8OA47MWLNJLDftDO/1OYQ3FBzAhArTO5EbeF8YLA+1AXK/feE338zTxBi A3S/qDqYXTMX6P0xWTWjm9TWuRpXKynZaABA9BwAgUISm1lpASy9P/3Cq4G1Eg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnm2yBczgHy; Wed, 4 Sep 2024 21:07:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7e2u053675; Wed, 4 Sep 2024 21:07:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7eXe053672; Wed, 4 Sep 2024 21:07:40 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:40 GMT Message-Id: <202409042107.484L7eXe053672@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: f4a2dbb81603 - releng/14.1 - umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: f4a2dbb8160346509ed96f6d79eb042d4e1ad1cd Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f4a2dbb8160346509ed96f6d79eb042d4e1ad1cd commit f4a2dbb8160346509ed96f6d79eb042d4e1ad1cd Author: Olivier Certner AuthorDate: 2024-09-04 14:38:12 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:55 +0000 umtx: shm: 'ushm_refcnt > 0' => 'ushm_refcnt != 0' 'ushm_refcnt' is unsigned. Don't leave the impression it isn't. No functional change (intended). Reviewed by: kib Approved by: emaste (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46126 (cherry picked from commit c75a18905e308f69b01f19c3d7d613883a008e79) (cherry picked from commit 4938f554469bc81783998143968ec3eba2a43def) Approved by: so --- sys/kern/kern_umtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 9a6df7ae20ff..2d54850da9c3 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -4359,7 +4359,7 @@ umtx_shm_find_reg_locked(const struct umtx_key *key, reg->ushm_key.info.shared.offset == key->info.shared.offset) { KASSERT(reg->ushm_key.type == TYPE_SHM, ("TYPE_USHM")); - KASSERT(reg->ushm_refcnt > 0, + KASSERT(reg->ushm_refcnt != 0, ("reg %p refcnt 0 onlist", reg)); KASSERT((reg->ushm_flags & USHMF_LINKED) != 0, ("reg %p not linked", reg)); @@ -4407,7 +4407,7 @@ static bool umtx_shm_unref_reg_locked(struct umtx_shm_reg *reg, bool linked_ref) { mtx_assert(&umtx_shm_lock, MA_OWNED); - KASSERT(reg->ushm_refcnt > 0, ("ushm_reg %p refcnt 0", reg)); + KASSERT(reg->ushm_refcnt != 0, ("ushm_reg %p refcnt 0", reg)); if (linked_ref) { if ((reg->ushm_flags & USHMF_LINKED) == 0) From nobody Wed Sep 4 21:07:41 2024 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 4WzZnn6Y0Qz5VNjR; Wed, 04 Sep 2024 21:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzZnn4fJfz4VsN; Wed, 4 Sep 2024 21:07:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725484061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wn1Nhib7PdAt2jwA6vbkMLucnrcnbBTSYFIv1VYAkDE=; b=AJFtYiLtypt+DiwMoEMEFWfnSmayAGphJH9O5Ru4GRIRwW6KbsxHm7+hTlHWgRdagdkGB6 ryfKUWz+PiBB+KU4xvVxu7YJIN1o65ytqtCrCllkwpU9SmaWJORvp6FL3RsidkQ2iBRXzp QRgIcwk9K+qLZFx0/ZN75JYtaTQ5sN1+2j1W4cNIvjka9VtKN6Jr8TEmJkEJHCsBrP3K2Z Hg0O+sF+TnmiWVW1X4aZgq+lqykmzKEpackGC+T2Lff4SnD+abr/EX/78HMvyB1wtveNoE bu13kdmdg6VulCd4W3NecDQKSIJ1dzT43A0Nw+M1ySdbzINs7/XttAikesYQOQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725484061; a=rsa-sha256; cv=none; b=JXozAY/8JPprxvz3UmWksK7G7IcSXNxL65moWXS2cFeCVhlzMRKNKGlkf1r1xNXWfreuRF 9ySSODBxqXYJnrDVeX4XdFKoOXIclOUKk8L49nhUjTALaq8NidYm6SvJVCniqiB5XhksKn ShrnskUhghvLOPBX/EhXUfkCya4e5rWSRSd7/iyWnybmnFWrQJbLtcVPCwhLk5LaEpJvQM GKeXfTesIb1DZNA9RdLExFhRYMDWdkfeKS+atY9q1LZXCkZRhEZoK6z/qYwq3kbakRYr6U 4pTVTMiqoXXvM++qgIJ46h3uw00tOw0vBm+MYF4r94holhLmQpp/H9K9NWlAhw== 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=1725484061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wn1Nhib7PdAt2jwA6vbkMLucnrcnbBTSYFIv1VYAkDE=; b=KSXffGflQVA00EJ1Mug8AFnxMEYosO2U5y0eea1FmKMYOCcjvzLj2JC+U870tgB1cgagSz Ew6SGfm2dt6D5ma+gqCDYY53OTxQ3In4n2ioRwbzo91cJo4H/+14xaHanDC0kkXuvZDd+l pymWJGFQAjExJFfk1Tv71H8xvcsE2KMGX4uKHxgemoAUU8H6N4qzfk11uXeywRcWTizdcX CJ6l2uwgpxufIvbhIC74L1dE7gCYYuNNZ1YI35G6GhOU2dXvwT1vROkLesXiQzco3shJt6 qhWWPjvPdaf3NWZPsiM0caTRvH3EjsAJo1kriuPnHyjuYbRiGGDxy/jEtQFuBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzZnn3yfvzgDt; Wed, 4 Sep 2024 21:07:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484L7f4F053721; Wed, 4 Sep 2024 21:07:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484L7fn6053718; Wed, 4 Sep 2024 21:07:41 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:07:41 GMT Message-Id: <202409042107.484L7fn6053718@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 57d27c4dc3fe - releng/14.1 - Add UPDATING entries and bump revision 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 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/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 57d27c4dc3fe4cb2b5762995a22ae72f980a5b62 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=57d27c4dc3fe4cb2b5762995a22ae72f980a5b62 commit 57d27c4dc3fe4cb2b5762995a22ae72f980a5b62 Author: Ed Maste AuthorDate: 2024-09-04 20:08:59 +0000 Commit: Ed Maste CommitDate: 2024-09-04 20:46:55 +0000 Add UPDATING entries and bump revision EN-24:15.calendar SA-24:09.libnv SA-24:10.bhyve SA-24:11.ctl SA-24:12.bhyve SA-24:13.openssl SA-24:14.umtx Approved by: so --- UPDATING | 22 ++++++++++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index abdee5182989..37ff6f2d53e1 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,28 @@ 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. +20240904: + 14.1-RELEASE-p4 EN-24:15.calendar + SA-24:09.libnv + SA-24:10.bhyve + SA-24:11.ctl + SA-24:12.bhyve + SA-24:13.openssl + SA-24:14.umtx + + cron(8) / periodic(8) session login [EN-24:15.calendar] + + Multiple vulnerabilities in libnv [SA-24:09.libnv] + + bhyve(8) privileged guest escape via TPM device passthrough [SA-24:10.bhyve] + Multiple issues in ctl(4) CAM Target Layer [SA-24:11.ctl] + + bhyve(8) privileged guest escape via USB controller [SA-24:12.bhyve] + + Possible DoS in X.509 name checks in OpenSSL [SA-24:13.openssl] + + umtx Kernel panic or Use-After-Free [SA-24:14.umtx] + 20240807: 14.1-RELEASE-p3 EN-24:14.ifconfig SA-24:05.pf diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index ce03fb4fb9fa..fec4520f5fb7 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.1" -BRANCH="RELEASE-p3" +BRANCH="RELEASE-p4" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Sep 4 21:34:23 2024 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 4WzbNb4Z3fz5VQxd; Wed, 04 Sep 2024 21:34: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzbNb43gNz4dWv; Wed, 4 Sep 2024 21:34:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725485663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LxKT3txxE8c2oinjX9cQu+9QEqd6cwaXUhryMjhIwd8=; b=vzSWibPAcrWCdmevwOrR/a1fCiorCZXZwdc3LcRGYE6wDSqnF7sM92gwF6y6nra6ob+lVK kfhBwUzWEeKq3k0jad/Y8c7If5aT1TLM7b+wYsUSK1Q8j7q+BA1zMBc/bEAJblNYYPKKrC DWlp7aaNnzbKe2eg8M3g8wHMbcqFS9laxGs3U3TNOF2WV6PYL6aPHDcui/6DVJ82gmBlX2 hvrG52Fikxza951YW6BBplJ2GRkmOptHuhlZGaIXKIv19NMowJ8VgVPGWUYvs/fsJTOLu3 BPHncA9/QawRyZYt0kKqIK62onhr61QrVSOf6eEQ20o/OR5WJvtEByzlDSa82g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725485663; a=rsa-sha256; cv=none; b=hG5TwvblidwrhI+THuw94NsDxx9UBR97favqn1dl48fqSdQ6mQyAQx+wYVR8F+mrTprnzR m7G6husB2yKhPA8vVodLZ5MhxJg33jpDz8fmVUsZGTHCEJRPIPDs+c6i7y6lBYdaSooyKU THVm6JpSssjujZ7Jbzz0+dne601SKtY5b8Aa1Yi0CMrMNV0ZsO0uw5stvHMO50bwD65WdI R3hZUqUl8uHlXrgA1RclCMIwjvG6BgDV6H4fX4yxwSSbASRh0u1x16BYeDmS63Jaiek8H+ dUJiwuK1j1SZu3R5hJqc7uTja2g8NO33/KTIS90pT/3Rm4GBcXhOj+CChLxF3Q== 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=1725485663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LxKT3txxE8c2oinjX9cQu+9QEqd6cwaXUhryMjhIwd8=; b=Or0CdZeycFBaN2B44F8ysuht3hLvmzzPbrDN3JqhnPoM7AboSbJ2yYLfn2dZfH8Ik9dLpH fXH6Yr4wLZ/Vf4ImVc5+6INxmJ8y/2y5rRFvJI6U6LLp0iO77hO/BKaF3H1/jEwXMGVEfA syyU56C9gtSJ5lIpIBEYEQUTaIDvYOQCKhVjLgn+aS7ynwDDFJqbNobSF1VV+hZb6UdxkU 8f5t3gLGqhQXEU0IiXcg9vVnUlxm+b6pxE5Wwwad3aOx5dX0HwEtcfe2mgg6LCUdzc1BJ7 KM6PiqdBkFTdTBad9pfiQ/G/jHdiO/ferGOoNnfs2SUwX5XFuwU3MYc6QCjQcw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzbNb3fdyzh4p; Wed, 4 Sep 2024 21:34:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484LYNKs003680; Wed, 4 Sep 2024 21:34:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484LYNrq003677; Wed, 4 Sep 2024 21:34:23 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:34:23 GMT Message-Id: <202409042134.484LYNrq003677@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gordon Tetlow Subject: git: 86d01789bf41 - releng/14.1 - calendar: don't setlogin(2) in the -a user handlers 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gordon X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 86d01789bf412b216b11021c44b60f93f6af8955 Auto-Submitted: auto-generated The branch releng/14.1 has been updated by gordon: URL: https://cgit.FreeBSD.org/src/commit/?id=86d01789bf412b216b11021c44b60f93f6af8955 commit 86d01789bf412b216b11021c44b60f93f6af8955 Author: Kyle Evans AuthorDate: 2024-08-05 18:43:56 +0000 Commit: Gordon Tetlow CommitDate: 2024-09-04 21:31:57 +0000 calendar: don't setlogin(2) in the -a user handlers As of e67975d331 ("Fix 'calendar -a' in several ways."), `calendar -a` will now fork off a new process for each user and do all of its own processing in the user's own context. As a side-effect, calendar(1) started calling setlogin(2) in each of the forked processes and inadvertently hijacked the login name for the session it was running under, which was typically not a fresh session but rather that of whatever cron/periodic run spawned it. Thus, daily and security e-mails started coming from completely arbitrary user. We could create a new session, but it appears that nothing calendar(1) does really needs the login name to be clobbered; opt to just avoid the setlogin(2) call entirely rather than incur the overhead of a new session for each process. PR: 280418 Reviewed by: des, olce Fixes: e67975d331 ("Fix 'calendar -a' in several ways.") (cherry picked from commit 6cb8b61efe8899ee9194563108d0ae90c1eb89e3) (cherry picked from commit 33708452aaabca205d81eceb83e0813e5882815c) Approved by: so --- usr.bin/calendar/calendar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c index 476c0495d218..2e3baee7d57f 100644 --- a/usr.bin/calendar/calendar.c +++ b/usr.bin/calendar/calendar.c @@ -224,7 +224,7 @@ main(int argc, char *argv[]) lc = login_getpwclass(pw); if (setusercontext(lc, pw, pw->pw_uid, - LOGIN_SETALL) != 0) + LOGIN_SETALL & ~LOGIN_SETLOGIN) != 0) errx(1, "setusercontext"); setenv("HOME", pw->pw_dir, 1); cal(); From nobody Wed Sep 4 21:54:24 2024 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 4Wzbqh364bz5VS8v; Wed, 04 Sep 2024 21:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Wzbqh2cK0z4pJT; Wed, 4 Sep 2024 21:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725486864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oczVATngUMO4KVIOIiW4nFO6ayKwi9TTeKTuld8IVWs=; b=don3lI+w+O59ibQ/jgBjs6b1HJifyS8iaQeZHg7R0syq33MNmwy82ODF8OdmL5BlTDZYvm oe45I0aXs1Q21A/Xg0d2+5Erj1ItQ7M9AkSsxGICpWsgJYA8S3xlm7ZLVtUBZ0d846RslT 1d2pKHMgm7FrpCe3CKkGO9zRpvf8titjZBlIy+QE6eUQD2zDznUAGQevwfU+0t4W0b60qH ZJkw6jRNRoft3EN4N5E3yQq2pSwwrKleB/VCOs8iqZzkVmTQ5BzUzyPBgaadQoApV27BAC twrnaivoQEEDQf3H6cOHnUfF3Vojs8BASS+S3mdBnTEwZwSjTWQ2bjXcs6WYzw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725486864; a=rsa-sha256; cv=none; b=JS14lqPSyIz3f0uPZF2dYl+FWO5A+BNtGubr6kEj/KvW73t4rSaC34rsvV5FR2P/jydoDZ 1FfmCc2asgVPBga3oVF4z4uzXpfOD40RweeELYPvvao2b8Yv++VH3MWbxD3Inm538UimsT hQeHpw3BO2bqut3w0IFZVZp7/WjaFR5wV0DJ9oypH2l8YZ79/HjG0pEFI3PuVc+MCQMYNV xop93vN3ag3LtCsyrmgs8j3/UziH068N21X1xlPJjCRAwMrOadUCTayPkYSFieH4TJaIeo ZGUjP2AHKfBFQpQ9j6XQpP5zdMRSueThzirXa1fVWuk5oZo1072MyYQSV754+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=1725486864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oczVATngUMO4KVIOIiW4nFO6ayKwi9TTeKTuld8IVWs=; b=s1fe2rpqqNXxFxTxfPnsGlxG1feWAXvLzlPx4XWkvtyCnLwpV3ZNCKvQzyD3flUM2X9mOK w2RSS/+n16Fz32jF79Opkl44DKbuzTvSGD+flFyhX3NlhtmgWXJ7YD8AgTfzbAq+l51Poq cNeQfUSqKU221TXk7/k1ZrDba7GKWHkX9cMoEQXnEylX/HAdwSAg5ibP06Hb6OeqPI2Tf5 DtOUWzXneGGhv9rYeNRZniPOXK6wq6p3epEj7pDSUHzyVXx1VoR6qB8QVbHujZOe26cm+P Hzqrr0lW2nNdAMyD5VyeHNEfqaKFpqi2f0fNEaAEbBBgxaS7ZUrIEWTLkUC4jA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Wzbqh2C8nzj0r; Wed, 4 Sep 2024 21:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484LsO4N039179; Wed, 4 Sep 2024 21:54:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484LsO6t039176; Wed, 4 Sep 2024 21:54:24 GMT (envelope-from git) Date: Wed, 4 Sep 2024 21:54:24 GMT Message-Id: <202409042154.484LsO6t039176@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 1d75ce83560a - releng/13.4 - loader.efi.8: Remove rogue duplicated lines 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 1d75ce83560a17b7286aff3d0ac220c0799ca2ac Auto-Submitted: auto-generated The branch releng/13.4 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=1d75ce83560a17b7286aff3d0ac220c0799ca2ac commit 1d75ce83560a17b7286aff3d0ac220c0799ca2ac Author: Jessica Clarke AuthorDate: 2024-09-03 20:14:44 +0000 Commit: Warner Losh CommitDate: 2024-09-04 21:54:04 +0000 loader.efi.8: Remove rogue duplicated lines Fixes: 871911a4ab73 ("loader.efi(8): beef up the updating the ESP") MFC after: 1 week (cherry picked from commit 18f7683e0d6ee6858865d8b0c2d7e2c14abf0bc4) (cherry picked from commit 8aa8d0aa64babc579a55a7ed27ea6385895901d3) Approved-by: re (cperciva) --- stand/man/loader.efi.8 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/stand/man/loader.efi.8 b/stand/man/loader.efi.8 index 4dd9f66790f8..2128cc99c2a5 100644 --- a/stand/man/loader.efi.8 +++ b/stand/man/loader.efi.8 @@ -30,7 +30,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 20, 2024 +.Dd September 3, 2024 .Dt LOADER.EFI 8 .Os .Sh NAME @@ -440,9 +440,6 @@ copy the loader to the default location: # cp /boot/loader.efi /boot/efi/EFI/BOOT/BOOTX64.EFI .Ed .Pp -.Bd -literal -offset indent -# umount /boot/efi -.Ed Finally, if you mounted the ESP, you may wish to unmount it. .Bd -literal -offset indent # umount /boot/efi From nobody Thu Sep 5 07:35:36 2024 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 4WzrkJ4gRNz5VWty; Thu, 05 Sep 2024 07:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzrkJ49zMz4Xvh; Thu, 5 Sep 2024 07:35:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725521736; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CqqowLm9pwsAfbcrPA9V02EjEX8EJMblM7GXaOsvTHs=; b=lMwcmr/8A7V41CZFYMpdONpM47mERXcAHKJbXioXgRFuyCMysqqTUL0F551dyOCepWnsEv fpLWEvfRriGnxYgBPA578zOQY/oKB7IB5FnfbJQAJF3uPNnlBI8Ns5/zNwkhw29G2MXcl6 EE1kXleqLETi9FDOflBgNJwAaL4yN+UX+1ZlZJnnDfh0jDLzNGSfMNkq/2PpZmkXjuSuKZ J3t08ec40y/3ghzUn9EfeffxF98YgJzcpRmXX7jIjeaWbHA7h872ypTqGqbme4PWUmZfBy BNyADZq/kmxpUesLruPr/CvbEPwZAINxpgE9YZNF2CGX61KpJ3fx8Pg76YtNNA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725521736; a=rsa-sha256; cv=none; b=fkpNQNSs0R6eKhTmpDBwEMbNNE3eiUe1/Ou2JsytMepwREdkocFkwJx04EgIM/JR4eC1t5 59KLx8G8MnLFfKBH+4bvtiQgzmwBQPfWoDbbNvONxe4LAcxkCmQEXPr8xaSL6tIjc++MJN QSISqdwka7d2ePjO3dkCpIslmfZZF8Kal3dTMEc8tEKmUGZNM3WFkTwuQnXROtrxy6dXQn tJqi4Vs2au2dQFC7vy3J/LY/zwNJu5FhKTd+UlhRfCTOxZ+HzNk6CxluWYDeU/UT7rhd/I /d0I8nbFpkmSfAU+q+D6VIL6jiWD8Dsss5m2TAIdc5igWSx0On3Ijym3si/9Mw== 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=1725521736; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CqqowLm9pwsAfbcrPA9V02EjEX8EJMblM7GXaOsvTHs=; b=N+ixGQ2JMfMVmszpSClkorDV8q3Q2pdMsS9WjUsjlPyKzLjsHTGcEPK0ugQfgWmlRHtkzr paPB7qWSPbz87/dkPztr+8fIRaERcZrdMYuZ5HmAoIW36SfKkGAlyw8gYBD8qdcrQzQpQz IZhEPVCkOIEOqvX9WMqcuM7J6xwE3Xw7bFIkYHiF4UIRWYZQoIfvhSkWV1WEE7JA11adoY tO/tQ+Mm1Pr1uZiXGFAnltLdADdW/npZlWdNL2uvV67rO4j6DYl76fnG1oPl+qSKHmbKrL /xl6QuSFq3/Udx/uziW+trAW/7dlu387YQKPt3Clg4MCnVaIh/IyKjfJpz5TWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzrkJ3kybz10WD; Thu, 5 Sep 2024 07:35:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4857ZaCH037040; Thu, 5 Sep 2024 07:35:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4857Zasm037037; Thu, 5 Sep 2024 07:35:36 GMT (envelope-from git) Date: Thu, 5 Sep 2024 07:35:36 GMT Message-Id: <202409050735.4857Zasm037037@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: d3ee2188686d - releng/13.4 - pf: improve the ICMPv6 direction check 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.4 X-Git-Reftype: branch X-Git-Commit: d3ee2188686dce00083ba382c1a773d4e293b242 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=d3ee2188686dce00083ba382c1a773d4e293b242 commit d3ee2188686dce00083ba382c1a773d4e293b242 Author: Kristof Provost AuthorDate: 2024-08-26 12:59:38 +0000 Commit: Kristof Provost CommitDate: 2024-09-05 07:34:26 +0000 pf: improve the ICMPv6 direction check Following bluhm's advice this changes the way we setup state keys and perform state lookups for ICMPv6 Neighbor Discovery packets: - replace the NS-dst with ND target address; - replace the NA-src with ND target address; - replace the NA-dst with unspecified address if it is a multicast. This allows pf to match Address Resolution, Neighbor Unreachability Detection and Duplicate Address Detection packets to the corresponding states without the need to create new ones or match unrelated ones. As a side effect we're doing now one state table lookup for ND packets instead of two. Fixes a bug uncovered by one of the previous commits that virtually breaks IPv6 connectivity after few minutes of use. ok stsp henning, with and ok bluhm PR: 280701 MFC after: 1 week Obtained from: OpenBSD, mikeb , 2633ae8c4c8a Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 5ab1e5f7e5585558a73b723f07528977a82cee82) (cherry picked from commit b84344206721ed2803d5da68585289d5880efe3f) Approved-by: re (cperciva) --- sys/net/pfvar.h | 2 +- sys/netpfil/pf/pf.c | 116 ++++++++++++++++++++++++++++++++++--------------- sys/netpfil/pf/pf_lb.c | 2 +- 3 files changed, 84 insertions(+), 36 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index 5d72dabfe305..e6c2d1f290cf 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -2224,7 +2224,7 @@ struct pf_krule *pf_get_translation(struct pf_pdesc *, struct mbuf *, struct pf_addr *, struct pf_addr *, uint16_t, uint16_t, struct pf_kanchor_stackframe *); -struct pf_state_key *pf_state_key_setup(struct pf_pdesc *, struct pf_addr *, +struct pf_state_key *pf_state_key_setup(struct pf_pdesc *, struct mbuf *, int, struct pf_addr *, struct pf_addr *, u_int16_t, u_int16_t); struct pf_state_key *pf_state_key_clone(struct pf_state_key *); diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index dfef2d132e85..64f731d4ae53 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -311,6 +311,9 @@ static int pf_test_fragment(struct pf_krule **, int, struct pfi_kkif *, struct mbuf *, void *, struct pf_pdesc *, struct pf_krule **, struct pf_kruleset **); +static int pf_state_key_addr_setup(struct pf_pdesc *, struct mbuf *, + int, struct pf_state_key_cmp *, int, struct pf_addr *, + int, struct pf_addr *, int); static int pf_tcp_track_full(struct pf_kstate **, struct pfi_kkif *, struct mbuf *, int, struct pf_pdesc *, u_short *, int *); @@ -324,7 +327,7 @@ static int pf_test_state_udp(struct pf_kstate **, int, void *, struct pf_pdesc *); int pf_icmp_state_lookup(struct pf_state_key_cmp *, struct pf_pdesc *, struct pf_kstate **, struct mbuf *, - int, struct pfi_kkif *, u_int16_t, u_int16_t, + int, int, struct pfi_kkif *, u_int16_t, u_int16_t, int, int *, int, int); static int pf_test_state_icmp(struct pf_kstate **, int, struct pfi_kkif *, struct mbuf *, int, @@ -379,7 +382,7 @@ extern int pf_end_threads; extern struct proc *pf_purge_proc; VNET_DEFINE(struct pf_limit, pf_limits[PF_LIMIT_MAX]); -enum { PF_ICMP_MULTI_NONE, PF_ICMP_MULTI_SOLICITED, PF_ICMP_MULTI_LINK }; +enum { PF_ICMP_MULTI_NONE, PF_ICMP_MULTI_LINK }; #define PACKET_UNDO_NAT(_m, _pd, _off, _s, _dir) \ do { \ @@ -1423,9 +1426,66 @@ pf_state_key_ctor(void *mem, int size, void *arg, int flags) return (0); } +static int +pf_state_key_addr_setup(struct pf_pdesc *pd, struct mbuf *m, int off, + struct pf_state_key_cmp *key, int sidx, struct pf_addr *saddr, + int didx, struct pf_addr *daddr, int multi) +{ +#ifdef INET6 + struct nd_neighbor_solicit nd; + struct pf_addr *target; + u_short action, reason; + + if (pd->af == AF_INET || pd->proto != IPPROTO_ICMPV6) + goto copy; + + switch (pd->hdr.icmp6.icmp6_type) { + case ND_NEIGHBOR_SOLICIT: + if (multi) + return (-1); + if (!pf_pull_hdr(m, off, &nd, sizeof(nd), &action, &reason, pd->af)) + return (-1); + target = (struct pf_addr *)&nd.nd_ns_target; + daddr = target; + break; + case ND_NEIGHBOR_ADVERT: + if (multi) + return (-1); + if (!pf_pull_hdr(m, off, &nd, sizeof(nd), &action, &reason, pd->af)) + return (-1); + target = (struct pf_addr *)&nd.nd_ns_target; + saddr = target; + if (IN6_IS_ADDR_MULTICAST(&pd->dst->v6)) { + key->addr[didx].addr32[0] = 0; + key->addr[didx].addr32[1] = 0; + key->addr[didx].addr32[2] = 0; + key->addr[didx].addr32[3] = 0; + daddr = NULL; /* overwritten */ + } + break; + default: + if (multi == PF_ICMP_MULTI_LINK) { + key->addr[sidx].addr32[0] = IPV6_ADDR_INT32_MLL; + key->addr[sidx].addr32[1] = 0; + key->addr[sidx].addr32[2] = 0; + key->addr[sidx].addr32[3] = IPV6_ADDR_INT32_ONE; + saddr = NULL; /* overwritten */ + } + } +copy: +#endif + if (saddr) + PF_ACPY(&key->addr[sidx], saddr, pd->af); + if (daddr) + PF_ACPY(&key->addr[didx], daddr, pd->af); + + return (0); +} + struct pf_state_key * -pf_state_key_setup(struct pf_pdesc *pd, struct pf_addr *saddr, - struct pf_addr *daddr, u_int16_t sport, u_int16_t dport) +pf_state_key_setup(struct pf_pdesc *pd, struct mbuf *m, int off, + struct pf_addr *saddr, struct pf_addr *daddr, u_int16_t sport, + u_int16_t dport) { struct pf_state_key *sk; @@ -1433,8 +1493,12 @@ pf_state_key_setup(struct pf_pdesc *pd, struct pf_addr *saddr, if (sk == NULL) return (NULL); - PF_ACPY(&sk->addr[pd->sidx], saddr, pd->af); - PF_ACPY(&sk->addr[pd->didx], daddr, pd->af); + if (pf_state_key_addr_setup(pd, m, off, (struct pf_state_key_cmp *)sk, + pd->sidx, pd->src, pd->didx, pd->dst, 0)) { + uma_zfree(V_pf_state_key_z, sk); + return (NULL); + } + sk->port[pd->sidx] = sport; sk->port[pd->didx] = dport; sk->proto = pd->proto; @@ -4589,7 +4653,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, if (nr == NULL) { KASSERT((sk == NULL && nk == NULL), ("%s: nr %p sk %p, nk %p", __func__, nr, sk, nk)); - sk = pf_state_key_setup(pd, pd->src, pd->dst, sport, dport); + sk = pf_state_key_setup(pd, m, off, pd->src, pd->dst, sport, dport); if (sk == NULL) goto csfailed; nk = sk; @@ -6004,9 +6068,9 @@ pf_multihome_scan_asconf(struct mbuf *m, int start, int len, int pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, - struct pf_kstate **state, struct mbuf *m, int direction, struct pfi_kkif *kif, - u_int16_t icmpid, u_int16_t type, int icmp_dir, int *iidx, int multi, - int inner) + struct pf_kstate **state, struct mbuf *m, int off, int direction, + struct pfi_kkif *kif, u_int16_t icmpid, u_int16_t type, int icmp_dir, + int *iidx, int multi, int inner) { key->af = pd->af; key->proto = pd->proto; @@ -6019,25 +6083,9 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, key->port[pd->sidx] = type; key->port[pd->didx] = icmpid; } - if (pd->af == AF_INET6 && multi != PF_ICMP_MULTI_NONE) { - switch (multi) { - case PF_ICMP_MULTI_SOLICITED: - key->addr[pd->sidx].addr32[0] = IPV6_ADDR_INT32_MLL; - key->addr[pd->sidx].addr32[1] = 0; - key->addr[pd->sidx].addr32[2] = IPV6_ADDR_INT32_ONE; - key->addr[pd->sidx].addr32[3] = pd->src->addr32[3]; - key->addr[pd->sidx].addr8[12] = 0xff; - break; - case PF_ICMP_MULTI_LINK: - key->addr[pd->sidx].addr32[0] = IPV6_ADDR_INT32_MLL; - key->addr[pd->sidx].addr32[1] = 0; - key->addr[pd->sidx].addr32[2] = 0; - key->addr[pd->sidx].addr32[3] = IPV6_ADDR_INT32_ONE; - break; - } - } else - PF_ACPY(&key->addr[pd->sidx], pd->src, key->af); - PF_ACPY(&key->addr[pd->didx], pd->dst, key->af); + if (pf_state_key_addr_setup(pd, m, off, key, pd->sidx, pd->src, + pd->didx, pd->dst, multi)) + return (PF_DROP); STATE_LOOKUP(kif, key, direction, *state, pd); @@ -6100,7 +6148,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif * ICMP query/reply message not related to a TCP/UDP packet. * Search for an ICMP state. */ - ret = pf_icmp_state_lookup(&key, pd, state, m, pd->dir, + ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 0); if (ret >= 0) { @@ -6108,7 +6156,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif icmp_dir == PF_OUT) { if (*state != NULL) PF_STATE_UNLOCK((*state)); - ret = pf_icmp_state_lookup(&key, pd, state, m, + ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 0); if (ret >= 0) @@ -6516,7 +6564,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pf_icmp_mapping(&pd2, iih->icmp_type, &icmp_dir, &multi, &virtual_id, &virtual_type); - ret = pf_icmp_state_lookup(&key, &pd2, state, m, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd2.dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) @@ -6571,7 +6619,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pf_icmp_mapping(&pd2, iih->icmp6_type, &icmp_dir, &multi, &virtual_id, &virtual_type); - ret = pf_icmp_state_lookup(&key, &pd2, state, m, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { @@ -6580,7 +6628,7 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif if (*state != NULL) PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, pd, - state, m, pd->dir, kif, + state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); if (ret >= 0) diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index 46d3ea8f508d..2571a0c5312e 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -606,7 +606,7 @@ pf_get_translation(struct pf_pdesc *pd, struct mbuf *m, int off, int direction, return (NULL); } - *skp = pf_state_key_setup(pd, saddr, daddr, sport, dport); + *skp = pf_state_key_setup(pd, m, off, saddr, daddr, sport, dport); if (*skp == NULL) return (NULL); *nkp = pf_state_key_clone(*skp); From nobody Thu Sep 5 07:35:37 2024 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 4WzrkK4cgLz5VX4P; Thu, 05 Sep 2024 07:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzrkK3FKsz4Y12; Thu, 5 Sep 2024 07:35:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725521737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XaqIKGhPK8velwWfRXib9njR9E6Oc1QvIjJo9hIbQC0=; b=UAqQ6wE+kmGC1Q2p48c8JyDHiCXUyxQ8lD0oqd2Mt81uVq9VQM4/k2uv4I0cBuK2uA4Nu4 k0rnWRTTbBz6mX3IYByU/jGVlEThI8LMm2RLK/st7FtEYr1VyzG/0X0clV1pTLbzHu5Jpx uA8/MV0nNeZmTocASRsMfFVrENa2Ohx4UXmxTek+Kwa3U0/oiZe2oZSQVgairfRIyE3mo+ iSrQrEycD3lTuilrlGCmupErepXIU1ANfs2DFatxWXWiBhHLjNCEvnljH/RdooTh1ZPW+n Mt4xxLCsrOCoTxYwYlhHi38RrgKDLgPZ97O7fJB4AYzbDUPQe5CL7qYc79YGOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725521737; a=rsa-sha256; cv=none; b=gP+GcP5dooZnbL6HcUBYYnKtc33leDm3aXWhjClcv88SejkmCjpWg+PnpPxE3Wqcs5/GI5 cgc4E7VQaqYwXzKn+61l1xgQq/MYS9CDGr+94FC6ES324bATq4UqGmMzhiK/yMgJMlA6Pa 4EJy4iipgyawPAE3nWLi+dtBFjhXcLuC8ijl3Wi7XMi7cqncrDmHIvlCFY2I2k/pkBnj+y xgeiLLt98NUa5oKe3i3aha3P7TyzFSvDR4otCogs545T7hdlchEG0m2W6H7YK5strRtiVo WrxUBkcCTf+RvkBJB4VLq0aOyV23+IGMkxfL1rBxZBZ3VJnqsvFUOo6NYJB5KA== 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=1725521737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XaqIKGhPK8velwWfRXib9njR9E6Oc1QvIjJo9hIbQC0=; b=yt/PGM4+F5ekC9b36HodJdY5072/fIPLgblN8GSW3qpssBX20Xh8F0Z7medbngt5OMm6Ev Yr1/wxbXrYuEJTAxzeJ88xfxwn30pC/K7HpoyDxLc6ST9s6eFh/0RCUGIe5HitPNaL+NJ1 bnHpApNfUFNNLZKFt4uRN+lgIKMdzp3WQDEjGr2itU2WNAHiASK5QZzW0Toi3kjGkMPse7 HqhWL92/r6W5gqFN+twldH8ahMXA5JiJEy02D4UxNvB/Hy7oRTANG5uNgJNxSscmiUmF7m TDT6BxiMxunEawO2jRdsz71DAPXVHHn4ooU/wXIr9b9knGgD6yS3FFpEwWYPWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzrkK2rl0z105D; Thu, 5 Sep 2024 07:35:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4857Zbcm037111; Thu, 5 Sep 2024 07:35:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4857ZbAe037108; Thu, 5 Sep 2024 07:35:37 GMT (envelope-from git) Date: Thu, 5 Sep 2024 07:35:37 GMT Message-Id: <202409050735.4857ZbAe037108@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 183076d24478 - releng/13.4 - pf: try to lookup the icmp state based on a correct packet descriptor 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 183076d24478091246cd5928e31d57d21e417c0f Auto-Submitted: auto-generated The branch releng/13.4 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=183076d24478091246cd5928e31d57d21e417c0f commit 183076d24478091246cd5928e31d57d21e417c0f Author: Kristof Provost AuthorDate: 2024-08-26 14:42:05 +0000 Commit: Kristof Provost CommitDate: 2024-09-05 07:34:52 +0000 pf: try to lookup the icmp state based on a correct packet descriptor MFC after: 1 week Obtained from: OpenBSD, mikeb , e467ea25dcd3 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit b8cd169efa6ac0899b4998898129765ae5c685a6) (cherry picked from commit fa4b64836183c33631d92dadb073a9e435c5bf6d) Approved-by: re (cperciva) --- sys/netpfil/pf/pf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 64f731d4ae53..0991cd39f332 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6623,11 +6623,11 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { - if (ret == PF_DROP && pd->af == AF_INET6 && + if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { if (*state != NULL) PF_STATE_UNLOCK((*state)); - ret = pf_icmp_state_lookup(&key, pd, + ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); From nobody Thu Sep 5 07:35:38 2024 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 4WzrkL6cYTz5VX2H; Thu, 05 Sep 2024 07:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzrkL4K00z4Xl2; Thu, 5 Sep 2024 07:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725521738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UlSMKpJWQLU6/qlCs7d/S++IwP1gT3vOL7atOlUo7hw=; b=QH4BvqWjlCAfE7qdYhtVBb9UlLHd8hdzyg51WmYe6t5uZqQFl1pni9KRoHhGLnYAB1iS1k ZKB0zP9PO9LJM6RAsnFhFkDqANly5iAIgPLQSHY2M1mrp6ShxlpQ/KIEPhPjEAKUDBYwsa XMIJzvt9pOzRYQJ18K7IpdbvJoZT+hz+FxoiKuLp1a38A8OKZrqpeEEo1yN+DpLTd494mQ E0lNdB5IIaEE2GU4CCP2mhhKTyUPjD1pOKYN2fQdjPZsWMNrMz7a9kxHP1/j2IMU7WcEqk WMflZx0cIYpjkHE1Q3Nx08LqmUc3ewz4jLzIaOXTFa7xmLtRiDw51X0VhIK7Aw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725521738; a=rsa-sha256; cv=none; b=LEpnBwLwHwkWoMBPUUEAJhh5qFV+G3zqrz9TDQQtEHf6hiDRljq+K8dWx0XNwR7aZ4FTXz L0nb5F9BdqJYzUCAF4vUhfVvddezFtd0HLDlOV5zntWoOzRUZi1YtLCzF0AkJ0eHY/yUXV OM9E0H/tK+bfx/HMm/PNnNPugjj6uDAXbyNuIgJNP7HPyTnd9NNeUPym3g7+iSldMnEpSL sMGJA06wiI82H9LPpQ7vfnJOLlqXjHdYBau7ULccOI5++EXhnNNa1UBoi4GIp6wRRNQUht 9IaB/qa/cx8a14nhN+0Vv22Gv7gBaXBYwZPXcx6xX+3p8ukqaCo4ix3JuJylkw== 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=1725521738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UlSMKpJWQLU6/qlCs7d/S++IwP1gT3vOL7atOlUo7hw=; b=Keog1rdUTCvRfIw+m3o8DxfAB+pS4cH0Kt/j6U61JBALki+BnmMw+E2VTB6v3P7AUtwMGQ I9Aa5IkXfVXSMK69528oeoM0dZf6O99Ip0sW0T8T4J6ixMAQNZeegFBf3BhpVkZaynOO98 /PtVo4KjUQETSoGv7CtJJ+5p8x7/LTuSuUYrC50G21qwrPlnWVNdpM5gTzR0kUHViytFN9 l6hksh/7cZsq/Qx3bw4JakH7xeWH9KzaJoD6pwHbIFb2ysU9TeQ6tvLDUFZ13EMRJpEjOc 9swUpffSZbOvqk9QEMyTQ3dMJO6HazjYNjEAta5HiSk3BR8NY6L3B/VG9wwPrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzrkL3vJWz105F; Thu, 5 Sep 2024 07:35:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4857Zc6I037181; Thu, 5 Sep 2024 07:35:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4857ZcFN037178; Thu, 5 Sep 2024 07:35:38 GMT (envelope-from git) Date: Thu, 5 Sep 2024 07:35:38 GMT Message-Id: <202409050735.4857ZcFN037178@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 13bf8945c9b6 - releng/13.4 - pf: be less strict about icmp state checking for sloppy state tracking 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.4 X-Git-Reftype: branch X-Git-Commit: 13bf8945c9b61aae587529a10646c589835f0c41 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=13bf8945c9b61aae587529a10646c589835f0c41 commit 13bf8945c9b61aae587529a10646c589835f0c41 Author: Kristof Provost AuthorDate: 2024-08-26 14:44:20 +0000 Commit: Kristof Provost CommitDate: 2024-09-05 07:35:03 +0000 pf: be less strict about icmp state checking for sloppy state tracking Sloppy state tracking renders ICMP direction check useless and harmful as we might see only half of the connection in the asymmetric setups but ignore the state match. The bug was reported and fix was verified by Insan Praja . Thanks! OK mcbride, henning MFC after: 1 week Obtained from: OpenBSD, mikeb , 538596657140 Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 3da3eb6081a2e2f6ea2fed1728d5dd7f9e8786e5) (cherry picked from commit b4b8b2fc9bd25d10eab0afdbd06a7ef8735b7b6b) Approved-by: re (cperciva) --- sys/netpfil/pf/pf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 0991cd39f332..9c1aa4d0a77a 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6089,6 +6089,9 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, STATE_LOOKUP(kif, key, direction, *state, pd); + if ((*state)->state_flags & PFSTATE_SLOPPY) + return (-1); + /* Is this ICMP message flowing in right direction? */ if ((*state)->rule.ptr->type && (((!inner && (*state)->direction == direction) || From nobody Thu Sep 5 07:35:39 2024 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 4WzrkN1p8Sz5VWxg; Thu, 05 Sep 2024 07:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzrkM5K9jz4XsX; Thu, 5 Sep 2024 07:35:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725521739; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=amof0GNTiKxqVD0W6TdA1UcSO1aoE35VCu6MBD+rS/I=; b=Fa9yuq1hNUX75JIKWjVeNMD4XGnkYkAkNHLcdZdbSXgVrcoZ+VibevMTYxCr4XGyQuyBZb hqF6U+pUX4upRHKZzhpEGGYNpm/Zag3YcAg6comtE5nIpjDoUO2rCCpVMAoMPbk/5d4dny GK+gGSwI1s8b+xWLwnz5IVfYw+Y2sBNDCnuOofV2GBteoWjhH5glgSH4NK5T8Btq9fCBhP +MQab1HbRrogwpwZK9te5dGnkXQpGILyw5l3q5CO8qzQ6ynDr2Df2+fc7HNAROU/de+4zb Rf7NLK5dZzjQGGV/y9kelwRA30SEJ2p2R8iCw+HvRjSUYxAx8NopgyVdkYJOjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725521739; a=rsa-sha256; cv=none; b=Nw5xZG8F79Hbmhz90Us+TFms+Pi0oQP2zIEownBQLxAQZE5Oq43w5Iw672X8RZ/tKIZ1Rb QcjihJZ2Tktlvw9Iqt0D7oYwVZu2FKmaScdU+X804J0H3BFhgz/dgI7slGcBkQOnvrQ/Vy 4ntjzDvVFcnG76FW0O47IwxP0Lh0c3OxkZ6nK+2TKx0pRqqbR/L63gwwGQShxQ10txB9QU VHYbdHhJbs9BfG31/5IFsvpSQNWHUCFZHek7OBtgyRGaO8Vl89KyYidHiBuyxFA4xXdZpq z9SlBt6STJsr0FvgboeEOY6AhM1gkwrrwoNU6IcPnTFoEwACxkaey0SIPPFrsA== 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=1725521739; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=amof0GNTiKxqVD0W6TdA1UcSO1aoE35VCu6MBD+rS/I=; b=N9lK4SUWpBZxPUALp6pQDyy1mhBklMDidlkNeYN/rz5H7POC92th1djldDIfaFJ1B/NyzQ 5KR1LUZEY25Zqx53+gquKEok09atora5KPZ33Y7Zxdc+wuWXn4VXtT1KBPBN/+FKnDRPqR Nck99DMmwABO/SjOBloLrkTe2d+GHb0rRf4odq3M1HJ8zZaqS4rmgfXoxkslfM60sLRRz+ mtC//V+KVRWXAwSD6CNZPKhRukuafxirQ261ikLqVI1ABJ7nLukTqORJdY6g6aT2GeDVo/ eqTqHk89+jTnX51nCEQpbE3ykf2HVVfEbLALJn8mefMlUytCwKzwnyTxnXWdkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzrkM4wyjzyvc; Thu, 5 Sep 2024 07:35:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4857ZdOW037224; Thu, 5 Sep 2024 07:35:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4857ZdUv037221; Thu, 5 Sep 2024 07:35:39 GMT (envelope-from git) Date: Thu, 5 Sep 2024 07:35:39 GMT Message-Id: <202409050735.4857ZdUv037221@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: e893ec49afb2 - releng/13.4 - pf: rework pf_icmp_state_lookup() failure mode 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.4 X-Git-Reftype: branch X-Git-Commit: e893ec49afb2caf05a2c28df4434905fa4213537 Auto-Submitted: auto-generated The branch releng/13.4 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=e893ec49afb2caf05a2c28df4434905fa4213537 commit e893ec49afb2caf05a2c28df4434905fa4213537 Author: Kristof Provost AuthorDate: 2024-08-30 11:36:39 +0000 Commit: Kristof Provost CommitDate: 2024-09-05 07:35:12 +0000 pf: rework pf_icmp_state_lookup() failure mode If pf_icmp_state_lookup() finds a state but rejects it for not matching the expected direction we should unlock the state (and NULL out *state). This simplifies life for callers, and also ensures there's no confusion about what a non-NULL returned state means. Previously it could have been left in there by the caller, resulting in callers unlocking the same state twice. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 0578fe492284ded4745167060be794032e6e22f0) (cherry picked from commit d6e5f8643d37e925aa51fc8224cfc05aba0813f7) Approved-by: re (cperciva) --- sys/net/pfvar.h | 4 ++-- sys/netpfil/pf/pf.c | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index e6c2d1f290cf..66bdbf43e212 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -330,8 +330,8 @@ struct pfi_dynaddr { mtx_unlock(_s->lock); \ } while (0) #else -#define PF_STATE_LOCK(s) mtx_lock(s->lock) -#define PF_STATE_UNLOCK(s) mtx_unlock(s->lock) +#define PF_STATE_LOCK(s) mtx_lock((s)->lock) +#define PF_STATE_UNLOCK(s) mtx_unlock((s)->lock) #endif #ifdef INVARIANTS diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 9c1aa4d0a77a..ccd6b54f7b37 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6103,6 +6103,8 @@ pf_icmp_state_lookup(struct pf_state_key_cmp *key, struct pf_pdesc *pd, pf_print_state(*state); printf("\n"); } + PF_STATE_UNLOCK(*state); + *state = NULL; return (PF_DROP); } return (-1); @@ -6155,15 +6157,16 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 0); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd->af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, pd, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 0); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } @@ -6570,8 +6573,10 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd2.dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } /* translate source/destination address, if necessary */ if ((*state)->key[PF_SK_WIRE] != @@ -6626,16 +6631,17 @@ pf_test_state_icmp(struct pf_kstate **state, int direction, struct pfi_kkif *kif pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, PF_ICMP_MULTI_NONE, 1); if (ret >= 0) { + MPASS(*state == NULL); if (ret == PF_DROP && pd2.af == AF_INET6 && icmp_dir == PF_OUT) { - if (*state != NULL) - PF_STATE_UNLOCK((*state)); ret = pf_icmp_state_lookup(&key, &pd2, state, m, off, pd->dir, kif, virtual_id, virtual_type, icmp_dir, &iidx, multi, 1); - if (ret >= 0) + if (ret >= 0) { + MPASS(*state == NULL); return (ret); + } } else return (ret); } From nobody Thu Sep 5 13:46:14 2024 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 4X00xz0Cnyz5W4rb; Thu, 05 Sep 2024 13:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X00xy6cDXz4R6R; Thu, 5 Sep 2024 13:46:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725543974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ap+mCZw7exj5xekXuDnY64HJSm22CdV9MKkUPnzqOLM=; b=ssKES+txhCaWx6iR2tI4b2RR4nSr8q7rQNHZ8fXG42qieS1nzkvsw5Gkg6uIIlK2UwSzg9 2zreskfi0ewD3Irh7mHsyqiFpRiVlP71h6xcUa3q0knhJ0Eiuhdiou00yFxukSgyc+gwKE aefh6RDU/YOT4v/c5rLyfZGgiyYeCzvLf7Umc+25R80RYVCUnIk2wK8sUMDFzKoGe79AZI sLzRgjxfojG6q72rrwGeJRa5u8VVRwQvRGJfc9QjshbUhRv61A9lYM/eIzigVpDsaalKND oK1sI/lXCWsKZ56OPV+2P3y3E43F4Vn/OOV045OOhrxmbloeC1NjGVGaCkJTuw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725543974; a=rsa-sha256; cv=none; b=yaKf+MAKWdJvNC+4rN9ELOrWYhb7GJH4+Y3m/Sd7yyrEit2NCTOdtMZklU3xG6e/9fWG0j MyJJIaNNLTYYY6OLrn+dQSqo5K89nVV0aMoDtuIjk4HN0W7z4EvtGnaoIklNw2HcVkEiCP w/saKZ6QIMgY/su1Bjd8mlIIK0Z+O/Gk3qv0c2xYMIcisiX94DJb8Lc+AaxAgRjhc+u2PD JupfT4y/ohme404M5ARtIuCfh3wi7t7C+0gH+N/WbwVM83ApE1lJBIdUvaAjbkvPttwaUN rSuvnMcWxkifTRJ+9CgD6hronJ4mCNjMBLxC5wT/Yhmjut2YR4zZWbg/5QoITg== 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=1725543974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ap+mCZw7exj5xekXuDnY64HJSm22CdV9MKkUPnzqOLM=; b=f/umcDeTiLSGK8R8ldLWIDpvq5ejFg5qye+bF0Ovk3KuoDxN8sNAx1nLjtXy0UxLOznAkQ Xnxl35snrvVx63BufRY/QXpGVXwSbo8I+4OvExjAHfkFYr/xXTe2jicb68QG8q2BBYMOQu TiluoAiCtpypZkR9CqiETP02oizXK6Ud289+GKVL76n1t1fiVkjkdnPhzBv/9VtF8vWLKm c3aNq1jsibZJtKIHN2wOAB7G3rtAmYOsQAl5mYXwFmEz93c3rD+eX+Yb8iCf9EoAfNH3CH DY7E3NNnCo9XIQnPblq2ZuYr4xXZbdk12dq1j7CJNXsumWQwBpz6RMS8oyHGXA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X00xy5xhNz18vh; Thu, 5 Sep 2024 13:46:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 485DkELN065135; Thu, 5 Sep 2024 13:46:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 485DkES4065132; Thu, 5 Sep 2024 13:46:14 GMT (envelope-from git) Date: Thu, 5 Sep 2024 13:46:14 GMT Message-Id: <202409051346.485DkES4065132@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1e999a3ae1ac - stable/14 - atomic: Avoid casting the return value of atomic_load_ptr to void HEAD branches config description git-daemon-export-ok gl-conf hooks info objects packed-refs refs 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 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: 1e999a3ae1aceaaf84add14461243afe8ff45e39 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1e999a3ae1aceaaf84add14461243afe8ff45e39 commit 1e999a3ae1aceaaf84add14461243afe8ff45e39 Author: Mark Johnston AuthorDate: 2024-08-28 18:51:06 +0000 Commit: Mark Johnston CommitDate: 2024-09-05 13:44:00 +0000 atomic: Avoid casting the return value of atomic_load_ptr to void * Otherwise a cast is needed to load a uintptr_t value. Fixes: e1f4d623779d ("rangelocks: remove unneeded cast of the atomic_load_ptr() result") MFC after: 1 week (cherry picked from commit c7a7e997d25d0b33769252d002b16839c864c83d) --- sys/sys/atomic_san.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/sys/atomic_san.h b/sys/sys/atomic_san.h index eb6913296a45..ef81b4b7c51e 100644 --- a/sys/sys/atomic_san.h +++ b/sys/sys/atomic_san.h @@ -266,7 +266,8 @@ ATOMIC_SAN_THREAD_FENCE(SAN_INTERCEPTOR_PREFIX); #define atomic_fcmpset_rel_ptr ATOMIC_SAN(fcmpset_rel_ptr) #define atomic_fetchadd_ptr ATOMIC_SAN(fetchadd_ptr) #define atomic_load_ptr(x) \ - ((void *)ATOMIC_SAN(load_ptr)(__DECONST(volatile uintptr_t *, (x)))) + ((__typeof(*x))ATOMIC_SAN(load_ptr)( \ + __DECONST(volatile uintptr_t *, (x)))) #define atomic_load_acq_ptr ATOMIC_SAN(load_acq_ptr) #define atomic_load_consume_ptr(x) \ ((void *)atomic_load_acq_ptr((volatile uintptr_t *)(x))) From nobody Thu Sep 5 13:46:15 2024 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 4X00y00FVVz5W4rj; Thu, 05 Sep 2024 13:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X00xz6lj0z4R1x; Thu, 5 Sep 2024 13:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725543975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sIxx/FS5bJvca0vo3RvWHGmxYmMScEN77eS9Hoe7k8Q=; b=lpBSIG3MJXQjcOeTq8fTQm80JaRYAt4wHu+NHZnOarwan0T47SZxBvrixWXtjPWNWsaGIq FaHKc675Y4Un2XMesLEXLW7Ul0UaPYVZT+ZhP1/MqESmo4wZ8/fRdC1RWsDrCaRUu71uaR C8bkQ5Ztkk2VEzD7L1kIh6z2E9a3mWo0gFYv2f7X6ZHHDU9XFMSlN6WJvKzcZtBaSE5UVh DbKkC+NlWr1OrA7vFkmjsSR24XM/06Vg/yRcp3VluuRB3I+ExkLfWCjMIl92OwNWcNqp9D vhFWiLgLwCIvHM6CrOTrMRZM0YjxeyUMxEK7xc40lvqdoK3bfYvNXLsWrYXZSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725543975; a=rsa-sha256; cv=none; b=dSK4Dw7FIqrl8hYqmfscbJ9b0s8AHaQvn7qQuR/tMX+00z7NZAXpeX/j6UhBn8rZp1RI7n 79g8zHsimoKjxNY8uzY2BblbVzVGMLsMR3RvANDpsMWxOjabycpjajnRmJuyrw5SW192gy dkwG+xnDVKGJAMzJHwN4erVrMfAbe+XNzlk7J+8MTCi5JMtJ5bFh46+lm2Uv+G6UaG6y8s hcO4PF7nHGMD22zau9zCms9rlbxEuBwQ0kgG6Quq1Lhrx1GlZslpmdG47BZ3c5KPURvLod wyMuWY2x0PMTFTjTwHjdwElfrpdJhSRevrJ89G+jSjYZe1yEfK5MUFJu4AEt+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=1725543975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sIxx/FS5bJvca0vo3RvWHGmxYmMScEN77eS9Hoe7k8Q=; b=jbABcuizHsYEp2AOTXFCgpgxR3ZB7bzQ03sQWgp9VU5e3R27vevxsR1MutJodmqCtmvoQ8 T4rTSVx+YabUOfg8CElYnSWj2EltpnJCbCd3G2Psk7DJUT7678Kzu/bhwLL/npAMUR/IIg ejwl2lGBuX9Lm8hUTzoQNUHuXx3+c2sebCJg7wG+OwsilNZ+X6U8bNO2IuKItO4FMkDo8B Bz4DQ9qG9FwOg4iJRgVGB5xC28DONScv+HBGXn89182IVNsil/bhZhZ1t+VPLy03soA2pT Fqcl5u3dlA0GiKiQlQMwYW56qBo8nNTRyOzbuoU/lEJrJMJhXYQ4ou3AO1or4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X00xz6Ldcz18vj; Thu, 5 Sep 2024 13:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 485DkFx5065195; Thu, 5 Sep 2024 13:46:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 485DkFdc065192; Thu, 5 Sep 2024 13:46:15 GMT (envelope-from git) Date: Thu, 5 Sep 2024 13:46:15 GMT Message-Id: <202409051346.485DkFdc065192@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: f3e22a08ca69 - stable/14 - atomic: Fix the cast in the atomic_load_consume() interceptor 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 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: f3e22a08ca690bf3a80688641b9705aa2e1cb15c Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f3e22a08ca690bf3a80688641b9705aa2e1cb15c commit f3e22a08ca690bf3a80688641b9705aa2e1cb15c Author: Mark Johnston AuthorDate: 2024-08-28 19:25:11 +0000 Commit: Mark Johnston CommitDate: 2024-09-05 13:44:00 +0000 atomic: Fix the cast in the atomic_load_consume() interceptor As in commit c7a7e997d25d0, we should permit loading from a pointer to uintptr_t. Note that the other atomic_*_ptr() interfaces currently require casting regardless, only those defined in atomic_common.h try to be generic. Reported by: jrtc27 MFC after: 1 week (cherry picked from commit cb91dc50950ffdfd49337e844e231b69b8b5c634) --- sys/sys/atomic_san.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/atomic_san.h b/sys/sys/atomic_san.h index ef81b4b7c51e..e22324b87623 100644 --- a/sys/sys/atomic_san.h +++ b/sys/sys/atomic_san.h @@ -270,7 +270,7 @@ ATOMIC_SAN_THREAD_FENCE(SAN_INTERCEPTOR_PREFIX); __DECONST(volatile uintptr_t *, (x)))) #define atomic_load_acq_ptr ATOMIC_SAN(load_acq_ptr) #define atomic_load_consume_ptr(x) \ - ((void *)atomic_load_acq_ptr((volatile uintptr_t *)(x))) + ((__typeof(*x))atomic_load_acq_ptr((volatile uintptr_t *)(x))) #define atomic_readandclear_ptr ATOMIC_SAN(readandclear_ptr) #define atomic_set_ptr ATOMIC_SAN(set_ptr) #define atomic_set_acq_ptr ATOMIC_SAN(set_acq_ptr) From nobody Thu Sep 5 13:46:16 2024 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 4X00y15Kxxz5W51t; Thu, 05 Sep 2024 13:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X00y115MGz4QtT; Thu, 5 Sep 2024 13:46:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725543977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k6XLeeXBboPqbcPa1sSueVGhPTJqXy8V0D46mrHUxSo=; b=Ykt5WCjM3uqLQ3g4/buheXaXLJwYYnhECXWc4GtIaCiKKPx2eXVpnmcuPvpbuAmmT2o+gY SB4JOvMA9pP/tj5bCTtbA6YmJy/vCidgMPV0hk6+UZ66vF77Y7BvzN6a8CWZsUQWOs2j4b VIKElLwoogXwxpB2yfSdMCIRDnfRJPu7QoP5f9V5YZdHl9TzoswlqlURbq7knAhk1IuJzc OmkIiZ6J2Rn3t723iNfC6z34z5PI+6+Uc0K1LI1NaIQlG7UmYshxO9eb5+iy9oPAVY21vO LwzOjl5ymcL1JU9Y2s/iGBHgJcK5qYYCUDPxAweqNb7186a4NHzRpfg0rqnABg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725543977; a=rsa-sha256; cv=none; b=oRB6hzp0zXhWTKDXO95And1ae875I3sy+VOZGCFYc01NQ+vDU+6SYHGGyUgnF1gqLGcH5N eVW0njjI0SuIF9wGIQcC69HEd3+5dq++QiVEeJFCACBvlQlaPcO5QS+TdxJPKT19T7XaZx CQQ7C8yPt/CmCoPHcorzLY2TgHMJQKSGNDQDgMk1nQnlJrA2VaEMOa8X2VnRmVxa6H4Gs0 YwY2HQruKQi4ItMFhbmLK/DB0S4HVaZhAOT8vyjPXwPvo2gunqH64TZZ0S/h+z5X1bRJ5n xctXW5dm27xAlkPIqCHa/4Fr96Pzems9vq4wGM7vnuwhkK1ExvW8pIzXOsRnfg== 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=1725543977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k6XLeeXBboPqbcPa1sSueVGhPTJqXy8V0D46mrHUxSo=; b=kmZ32DNJUC2GTYdypKt37Ao263pYfs24UnAwzox4mayJM7mg2se8Nq9VGIVGFgC+e4kUgh xdnUdqwek7UAij75yD3vGB0ba2nKjDfIWq0sbiB5HNPzu891bARHOVurixb6dndC1izx4k lnFpfJN0Rfp26dicrjCJ7hFej9Ru0K1tJIIvnSHh6Aak91M/eFM9QfwY7ETacpM2xRB0f/ n/MYadVwtD6rKga2sPaNJtb06LhCK+PQ1r3syTS07sduIQZJbIlaYLMp1Y1kKzjvaXH5Dw +Bm8HHVl0Uxf27xsCD0FZQSpPupbu6GeSIFeMJdyWtWPUgDz6CYTqwWJVXhf2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X00y10CWXz18WK; Thu, 5 Sep 2024 13:46:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 485DkG8L065240; Thu, 5 Sep 2024 13:46:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 485DkGZB065237; Thu, 5 Sep 2024 13:46:16 GMT (envelope-from git) Date: Thu, 5 Sep 2024 13:46:16 GMT Message-Id: <202409051346.485DkGZB065237@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 57e0d4b9a609 - stable/14 - agp: Set the driver-specific field correctly 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 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: 57e0d4b9a609cc2fe267489a3fe46857035ed3ae Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=57e0d4b9a609cc2fe267489a3fe46857035ed3ae commit 57e0d4b9a609cc2fe267489a3fe46857035ed3ae Author: Mark Johnston AuthorDate: 2024-08-29 13:12:19 +0000 Commit: Mark Johnston CommitDate: 2024-09-05 13:44:03 +0000 agp: Set the driver-specific field correctly PR: 281035 Reviewed by: mhorne MFC after: 1 week Fixes: 437ea82ce7fc ("agp: Handle multiple devices more gracefully") (cherry picked from commit 12500c14281dc62ddeac4c5e1e6eabd1e380f11c) --- sys/dev/agp/agp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c index f7eb906fc57c..8db1e13f08de 100644 --- a/sys/dev/agp/agp.c +++ b/sys/dev/agp/agp.c @@ -254,7 +254,7 @@ agp_generic_attach(device_t dev) mdargs.mda_uid = UID_ROOT; mdargs.mda_gid = GID_WHEEL; mdargs.mda_mode = 0600; - mdargs.mda_si_drv1 = sc; + mdargs.mda_si_drv1 = dev; mdargs.mda_si_drv2 = NULL; unit = device_get_unit(dev); From nobody Thu Sep 5 14:05:42 2024 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 4X01NQ6JFKz5W6SG; Thu, 05 Sep 2024 14:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X01NQ5cNcz4Tfc; Thu, 5 Sep 2024 14:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725545142; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=827YhUn5LPJSOgfoPSPDPjoYPxOR6KfhVUD1/nyHcbA=; b=YGBRRZI25QSezk9SYcUswaiRbBrwQ0aJvoTKJolESlhKWiOOL4pHBH0SjqUYO3YnxfoS8j UteJpyECW9NaUMSCPM8E9WivcOuAEnwDWg9MduJGRDg2wWwrC8O3JtGEG/rIJ4gzeWGpoX EblHgYALJXwC7XQx9c+OkrLi1b/lQWTSMTaze3Dp9L+az6Ed3+P0rBJ7ck6bS1fccZnRX8 PncNlcG+6zo3QxWUWuLdJiYjINfF5oclVjXCESqtg5wpj1c/asfmEgQp+HV/pXF53ra2MC ldMFmaQRpwrGoGE3fDzx7gCZz9Wnnj4cAx1IxskmWk/RlRijaVmcyGOGSgkTwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725545142; a=rsa-sha256; cv=none; b=Ilp9BqMhoNSz8YEZRdMEMAbFtDR4IfC2KYz9HeZ2STi8sPrdUZzg9FCk7j1hue9DH/PogT T/cF9ajpcmGmG2IKqfVtwF7WyNv9VwW8SWlA4GGjcGJ+rj3Q9N7XBM/COyCip4C/b4q9Fw DDRKK8nboyDMPDQJhkiQbI2XH2m3DZtK14ZZu60x0RjgLWVwftupKhSiyNzonsLXAseE4F DCsJru0WeM1g7gYfCpLqztB6KsQwqVwVq0BeoBGLtPEwekc+HL1f/EcMuJXCq69TTQaSf0 v7kDX6ayyQh9d0alXmSeA0kGUFgP0H+FzORRsKF6O0mox7RoTZkdFRV30lq8Bg== 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=1725545142; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=827YhUn5LPJSOgfoPSPDPjoYPxOR6KfhVUD1/nyHcbA=; b=j3LoAhKixvzFNt4vzOWlBvpU1YknolWUwqGwj1CRthd0H/lQgY+ZliSRi+SwrGSZyVbG6c hOqDmFjplv0zsDyQz5ILWDiZlsM1W7xXej3m8gxFFqcY2LEFzM2luhSnaCW6Wl2arX31b4 1ltf1b9Dl0htWAheMO73T9P+zhQcYZe71EfY/U8gCz6HjLIfuL803gTWh9II5WXCQVwC+s rFf8LWo50OuS71zZhh9Mogfu0CKb6ExreDdCX10ht6G/DaZ1Xsi1jc8ib6fhmCEdttf30z P3kKsj3wPb4gvGjT3aUhExzi5sLW3ZcX0/8ugJm+M8iPWheNFMnejDRSXXRIYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X01NQ58dFz1B8q; Thu, 5 Sep 2024 14:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 485E5gXA099351; Thu, 5 Sep 2024 14:05:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 485E5g0F099348; Thu, 5 Sep 2024 14:05:42 GMT (envelope-from git) Date: Thu, 5 Sep 2024 14:05:42 GMT Message-Id: <202409051405.485E5g0F099348@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Pietro Cerutti Subject: git: ab7a79806e31 - stable/14 - libfetch: don't include fragments in HTTP requests 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gahr X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ab7a79806e3103accb1ba2d89ba51e977704a2e3 Auto-Submitted: auto-generated The branch stable/14 has been updated by gahr: URL: https://cgit.FreeBSD.org/src/commit/?id=ab7a79806e3103accb1ba2d89ba51e977704a2e3 commit ab7a79806e3103accb1ba2d89ba51e977704a2e3 Author: Pietro Cerutti AuthorDate: 2024-08-21 12:35:27 +0000 Commit: Pietro Cerutti CommitDate: 2024-09-05 14:05:15 +0000 libfetch: don't include fragments in HTTP requests Fragments are reserved for client-side processing, see https://www.rfc-editor.org/rfc/rfc9110.html#section-7.1 Also, some servers don't like to receive HTTP requests with fragments. ``` $ fetch 'https://dropbox.com/a/b' fetch: https://dropbox.com/a/b: Not Found $ fetch 'https://dropbox.com/a/b#' fetch: https://dropbox.com/a/b#: Bad Request ``` This is a real-world scenario, where some download link from dropbox (eventually) redirects to an URL with a fragment: ``` $ fetch -v 'https://www.dropbox.com/sh//?dl=1' 2>&1 | grep requesting requesting https://www.dropbox.com/sh//?dl=1 requesting https://www.dropbox.com/scl/fo//?rlkey=&dl=1 requesting https://.dl.dropboxusercontent.com/zip_download_get/# ``` See how the last redirect ends with a `#`. Currently, libfetch includes the ending fragment and makes it impossible to download the file. Differential Revision: https://reviews.freebsd.org/D46318 MFC after: 2 weeks (cherry picked from commit 1af7d5f389536a2f391153513d95d92ffdf360e4) --- lib/libfetch/fetch.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/fetch.c b/lib/libfetch/fetch.c index 8cb3536a46c5..6e14a62ca596 100644 --- a/lib/libfetch/fetch.c +++ b/lib/libfetch/fetch.c @@ -448,7 +448,10 @@ nohost: goto ouch; } u->doc = doc; - while (*p != '\0') { + /* fragments are reserved for client-side processing, see + * https://www.rfc-editor.org/rfc/rfc9110.html#section-7.1 + */ + while (*p != '\0' && *p != '#') { if (!isspace((unsigned char)*p)) { *doc++ = *p++; } else { From nobody Thu Sep 5 14:50:38 2024 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 4X02NH3X1gz5WB1j; Thu, 05 Sep 2024 14:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X02NH1N6mz4c9l; Thu, 5 Sep 2024 14:50:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725547839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r/tSjF8iixQZBgi8ayJcP/gRVWpyuYvGQP9AWDeaJjY=; b=QwxpSTVgQKDeMqmhQBgrM5fCVSV6tKtfqQSTHABmlGmXluEUefq+ooz8RNmRzSED5g47yy wXAY0HEST8vM4/i9BReC5NKZO6Cst51eJm/HIjLrxp8gcTajPEOJ2ugfLn9uzoST4PHEwk u1eDbiCLVOhnFK7z35riN6x4GeimZRu1ivbkP/pB69TQsJSal5BJlqBsdEIYdQv9aWc4X/ LDM7MjZZoSrabUg2WrvckBVH4YdhCWcUf4aWVNVwyJqMeJqbkLEVoTaYlRpa36I27hGKyh COrpbFCVo88wgpmSU1+UtKRfY+89v4fiqVMlvHnRX4QqPSzSpuwfo06zG/BSFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725547839; a=rsa-sha256; cv=none; b=eq7TSRTy3qhNLOLMY51B4TUdvcgFKUKIZ5o4jZo7BMY4Rf6GpcyIkduIAzzDZZxS1LWvlF z1J1O+wisQo/bwIukUvRw/IR57zBeVjPJcyEim5egct2Qy/xCzA4sERVCXQR3aZ+PyH2pP pb45o+zW8JNofU/beu4tTueD4Ev/gnuxDEE7S54rUdRo0RyRlcH6kkyDlRRB9goi/3GNyu UvZ3/Uh4vYwzS3ocOR7WtuWocTtvX1X6d64Yu04PRoGPdQGenO+ErREW43lI4IK/f4jQZ3 9R9xwzB+qRIuduelCpNnQiev7BkjyVKTBWlNlygJpcacaYsvOkYtlbM4swl78A== 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=1725547839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r/tSjF8iixQZBgi8ayJcP/gRVWpyuYvGQP9AWDeaJjY=; b=V8H/bzZqSe/e04S+dFk9NxsJBLC5QdZtkfzVz7vDzXRsJdl2/UUuuN9NfLWGZ5valpNtyY UeuycqntpApEKEnz7ftvmu+mqYR/vP6ohI3fAVoJsJLe1Jv7NJwtf+gbj7fKCvd3YWPl+u jSZw69U4Awmx6YS16ZQ3lDZxkCYMjVCZF/yYqZQ0cRl7TJIOs6p7LcZVhQlApsnh8GxSta YZqs7CBxeafrhTY5oxsGhtiHPNdSjBm0U9fdaDfaE+9qPzdgujNGTbdiWBKllnml1h2bXB vCNbloOZNsWySnRwCCoE9pTI9MKqNALuF4q2n4rIr6xxwzd+gBUBSac1N8voRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X02NG6vtbz1C5Y; Thu, 5 Sep 2024 14:50:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 485Eocbi076452; Thu, 5 Sep 2024 14:50:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 485Eocuw076449; Thu, 5 Sep 2024 14:50:38 GMT (envelope-from git) Date: Thu, 5 Sep 2024 14:50:38 GMT Message-Id: <202409051450.485Eocuw076449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 82fd9219755d - stable/14 - sys: Mark ACL conversion routines as __result_use_check 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 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: 82fd9219755dac73e51289493e1f024b32bbb2cd Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=82fd9219755dac73e51289493e1f024b32bbb2cd commit 82fd9219755dac73e51289493e1f024b32bbb2cd Author: Pierre Pronchery AuthorDate: 2024-08-09 17:37:38 +0000 Commit: Ed Maste CommitDate: 2024-09-05 14:50:09 +0000 sys: Mark ACL conversion routines as __result_use_check Both acl_copy_oldacl_into_acl() and acl_copy_acl_into_oldacl() may fail in some circumstances (e.g., acl.acl_cnt exceeding the capacity of OLDACL_MAX_ENTRIES). This change marks both routines with __result_use_check, enforcing check for errors by the caller. Suggested by: markj Reviewed by: markj, emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46254 (cherry picked from commit ef9fc9609a1ff53047577aa7cf51246fc04c954b) --- sys/sys/acl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/sys/acl.h b/sys/sys/acl.h index f679808dceca..b0d76404fffa 100644 --- a/sys/sys/acl.h +++ b/sys/sys/acl.h @@ -307,9 +307,9 @@ void acl_nfs4_compute_inherited_acl( const struct acl *parent_aclp, struct acl *child_aclp, mode_t mode, int file_owner_id, int is_directory); -int acl_copy_oldacl_into_acl(const struct oldacl *source, +int __result_use_check acl_copy_oldacl_into_acl(const struct oldacl *source, struct acl *dest); -int acl_copy_acl_into_oldacl(const struct acl *source, +int __result_use_check acl_copy_acl_into_oldacl(const struct acl *source, struct oldacl *dest); /* From nobody Fri Sep 6 06:39:30 2024 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 4X0RR64sS0z5W6rx; Fri, 06 Sep 2024 06: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0RR62tXPz4CvZ; Fri, 6 Sep 2024 06: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=1725604770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s413//Sfpft24gDnGfGf3itqlCIPrtwCEkVYMjS6ZAs=; b=bbkwsih6tTtflv1Pkvns1izc+ou2wKnLOAaTN2RNLOOSqstNyKoLbLUGdJP3ytIUSnBG9a q6Dk1jnnOqYLGHBYDtVBORTu11CzP+N+CYXp6HVPafnF7ANxflWU0vHp+duQBQoBDZkDU1 SX+ZUBrAVzQPJa/zcHWwzu534dpzZJeLwNBiGXZXTEATk1rnxM0U6qqPLx5Z3Jva1tfBtv wID3hcHrDq7eCynO/L5Nn9kmA1ukd/man6AFZaGoIvlCianEZTI6ZmFdFy/s5dTZU7ATtM 1xUKpOHbxakPAYKbUTOk5r0VVhFQeHsBpzvrtgalm6QZvr9P7TuVd+fHBqTamA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725604770; a=rsa-sha256; cv=none; b=hnOxkyCkI3KJdAFjWkQataQxYSxUGNBQqp2GhGVlhL28ij0g0kOoz2hFDzVAL4sPWlI4mr ElGtAGC09rv2XHMMpSduYdHCXMdf+VZIF5fMDeye/FUPqKD6PK5XaLHmkRvD6YQ8E44c7f Q0lYXEdIGSzmINeDkQiWOR8jg+r+CkhYQy0xl2rPH1zPMNSRdWJN21ZVv7klkKi+XHWjgN LfWCiGPid76Jj8h981yHxtoB8b3MdKVXrLHNz0pNakrOwmCSh9XTIX4jT2l10JEOuDEmlK ZNPmydQq8C9LyuqenSFtxCjHRAkmn8dQiXZQO/QQyuRfhWcX19dnSC6U/dh5kQ== 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=1725604770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s413//Sfpft24gDnGfGf3itqlCIPrtwCEkVYMjS6ZAs=; b=gm3x7uJt2MKYR6NCungncyUkJANEh1FQ1btdF93Zm7TJMuPLoBm1WlF/d3gc/URRuU5rz1 YWcPsEkm5/yUhOxgdyRGDu6pjp2vjIqfLugeDQZwkrauFwee+6gttzHVE3BIIqFUuTb6ip sLYapFpFyEADDP5nKPh6yLvxLx0KdfVCq1gTr+tH2ir8LPm+3RJ3fSfzTbJ4PO/l6dhG0R S/ZZgCQf+bhXcn6T0icZ7bm7BpLSIXvz3W4zigI/WvIoAb13zgUqVC4uWvsmldfBeZerzn 4+19C/+sdCczAIyNmuG40rMn5T1qpexKaFjuNlZwuBdFeJK9cmxmh3/KsdR2NA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0RR62MN5zgsw; Fri, 6 Sep 2024 06:39:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4866dU6H082749; Fri, 6 Sep 2024 06:39:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4866dUCP082746; Fri, 6 Sep 2024 06:39:30 GMT (envelope-from git) Date: Fri, 6 Sep 2024 06:39:30 GMT Message-Id: <202409060639.4866dUCP082746@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 087b246271b6 - releng/13.4 - 13.4: Update to RC3 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 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/13.4 X-Git-Reftype: branch X-Git-Commit: 087b246271b6caafb7ae88ff7f7f36d5c66ec33c Auto-Submitted: auto-generated The branch releng/13.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=087b246271b6caafb7ae88ff7f7f36d5c66ec33c commit 087b246271b6caafb7ae88ff7f7f36d5c66ec33c Author: Colin Percival AuthorDate: 2024-09-06 06:39:08 +0000 Commit: Colin Percival CommitDate: 2024-09-06 06:39:08 +0000 13.4: Update to RC3 Approved by: re (implicit) Sponsored by: Amazon --- 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 9df266dcfb6c..862c89a779f1 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="13.4" -BRANCH="RC2-p1" +BRANCH="RC3" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri Sep 6 12:19:16 2024 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 4X0Zz91gh6z5Tthw; Fri, 06 Sep 2024 12:19: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0Zz86zfsz457R; Fri, 6 Sep 2024 12:19:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725625157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QY5/Wv6xyqpc2LQI478GuevJYrjyZrCfkYyRFfnayyo=; b=sTwVErUJzGNADgRdwWfP8MYktA712AuwjjRZaIcIoOWoyewn1HIXyJeQ5lPRuDFqct1bBp OJpO0z8iWVUrGU7qywt5qhyIe9BE1xfuE2dUeuI/FIvhASxG2wdnH3r7+UNjZCd2M4zVpP 66jIITBa5nkDc7zBz2k6gRpd2Xa2C5WTRiKCwAn0o5W1nQwDRytLOle5Tno2dv3zLmkm6S ZHFM+vXuX7p6aqtjq9ZjVuqTgALCQlMyVNTIOFfz7r/2XjA50hSLGLys7Bkj1KnRpsOPAR U11xuCZWY0nlKQcOipLL6uilEG3w60Wxp/wq41CH2uDTchDz0mLTj2Setd5T3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725625157; a=rsa-sha256; cv=none; b=KbGXBIAfB+RS63opaI4RCBr0jDzVdSToXb5Ya+FW9HiIH2QEqVufFjqnSm3F5r9NLyqIJe rAbnzz+PWBnliPynqgElwwgvwU08DOUEMdW/6XZxZXHxaBwDS3qBstfi6iGZHragz5XpNG SRF8c+1w9KxIC+6hDdv3n+rCqsfth+FHKRfispYg9zOhx2kjnMiFuotN/1OiMneIw6r/XB TIeruUJoLrn8raFBcmOTSN1wuoXu2yUwZeVxd9StMu+qPNmaufJ/caebsTM8+YE89gDNQU SO3PIG7VzPBlSz4ZzOd3uQmgNBQMpYIvgLmpQhwarfKSJMMYSeKT4I+6cVrXJA== 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=1725625157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QY5/Wv6xyqpc2LQI478GuevJYrjyZrCfkYyRFfnayyo=; b=i2411QNPu/Wa6MdORWLuVS6G+uWez65/CyqxcZfvRK1enkbACpInWV2NV65IgbGGSzvvfA jgYLNJlE+pNllNopkEMvxTj07OFA/dIIMNEGc/ckVyr2Op4VcPOTT73FQdsiPFkg+/ZLzw JaPabgX4BcxqjzY4MhYn7w8zeT4lgNVL74wS1W9v6z1ipzDO1FjCoMCaT2SU5arZuXNYic n4N/f3Vm8vBK6AhNTxy9P02w4cr5bMuuQzshFJ27830KxNpsfI5maHA4mWegBBa0UgO5hz ZnVzN4/dc8Mpg3cRJSqKtQdMJyNQD3nNKt3Igqzi6OPQl+n3y2tUPb3TKKG9Ag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0Zz86ZsMzrXW; Fri, 6 Sep 2024 12:19:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 486CJG2K062228; Fri, 6 Sep 2024 12:19:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 486CJGnX062225; Fri, 6 Sep 2024 12:19:16 GMT (envelope-from git) Date: Fri, 6 Sep 2024 12:19:16 GMT Message-Id: <202409061219.486CJGnX062225@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 7da246dc4ffe - stable/14 - beep: show error upon failure to open sound device 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 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: 7da246dc4ffeba38ad723a1cb72a19511292c840 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=7da246dc4ffeba38ad723a1cb72a19511292c840 commit 7da246dc4ffeba38ad723a1cb72a19511292c840 Author: Ed Maste AuthorDate: 2024-09-03 14:21:46 +0000 Commit: Ed Maste CommitDate: 2024-09-05 14:50:09 +0000 beep: show error upon failure to open sound device If beep cannot open /dev/dsp provide more information to aid the user in diagnosing a problem. Reviewed by: christos Sponsored by: The FreeBSD Foundation (cherry picked from commit 83325e7b738ce87d88553585b135b0e7d15997a6) --- usr.bin/beep/beep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/beep/beep.c b/usr.bin/beep/beep.c index 151236b4825b..2696bacfacf4 100644 --- a/usr.bin/beep/beep.c +++ b/usr.bin/beep/beep.c @@ -202,7 +202,7 @@ main(int argc, char **argv) f = open(oss_dev, O_WRONLY); if (f < 0) - errx(1, "Failed to open '%s'", oss_dev); + err(1, "Failed to open '%s'", oss_dev); c = 1; /* mono */ if (ioctl(f, SOUND_PCM_WRITE_CHANNELS, &c) != 0) From nobody Fri Sep 6 12:19:17 2024 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 4X0ZzB1PfXz5Ttng; Fri, 06 Sep 2024 12:19: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0ZzB0LjLz45LC; Fri, 6 Sep 2024 12:19:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725625158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YIFKPcNZRKdcKTXSxV2RiE7fYe4pIz6mdc/05jw/wYQ=; b=qX6do3Q05ffCOb7TDJjHyRYRQgLbztEVDeJAoukqQFXvIR3HAy0Y2tCS3zncaB+cyqVu00 9CXSk7jK3SsTNZ1pegemutVbBN40Q7b8sCxDMoSO9M47/jHxUP2m/qjy0dVg/EYP3sI3Z+ 477twmrVNwq5wPqvCG0i4R7Pt34mRb/egCrLczOlrZjHOW52qn/XbsELkSGqJxmgu8hXQ7 uXljPcluqT0OgdfmYw4XuAGVrKLjqhJHBrrlsnppBX1zY9i/Cx5HN+xpvp/KwCQfJwVYIY hkMTFylUl/YmTA1c3NJuJx0v9aAYR+BPEEz/zM+0wRaVc12OrOe3x2xdq3yrow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725625158; a=rsa-sha256; cv=none; b=nCW/DUjh+YKyT5udnbFnrc58TK8AVGxJyxWl7oFiHqiLfTqRsYYD8dwp4CPhDBgsmlX7Io OpKbbPPKnEd97tQqm7bUhKV8754LdjcmG27a4wBZR1QFVZa0pQMkIuGHPx0qyXylpi8RXr 8og+21kUGlztuzxQ4uyaN12C6YDYiky6qA+hR7f+g40AWrzhWQ8w/DTFm1jdPvk+U1pzTA yBorRtOhOJbn70EsBISZai4E3wvx7EDvicRIK4xCrbkVMAGbVg0nEF1TaYa8LdlxBh52WP QWJpYcE2xnYq6ajR9sH/4DK2FQRHuSkhYygmR876T5b8eOOHYCj440Xzki3ZnA== 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=1725625158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YIFKPcNZRKdcKTXSxV2RiE7fYe4pIz6mdc/05jw/wYQ=; b=Fgzl4pBSZnWl0JzxBXf8JeA2K3mQ2xd+IvOHguqelIsRS10+9gx2k+otYjo2S/imNlkqJv ut56BI54wYTDg9FjQo33EDU8yQWqIC2MNg1H8fV4WqWyHNnC4YWpMpAb5KeQCJdk31bO6k AE/r6dl3wZtVtC4gSAY4gWE/xyagwX7hOQDHB3PnTWxUpJjnL6CSaUzpiL/5J50H8TIhLX 3LDpRtsfpo66DU8Gckp80qyAPi80DJo0snBtW2FMnR7xNpr/HmbjDhhfz8c6JwRnPwW9VB 3Nj4tuZAJsaOTyQmKnOIlRczHODTvS4NBeqvEHAviqyUROvBeseNmSv53TvXcg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0Zz974GHzrXX; Fri, 6 Sep 2024 12:19:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 486CJHE9062280; Fri, 6 Sep 2024 12:19:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 486CJHvJ062277; Fri, 6 Sep 2024 12:19:17 GMT (envelope-from git) Date: Fri, 6 Sep 2024 12:19:17 GMT Message-Id: <202409061219.486CJHvJ062277@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: e998c9f1bb39 - stable/14 - bsd.symver.mk: pass $CFLAGS to $CPP invocation 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 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: e998c9f1bb39301a3408a47004ee6747698a9c8d Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e998c9f1bb39301a3408a47004ee6747698a9c8d commit e998c9f1bb39301a3408a47004ee6747698a9c8d Author: Ed Maste AuthorDate: 2024-05-24 16:15:17 +0000 Commit: Ed Maste CommitDate: 2024-09-05 14:50:10 +0000 bsd.symver.mk: pass $CFLAGS to $CPP invocation This allows us to support symbols optionally available based on configuration, not just on compiler built-in #defines. Reviewed by: brooks, jrtc27 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45346 (cherry picked from commit aa0bc761d245d2ea1e4b7a0343715cc76859d5da) --- share/mk/bsd.symver.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/mk/bsd.symver.mk b/share/mk/bsd.symver.mk index a1c6e62fba76..d0b63206d8fe 100644 --- a/share/mk/bsd.symver.mk +++ b/share/mk/bsd.symver.mk @@ -44,7 +44,7 @@ _vgen= ${path}/${VERSION_GEN} # Run the symbol maps through the C preprocessor before passing # them to the symbol version generator. ${VERSION_MAP}: ${VERSION_DEF} ${_vgen} ${SYMBOL_MAPS} - cat ${SYMBOL_MAPS} | ${CPP} - - \ + cat ${SYMBOL_MAPS} | ${CPP} ${CFLAGS} - - \ | awk -v vfile=${VERSION_DEF} -f ${_vgen} > ${.TARGET} .endif # !empty(VERSION_DEF) && !empty(SYMBOL_MAPS) .endif # !target(____) From nobody Fri Sep 6 12:19:18 2024 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 4X0ZzC3k8bz5TtqH; Fri, 06 Sep 2024 12:19: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0ZzC1PxKz45GL; Fri, 6 Sep 2024 12:19:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725625159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kyp0oPvnBP1pU2SP+ibosV9Lh5r8bn2HkVzhB5mivIY=; b=OBMdykn8TtuZPdR3QJEFHubMXoU+4A+2hgUqcCsw70vV8v5HUZ2R1TWWRJz8I+xUK4Yhsd mhld0MCOig6/6kA9ZDrc4+/YC/sDINX/hXU3nW9fNTiC9sjv7NLn0ECig1jjz/lJDLad+1 AsBOOOjaA7OlRnuY1uBz4NIeO9243ftV7xmmeBL4Qas1UDL9X8oSjaI1ZZ8aE3s1oGuynq 0Yo0+xpOygVUFzUkzlniRBvBSGbO1xNN9VMs1Y32UGxQUEQ0pC50yPIuwIgJXmxQBIDxZY 8szTMZbYXYscK1bAp+NxLKRVmYUfFUUFj4CLazCq2BXOiF4xPCXQTVlcNDGIuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725625159; a=rsa-sha256; cv=none; b=w2M/FMCffyFvvSfe47eaGSqyV7JLrqtLoSTFc4JJdc1yN241IQelJvJ8n0ru9QHfo9JHSd fDzP7Y4DlGCf2A2kbGCD41j0X3cEjWEJ1t83EJySr+zHLC2YQuj+jtmwKsXniaOPg2oEsm 76GFA0zBFHxCnHsWRdm+sPYkzrzZ/exHL3HB+y1GKecRn9tD5qNZr1vJfvJ45SF4/+hTK3 bxMSVBIci02QHp1tI3olle/gGqiP7LI+R/n9ElmJ6XIZHjKj7TOGzhxSWrxS/CzRNv87sZ x46r9kYPkfG5yPiDkM3PoyvfAtsfhzEXNYhVbI8zgXFuG+yahUdFC6jFlPLPcg== 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=1725625159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kyp0oPvnBP1pU2SP+ibosV9Lh5r8bn2HkVzhB5mivIY=; b=hRFGf8tQyPNg7JGf0Sf0qrqTJL9VLBUYGbF2NrbQBcXq37IIyydqJNK9IYmADVJS5ci+FK ok1kxMgKyvAFCCW53K/ebNjV3XJAMbdJDPTOYLeOBWuuZA0cQm3lS2G8J7MI8CopjdCaiv 7gVO9Lp4p8wq/UdQ6utDAJHyI+8D4gp9/XxIxAamz2cNeflnlFOYyxrqfmeVwHbRhREh3m tcC8kY5frBKGqCVQKssa6VwsSkRWnkLbT59QBjVuMMsb6j/ZFggKU1Rb1pJLDdyQ0uI/dR DQLpMYdw4gu46+EWezHqVQguuOA8uqtEcoYINCzADAZs43vSuccjW9VNjhNyGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0ZzC0kHDzrdP; Fri, 6 Sep 2024 12:19:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 486CJJZS062328; Fri, 6 Sep 2024 12:19:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 486CJIM4062325; Fri, 6 Sep 2024 12:19:18 GMT (envelope-from git) Date: Fri, 6 Sep 2024 12:19:18 GMT Message-Id: <202409061219.486CJIM4062325@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 14a2be2b3db1 - stable/14 - stand: bump arbitrary build date to 2024-01-01 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 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: 14a2be2b3db17cbd86a584d5a3378baa7e966bd0 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=14a2be2b3db17cbd86a584d5a3378baa7e966bd0 commit 14a2be2b3db17cbd86a584d5a3378baa7e966bd0 Author: Ed Maste AuthorDate: 2024-08-12 13:11:09 +0000 Commit: Ed Maste CommitDate: 2024-09-05 15:02:36 +0000 stand: bump arbitrary build date to 2024-01-01 For build reproducibility we set PE headers to an arbitrary timestamp. Nothing in FreeBSD uses this timestamp, but bump it from 2016 to 2024 so that the timestamp does not seem "too old" in case some third party tool is used to inspect EFI boot components. Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D46527 (cherry picked from commit 1b9cfd6a625dc82611846cb9a53c1886f7af3758) --- stand/efi/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stand/efi/Makefile.inc b/stand/efi/Makefile.inc index a27eb5d97484..d4600a4d60e7 100644 --- a/stand/efi/Makefile.inc +++ b/stand/efi/Makefile.inc @@ -24,8 +24,8 @@ EFI_TARGET= efi-app-x86_64 EFI_TARGET= binary .endif -# Arbitrarily set the PE/COFF header timestamps to 1 Jan 2016 00:00:00 +# Arbitrarily set the PE/COFF header timestamps to 1 Jan 2024 00:00:00 # for build reproducibility. -SOURCE_DATE_EPOCH?=1451606400 +SOURCE_DATE_EPOCH?=1704067200 .include "../Makefile.inc" From nobody Fri Sep 6 12:20:21 2024 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 4X0b0P71qXz5Ttl5; Fri, 06 Sep 2024 12:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0b0P4xJHz45xv; Fri, 6 Sep 2024 12:20:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725625221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8YLCxVZBhOo6lfeb9UyI+YdMI5VHDHAgbIcQo70FMfc=; b=nzJVsYNHUlYQH3iiVmbiNp4sda0yZkjLFlVUS/EFZhB51bLyQ8/r+jsOKgf4QwvVPNKylo 9QQd+DpJsnSJkCsQ915j0Q6J/rMeO+lpHcxlAwlYZf7QV1yqxo/l5pYB0wz9p/EdBa22VM n8pMtjzEc5VKvlkWq5RV7jLSrhSGOhRk0r3rmso/f78ZVVFSgNVSxHxgc9pIUN/tN9ijBL U69P/6sgLdh9/127zPdGSQMxVE6ODAio1f4yb4z5cfHI4GJAgRMi2ZUk3RSGQWxfNEfrdu RUBltB0UyBhu+6lzvnnoMFo8d5MYakMpQrS8KlFKS31rrvuF3pSRvwN41yTRMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725625221; a=rsa-sha256; cv=none; b=cY+VlZJTBfxl4u1ZxwFCzu1E66E/t+xPtmFdFXqW1gX5K580eEmjrbzCI1oc/H8iqS7ULq jA+CyQJPDDGGsieYjGdqTNOQrOxGD2PnraaK6l15oHD+Cm3hmfsTj0EI78rlddLZQZGdn9 uTWzoh/8oQdDyTGiDgH7NsnmVonFtvMaANDUPpYx8o1Ta9bEEiPyYndt4WqzA8VypVea+G Rpg0Evyi7OuA5vWFzBa1oRtwD2xvQTvdg8p1v9RFkZA2ax8n7EmjdC4tqFzTX9FTAC7t5u /liQXgo/QNIT3PztZQKGN7iMcPreH1Oog3UIEpOCanKYSm4hAGcoYuKkWP345w== 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=1725625221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8YLCxVZBhOo6lfeb9UyI+YdMI5VHDHAgbIcQo70FMfc=; b=SRTgQA7u0fdoV6QJRWWyq2mKMwckwJivF0yiR6FVIHyt/G358vdJ9tY2vIA0yzVMK/guDV 3hA5LfbYkbzoj7Y/KMerm7+ttOWkIZe/eFiXwGYBzjTQmjPe+F8xgQpDUT68nE9++zKk+3 8S7ZAjCQENeD6v/m3tB5T36qExBFezkhV48i/CzeAmUF2/Yh2DK+h2ZnyZLyGZ/9Wz0Avl wCGQ1lvj46TZ03RCd1wDLIu+4KhTf8pJURZ53TYs5fqLucrLDbVxOdKOFcu7N7wv3+OsaE tgeuInh83b0dv9G39+0SZv6RlmDIlbm5GF9/IKqP61juYWrBtiJGY9SsbIDtug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0b0P4XdKzrsJ; Fri, 6 Sep 2024 12:20:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 486CKLAm071197; Fri, 6 Sep 2024 12:20:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 486CKLg6071194; Fri, 6 Sep 2024 12:20:21 GMT (envelope-from git) Date: Fri, 6 Sep 2024 12:20:21 GMT Message-Id: <202409061220.486CKLg6071194@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: e7b4f6e0c064 - stable/13 - beep: show error upon failure to open sound device 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 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/13 X-Git-Reftype: branch X-Git-Commit: e7b4f6e0c0640f08acc3d0157a117e58cbf3bf22 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e7b4f6e0c0640f08acc3d0157a117e58cbf3bf22 commit e7b4f6e0c0640f08acc3d0157a117e58cbf3bf22 Author: Ed Maste AuthorDate: 2024-09-03 14:21:46 +0000 Commit: Ed Maste CommitDate: 2024-09-06 12:20:06 +0000 beep: show error upon failure to open sound device If beep cannot open /dev/dsp provide more information to aid the user in diagnosing a problem. Reviewed by: christos Sponsored by: The FreeBSD Foundation (cherry picked from commit 83325e7b738ce87d88553585b135b0e7d15997a6) (cherry picked from commit 7da246dc4ffeba38ad723a1cb72a19511292c840) --- usr.bin/beep/beep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/beep/beep.c b/usr.bin/beep/beep.c index 151236b4825b..2696bacfacf4 100644 --- a/usr.bin/beep/beep.c +++ b/usr.bin/beep/beep.c @@ -202,7 +202,7 @@ main(int argc, char **argv) f = open(oss_dev, O_WRONLY); if (f < 0) - errx(1, "Failed to open '%s'", oss_dev); + err(1, "Failed to open '%s'", oss_dev); c = 1; /* mono */ if (ioctl(f, SOUND_PCM_WRITE_CHANNELS, &c) != 0) From nobody Sat Sep 7 01:47:51 2024 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 4X0ww807Tjz5WSNk; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0ww755Q8z4jqR; Sat, 7 Sep 2024 01:47:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N/VJM4AXltIUMBn/NxUbTkqANo/lLWCITnZcPMxDBsQ=; b=lPjnZi1rhqzpGHexuAwzIHgm90cbz0lKDLq7clnhQb2rsNvj+m04ah2zhAD9Yt2GRrqImB d5e4S9VcGG+I6hDL4ic8soxhhfoI32satb7kDaf7gxxQ9JOCfpdtAFZyt21yIWroO6hq4U 7LYClylKTWUH7Y0k2FQDpmHA4m3VIa/b0z+7Hi/4GYiuwBrrkWtlwxZfRjKdqdH/TwPdIR 2FyClP5+lvhTLyG3wTv/hUcLPNUymQwaYRszFm5ED+uoyFt4B6jT8eypTA2RSIsT1C+6du TLBbZWWUM5Z8CHIqHiuQwImvxAgpzFBjaKnu0OaiE0f1f39khZwGGcRNWuRo1A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673671; a=rsa-sha256; cv=none; b=YsvQ0n86l7e+91rnolTqPjh4GdnpUaTRieT3CYDkKz8RIi6GGLQH+pIFXBXdYEULmRGu/n C3Ul0FatwihBpGdKu9a1NBjD+//jW+1pO1uAF4i4tmoDK/lgjF5INbksDkFA/a1aCmK/Jq l67r6Vub8FL4e0cqf90Mn3DS1GGU1rNO0OOnLHJrjPoXUsttdDiswzSi6w5Kuna+mYgHXg cSXj9QA27H6vOkwAz9AhyRmSFFK/WSHub5hc7FBASYZMAszFDc7WlczVo0vuAKO/gvN3Fy x7uEKl+6HXihO/Ty+J970d1i2aNLzpPsamhdHYvD96CDRT4pdGetL2YM9kViOA== 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=1725673671; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N/VJM4AXltIUMBn/NxUbTkqANo/lLWCITnZcPMxDBsQ=; b=W0vhGJGZkqUYEmC5ytK2pTCwp/NYy2ZjAwtL6aMkCXMOUv/G3LqSd9lYT6GRMIzKbXklT+ RsJaXfvWrdC8Y46ZY97TxRCyVm0bG83dv3WUYDqXlYxtL2eGkZsTeX2vd4z1OrNpb6h3Db muk+p6MfxqsBNARzVtldGmb9tIVqiktEaDF/6WIT7gFue54gRwhk0axz57EoWDPc7TXe7g p8qaPIu8vSv7uuqgLEH92qeCCryMg0kbZeAg5j7NLfyMBw1djTsKWInR8a5a5QXDh8k1n4 +PpZqggArwFKjjq7ZqTtqN8tNhgRYA6veHFAjmzDP7H5xBxEBVO/QqbBfM/Q2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0ww74b7FzGPY; Sat, 7 Sep 2024 01:47:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lpBl041317; Sat, 7 Sep 2024 01:47:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lpfC041314; Sat, 7 Sep 2024 01:47:51 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:51 GMT Message-Id: <202409070147.4871lpfC041314@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 6f242c69b604 - stable/14 - arm/mpic: remove empty pic_init_secondary() hook 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6f242c69b6049f4c319c1948da99472a53500c3f Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=6f242c69b6049f4c319c1948da99472a53500c3f commit 6f242c69b6049f4c319c1948da99472a53500c3f Author: Elliott Mitchell AuthorDate: 2024-01-23 02:52:37 +0000 Commit: Jessica Clarke CommitDate: 2024-09-06 23:52:27 +0000 arm/mpic: remove empty pic_init_secondary() hook The default hook does nothing, so having an empty handler is pointless. Simple cleanup. Reviewed by: markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40475 (cherry picked from commit a8b2189c90c52e43e27614b2cca6b753a70da0ca) --- sys/arm/mv/mpic.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sys/arm/mv/mpic.c b/sys/arm/mv/mpic.c index 15574e409001..232eb8556948 100644 --- a/sys/arm/mv/mpic.c +++ b/sys/arm/mv/mpic.c @@ -149,7 +149,6 @@ static void mpic_unmask_irq_err(uintptr_t nb); static boolean_t mpic_irq_is_percpu(uintptr_t); static int mpic_intr(void *arg); static void mpic_unmask_msi(void); -void mpic_init_secondary(device_t); void mpic_ipi_send(device_t, struct intr_irqsrc*, cpuset_t, u_int); int mpic_ipi_read(int); void mpic_ipi_clear(int); @@ -384,7 +383,6 @@ static device_method_t mv_mpic_methods[] = { DEVMETHOD(pic_post_filter, mpic_post_filter), DEVMETHOD(pic_post_ithread, mpic_post_ithread), DEVMETHOD(pic_pre_ithread, mpic_pre_ithread), - DEVMETHOD(pic_init_secondary, mpic_init_secondary), DEVMETHOD(pic_ipi_send, mpic_ipi_send), { 0, 0 } }; @@ -565,11 +563,6 @@ mv_msi_data(int irq, uint64_t *addr, uint32_t *data) return (0); } -void -mpic_init_secondary(device_t dev) -{ -} - void mpic_ipi_send(device_t dev, struct intr_irqsrc *isrc, cpuset_t cpus, u_int ipi) { From nobody Sat Sep 7 01:47:52 2024 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 4X0ww86r1pz5WSX3; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0ww861SBz4jfH; Sat, 7 Sep 2024 01:47:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hr3tKb4xLdGSen7w5SeSdCAD4pV2aUc6PZBw5FXorRw=; b=atDBR8/NNVLZjmJ7XibbyYCT/9zQNuV4tDdntcosReHExcfXdVc73KSCR6O1KoLRNe1bqd 8J9LQc7CJjA9m9JYYfJSZ0ObAfgsV3HfQ0u0XtK4wElUVml7uZ0lLsWrGPbk3wqFcDA9X7 ooM4tNjkG3nKifFeCZIM3wjlw6RKT/daGo0VjueFjPDdK8fT1qkbCAAiV7aVQf5eWtS8aX XBVHsqOhO1fD/WR+rehHFgkBCCS3WUN5G7MFN66UMnIMlbKtey7Pv17mtOhKEMVX01dYx6 0bz3yrTJtKio0LuB9hKYnIhzaGPHvtE/q0SKY8+kH03waUZujMQdAh1n53WFkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673672; a=rsa-sha256; cv=none; b=djuezzhphTLE/U5+cVzsMHARmWVBOz6NK/4dcTQB9BJaafzY4lNB0JImY6kivlquYAnUJe gna0SS8kumIT9TobOvqIwjkICAAJaLd7hj2pH3nEI4MhR+wD+7nyTNGZWeyEtQWAoav2PS hwzI26cz0VlKH+xOr1T8dah5ozKxcU7OU6xoRr5bcSVdFQzKUfP4RNAh8WjNrcna5c7ItA wCFbK3kDvSebLoytKaxeayam7Dz8UNHeuzFyGIWMYjj+bI1wGWFnCuUb8ACWPzmDgocCUv d5+s3H7kUq/UhJ23gM7MPUoKSFiGCfE73/8VMZ0ykRp+XM6OEKG6/T/15OXyqg== 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=1725673672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hr3tKb4xLdGSen7w5SeSdCAD4pV2aUc6PZBw5FXorRw=; b=aVz2sRzaQZ9wCU4K9pu/OavBdD7hfNyMTrQQEdHP/iOFnbb6RQRjO21RlyDoYQly7eUzf6 cImaqvokTbG40yVVyQI/BkRGXF+JyapW/EBtEh7P6GwoSlgHdxpRMw01yFb80QH4Sy6Qie EwSQ3hH5AKTY3TtClMe/bx5KYYyIqR1BfI7oMLJ/fkQI8zYkGJT4IItfKmUAO57GWxp2Pv NmqoRLsOplKfvAMXYaXO7HS5f7kx7+8foRGGwo8bLkanEcKb6mFDYX7G8pwxEtongtJuSO EGH5SEGAC9itRLzaTJBNXK+KSIPRkPKTT8I9ea1ft/2LIcIsNcW4yEIWBLTgrQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0ww85cpMzGPZ; Sat, 7 Sep 2024 01:47:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lq7H041365; Sat, 7 Sep 2024 01:47:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lqQt041362; Sat, 7 Sep 2024 01:47:52 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:52 GMT Message-Id: <202409070147.4871lqQt041362@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: a73592e0d013 - stable/14 - intrng: Remove irq_root_ipicount and corresponding intr_pic_claim_root arg 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a73592e0d013275bd97d09d9cf168279688f7238 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=a73592e0d013275bd97d09d9cf168279688f7238 commit a73592e0d013275bd97d09d9cf168279688f7238 Author: Jessica Clarke AuthorDate: 2024-01-24 23:49:53 +0000 Commit: Jessica Clarke CommitDate: 2024-09-06 23:52:47 +0000 intrng: Remove irq_root_ipicount and corresponding intr_pic_claim_root arg The static irq_root_ipicount variable is only ever written to (with the value passed to irq_root_ipicount), never read. Moreover, the bcm2836 driver, as used by the Raspberry Pi 2B and 3A/B (but not 4, which uses a GIC-400, though does have the legacy interrupt controller present too) passes 0 as ipicount, despite implementing IPIs. It's thus inaccurate and serves no purpose, so should be removed. Reviewed by: mmel, imp, mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35897 (cherry picked from commit e06afdb2856944d6db4e33d4bbe0e2dbbd057eb4) --- sys/arm/allwinner/a10/a10_intc.c | 2 +- sys/arm/arm/gic_acpi.c | 3 +-- sys/arm/arm/gic_fdt.c | 3 +-- sys/arm/broadcom/bcm2835/bcm2835_intr.c | 2 +- sys/arm/broadcom/bcm2835/bcm2836.c | 2 +- sys/arm/ti/aintc.c | 2 +- sys/arm64/arm64/gic_v3_acpi.c | 4 ++-- sys/arm64/arm64/gic_v3_fdt.c | 3 +-- sys/kern/subr_intr.c | 4 +--- sys/riscv/riscv/plic.c | 2 +- sys/sys/intr.h | 2 +- 11 files changed, 12 insertions(+), 17 deletions(-) diff --git a/sys/arm/allwinner/a10/a10_intc.c b/sys/arm/allwinner/a10/a10_intc.c index 22b29ececac5..410fba4b4728 100644 --- a/sys/arm/allwinner/a10/a10_intc.c +++ b/sys/arm/allwinner/a10/a10_intc.c @@ -236,7 +236,7 @@ a10_intr_pic_attach(struct a10_aintc_softc *sc) if (pic == NULL) return (ENXIO); - return (intr_pic_claim_root(sc->sc_dev, xref, a10_intr, sc, 0)); + return (intr_pic_claim_root(sc->sc_dev, xref, a10_intr, sc)); } static void diff --git a/sys/arm/arm/gic_acpi.c b/sys/arm/arm/gic_acpi.c index 56ff78f9b685..67297f9879ca 100644 --- a/sys/arm/arm/gic_acpi.c +++ b/sys/arm/arm/gic_acpi.c @@ -228,8 +228,7 @@ gic_acpi_attach(device_t dev) /* * Controller is root: */ - if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc, - GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) { + if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc) != 0) { device_printf(dev, "could not set PIC as a root\n"); intr_pic_deregister(dev, xref); goto cleanup; diff --git a/sys/arm/arm/gic_fdt.c b/sys/arm/arm/gic_fdt.c index d6c657250ba3..e7fe503bf426 100644 --- a/sys/arm/arm/gic_fdt.c +++ b/sys/arm/arm/gic_fdt.c @@ -154,8 +154,7 @@ gic_fdt_attach(device_t dev) */ pxref = ofw_bus_find_iparent(ofw_bus_get_node(dev)); if (pxref == 0 || xref == pxref) { - if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc, - GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) { + if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc) != 0) { device_printf(dev, "could not set PIC as a root\n"); intr_pic_deregister(dev, xref); goto cleanup; diff --git a/sys/arm/broadcom/bcm2835/bcm2835_intr.c b/sys/arm/broadcom/bcm2835/bcm2835_intr.c index b49c9041810d..5a8457bc4b67 100644 --- a/sys/arm/broadcom/bcm2835/bcm2835_intr.c +++ b/sys/arm/broadcom/bcm2835/bcm2835_intr.c @@ -405,7 +405,7 @@ bcm_intc_attach(device_t dev) sc->intc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (sc->intc_irq_res == NULL) { - if (intr_pic_claim_root(dev, xref, bcm2835_intc_intr, sc, 0) != 0) { + if (intr_pic_claim_root(dev, xref, bcm2835_intc_intr, sc) != 0) { /* XXX clean up */ device_printf(dev, "could not set PIC as a root\n"); return (ENXIO); diff --git a/sys/arm/broadcom/bcm2835/bcm2836.c b/sys/arm/broadcom/bcm2835/bcm2836.c index 60734abb40e3..f72bd9075982 100644 --- a/sys/arm/broadcom/bcm2835/bcm2836.c +++ b/sys/arm/broadcom/bcm2835/bcm2836.c @@ -646,7 +646,7 @@ bcm_lintc_pic_attach(struct bcm_lintc_softc *sc) if (pic == NULL) return (ENXIO); - return (intr_pic_claim_root(sc->bls_dev, xref, bcm_lintc_intr, sc, 0)); + return (intr_pic_claim_root(sc->bls_dev, xref, bcm_lintc_intr, sc)); } static int diff --git a/sys/arm/ti/aintc.c b/sys/arm/ti/aintc.c index ce986b2d38bc..776d231c3c48 100644 --- a/sys/arm/ti/aintc.c +++ b/sys/arm/ti/aintc.c @@ -230,7 +230,7 @@ ti_aintc_pic_attach(struct ti_aintc_softc *sc) if (pic == NULL) return (ENXIO); - return (intr_pic_claim_root(sc->sc_dev, xref, ti_aintc_intr, sc, 0)); + return (intr_pic_claim_root(sc->sc_dev, xref, ti_aintc_intr, sc)); } static int diff --git a/sys/arm64/arm64/gic_v3_acpi.c b/sys/arm64/arm64/gic_v3_acpi.c index fe13b9f15f71..199fddcbc20c 100644 --- a/sys/arm64/arm64/gic_v3_acpi.c +++ b/sys/arm64/arm64/gic_v3_acpi.c @@ -346,8 +346,8 @@ gic_v3_acpi_attach(device_t dev) } } - if (intr_pic_claim_root(dev, ACPI_INTR_XREF, arm_gic_v3_intr, sc, - GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) { + if (intr_pic_claim_root(dev, ACPI_INTR_XREF, arm_gic_v3_intr, sc) + != 0) { err = ENXIO; goto error; } diff --git a/sys/arm64/arm64/gic_v3_fdt.c b/sys/arm64/arm64/gic_v3_fdt.c index 9ca10167588a..f094bc6eb1fe 100644 --- a/sys/arm64/arm64/gic_v3_fdt.c +++ b/sys/arm64/arm64/gic_v3_fdt.c @@ -162,8 +162,7 @@ gic_v3_fdt_attach(device_t dev) /* Register xref */ OF_device_register_xref(xref, dev); - if (intr_pic_claim_root(dev, xref, arm_gic_v3_intr, sc, - GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) { + if (intr_pic_claim_root(dev, xref, arm_gic_v3_intr, sc) != 0) { err = ENXIO; goto error; } diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c index 6535c42f2404..e3ef2caf2291 100644 --- a/sys/kern/subr_intr.c +++ b/sys/kern/subr_intr.c @@ -100,7 +100,6 @@ void intr_irq_handler(struct trapframe *tf); device_t intr_irq_root_dev; static intr_irq_filter_t *irq_root_filter; static void *irq_root_arg; -static u_int irq_root_ipicount; struct intr_pic_child { SLIST_ENTRY(intr_pic_child) pc_next; @@ -884,7 +883,7 @@ intr_pic_deregister(device_t dev, intptr_t xref) */ int intr_pic_claim_root(device_t dev, intptr_t xref, intr_irq_filter_t *filter, - void *arg, u_int ipicount) + void *arg) { struct intr_pic *pic; @@ -916,7 +915,6 @@ intr_pic_claim_root(device_t dev, intptr_t xref, intr_irq_filter_t *filter, intr_irq_root_dev = dev; irq_root_filter = filter; irq_root_arg = arg; - irq_root_ipicount = ipicount; debugf("irq root set to %s\n", device_get_nameunit(dev)); return (0); diff --git a/sys/riscv/riscv/plic.c b/sys/riscv/riscv/plic.c index 27c8f59b1a87..c7d9249b2231 100644 --- a/sys/riscv/riscv/plic.c +++ b/sys/riscv/riscv/plic.c @@ -369,7 +369,7 @@ plic_attach(device_t dev) csr_set(sie, SIE_SEIE); - return (intr_pic_claim_root(sc->dev, xref, plic_intr, sc, 0)); + return (intr_pic_claim_root(sc->dev, xref, plic_intr, sc)); } static void diff --git a/sys/sys/intr.h b/sys/sys/intr.h index e91a661673d0..bdc693e6cb60 100644 --- a/sys/sys/intr.h +++ b/sys/sys/intr.h @@ -110,7 +110,7 @@ u_int intr_irq_next_cpu(u_int current_cpu, cpuset_t *cpumask); struct intr_pic *intr_pic_register(device_t, intptr_t); int intr_pic_deregister(device_t, intptr_t); -int intr_pic_claim_root(device_t, intptr_t, intr_irq_filter_t *, void *, u_int); +int intr_pic_claim_root(device_t, intptr_t, intr_irq_filter_t *, void *); int intr_pic_add_handler(device_t, struct intr_pic *, intr_child_irq_filter_t *, void *, uintptr_t, uintptr_t); bool intr_is_per_cpu(struct resource *); From nobody Sat Sep 7 01:47:53 2024 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 4X0wwB06qLz5WSLJ; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0ww96cvfz4jy3; Sat, 7 Sep 2024 01:47:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673673; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c49Qg4PcjUrpDY46+DfFdp2mF4QNZkkS6saee6ORZNk=; b=qBOBx3zqktuRkewi1CYTP2DWovI2UNBme6qInca391xdooLKyz/5R79AESnxrADc89v5ve GXDuoHAmaAgyrRLT38Di0VnUDgKEc/9Wn/VBPHVU+7356zcBpbtnFsuImEYbiOqMdQIpJp E5WaoAGU+lTdacUke+oCY3pVHT3kTy5eHbE27gXp4bsTQ+lPyKgoFdaFvr5MdyDuzLQfvd pWlTOga6A0AVN1SbuJ3Sq9B3dP2oQ3hgtD+Sxlr4hLeoy7/a8uzLtEdny7XzxGqYVrF8km uBAYRZfCLPS3tUZesfFPW9kppgsvEbne+WI9gsz726q87RBuVqrPglYmjpAUUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673673; a=rsa-sha256; cv=none; b=u6tGSRtNaBDb2r+6cPlP3ntiwY8TRZmp7ERxtz8uxbEPevTTPBAiNdB3GqRSTs9CUVhgTb isAngLjdWkhL84bHPqDNKb75OY37NywwW0eEeqiFucciuFYujKuYuSxaGkoyfxiw4RnBzJ ebxJe6PdNAqsuflKXeUFuBOTceW94qUxDcMel2rII4XReqCT/H6v3CFADrR24y++oTpBlK cKNdyvgJEhY9uMiTENllbGBBFSp6T8iyrFqW7XxQzNoGuD216chk8WulYZcwhpC0yVvH01 6L9pHSyVsj2FN0pqo/b8twn1t5FUCIrFa0dkP/Jni2x8CtdAn1vMy7f4GQClQw== 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=1725673673; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c49Qg4PcjUrpDY46+DfFdp2mF4QNZkkS6saee6ORZNk=; b=KRCsH7Q/Rm+pZs3ZeFfAoIfhYXZ+l8/arrPW3g7PCql12V1vZE4M1H3ITN+9gX1GeMaofb fCtEMeo56+eYIT0LDpPdZzxla7MRibEZgFjeoU27eUJFi9pPW6QkbVUhiMxOh0xd1Khzdz RCug45zup/PGEr0xR8UycTNPXq663bDnGjgMN+Vi6lBCMQiu5PaPo98+p36iuo97B1AKir ouDnMkX6Wn5Z9Ku4pKZijFceu/O2MfS2M+Z5K3xKkjs9AxF2LybarIkw0JObAeTKarpAo+ l97YikmiHgQW+D4EZ8CEi1yPeKXKHU6F3x1IgBW8IDxqLwrpRAelkb6FoW7vjg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0ww96D9gzG31; Sat, 7 Sep 2024 01:47:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lrBw041415; Sat, 7 Sep 2024 01:47:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lrNu041412; Sat, 7 Sep 2024 01:47:53 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:53 GMT Message-Id: <202409070147.4871lrNu041412@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 5e822432f030 - stable/14 - intrng: Extract arm/arm64 IPI->PIC glue 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5e822432f03014c4fec03d6234886febf5fb5ce8 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=5e822432f03014c4fec03d6234886febf5fb5ce8 commit 5e822432f03014c4fec03d6234886febf5fb5ce8 Author: Jessica Clarke AuthorDate: 2024-01-24 23:49:53 +0000 Commit: Jessica Clarke CommitDate: 2024-09-06 23:58:28 +0000 intrng: Extract arm/arm64 IPI->PIC glue code The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND are almost identical, and entirely MI with the lone exception of a single store barrier on arm64 (that is likely either redundant or needed on arm too). Thus, de-duplicate this code by moving it to INTRNG as a generic IPI glue framework. The ipi_* functions remain declared in MD smp.h headers and implemented in MD code, but are trivial wrappers around intr_ipi_send that could be made MI, at least for INTRNG ports, at a later date. Note that, whilst both arm and arm64 had an ii_send member in intr_ipi to abstract over how to send interrupts,, they were always ultimately using PIC_IPI_SEND, and so this complexity has been removed. A follow-up commit will re-introduce the same flexibility by instead allowing a device other than the root PIC to be registered as the IPI sender. As part of this, strengthen a MAXCPU assertion that was missed in commit 2f0b059eeafc ("intrng: switch from MAXCPU to mp_ncpus") (which itself is mis-titled). Reviewed by: mmel, mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35898 (cherry picked from commit fae8755f16ff5b9bdc32df046e0f16c0cbb48a29) --- sys/arm/arm/machdep_intr.c | 126 +------------------------- sys/arm/arm/mp_machdep.c | 10 +-- sys/arm/include/intr.h | 13 --- sys/arm64/arm64/mp_machdep.c | 204 ++----------------------------------------- sys/arm64/include/intr.h | 4 - sys/kern/subr_intr.c | 188 ++++++++++++++++++++++++++++++++------- sys/sys/intr.h | 21 ++--- 7 files changed, 177 insertions(+), 389 deletions(-) diff --git a/sys/arm/arm/machdep_intr.c b/sys/arm/arm/machdep_intr.c index 60acf7c9bc7f..46f6d7e6c95d 100644 --- a/sys/arm/arm/machdep_intr.c +++ b/sys/arm/arm/machdep_intr.c @@ -30,39 +30,10 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include - -#include "pic_if.h" - -#ifdef SMP -#define INTR_IPI_NAMELEN (MAXCOMLEN + 1) - -struct intr_ipi { - intr_ipi_handler_t * ii_handler; - void * ii_handler_arg; - intr_ipi_send_t * ii_send; - void * ii_send_arg; - char ii_name[INTR_IPI_NAMELEN]; - u_long * ii_count; -}; - -static struct intr_ipi ipi_sources[INTR_IPI_COUNT]; -#endif +#include +#include /* * arm_irq_memory_barrier() @@ -126,96 +97,3 @@ arm_irq_memory_barrier(uintptr_t irq) dsb(); cpu_l2cache_drain_writebuf(); } - -#ifdef SMP -static inline struct intr_ipi * -intr_ipi_lookup(u_int ipi) -{ - - if (ipi >= INTR_IPI_COUNT) - panic("%s: no such IPI %u", __func__, ipi); - - return (&ipi_sources[ipi]); -} - -void -intr_ipi_dispatch(u_int ipi) -{ - struct intr_ipi *ii; - - ii = intr_ipi_lookup(ipi); - if (ii->ii_count == NULL) - panic("%s: not setup IPI %u", __func__, ipi); - - intr_ipi_increment_count(ii->ii_count, PCPU_GET(cpuid)); - - ii->ii_handler(ii->ii_handler_arg); -} - -void -intr_ipi_send(cpuset_t cpus, u_int ipi) -{ - struct intr_ipi *ii; - - ii = intr_ipi_lookup(ipi); - if (ii->ii_count == NULL) - panic("%s: not setup IPI %u", __func__, ipi); - - ii->ii_send(ii->ii_send_arg, cpus, ipi); -} - -void -intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, - void *h_arg, intr_ipi_send_t *send, void *s_arg) -{ - struct intr_ipi *ii; - - ii = intr_ipi_lookup(ipi); - - KASSERT(hand != NULL, ("%s: ipi %u no handler", __func__, ipi)); - KASSERT(send != NULL, ("%s: ipi %u no sender", __func__, ipi)); - KASSERT(ii->ii_count == NULL, ("%s: ipi %u reused", __func__, ipi)); - - ii->ii_handler = hand; - ii->ii_handler_arg = h_arg; - ii->ii_send = send; - ii->ii_send_arg = s_arg; - strlcpy(ii->ii_name, name, INTR_IPI_NAMELEN); - ii->ii_count = intr_ipi_setup_counters(name); -} - -/* - * Send IPI thru interrupt controller. - */ -static void -pic_ipi_send(void *arg, cpuset_t cpus, u_int ipi) -{ - - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); - PIC_IPI_SEND(intr_irq_root_dev, arg, cpus, ipi); -} - -/* - * Setup IPI handler on interrupt controller. - * - * Not SMP coherent. - */ -int -intr_pic_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, - void *arg) -{ - int error; - struct intr_irqsrc *isrc; - - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); - - error = PIC_IPI_SETUP(intr_irq_root_dev, ipi, &isrc); - if (error != 0) - return (error); - - isrc->isrc_handlers++; - intr_ipi_setup(ipi, name, hand, arg, pic_ipi_send, isrc); - PIC_ENABLE_INTR(intr_irq_root_dev, isrc); - return (0); -} -#endif diff --git a/sys/arm/arm/mp_machdep.c b/sys/arm/arm/mp_machdep.c index 7debabf432d9..a204c81f0ae3 100644 --- a/sys/arm/arm/mp_machdep.c +++ b/sys/arm/arm/mp_machdep.c @@ -301,11 +301,11 @@ release_aps(void *dummy __unused) if (mp_ncpus == 1) return; - intr_pic_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); - intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); - intr_pic_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); - intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); - intr_pic_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); + intr_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); + intr_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); + intr_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); + intr_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); + intr_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); atomic_store_rel_int(&aps_ready, 1); /* Wake the other threads up */ diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h index 21829c5782bc..d0d0ff9fc32a 100644 --- a/sys/arm/include/intr.h +++ b/sys/arm/include/intr.h @@ -49,19 +49,6 @@ #include -#ifdef SMP -typedef void intr_ipi_send_t(void *, cpuset_t, u_int); -typedef void intr_ipi_handler_t(void *); - -void intr_ipi_dispatch(u_int); -void intr_ipi_send(cpuset_t, u_int); - -void intr_ipi_setup(u_int, const char *, intr_ipi_handler_t *, void *, - intr_ipi_send_t *, void *); - -int intr_pic_ipi_setup(u_int, const char *, intr_ipi_handler_t *, void *); -#endif - void arm_irq_memory_barrier(uintptr_t); #endif /* _MACHINE_INTR_H */ diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c index 5d598b4189a9..8dc967b0ccb3 100644 --- a/sys/arm64/arm64/mp_machdep.c +++ b/sys/arm64/arm64/mp_machdep.c @@ -78,8 +78,6 @@ #include -#include "pic_if.h" - #define MP_BOOTSTACK_SIZE (kstack_pages * PAGE_SIZE) #define MP_QUIRK_CPULIST 0x01 /* The list of cpus may be wrong, */ @@ -99,25 +97,6 @@ static struct { }; #endif -typedef void intr_ipi_send_t(void *, cpuset_t, u_int); -typedef void intr_ipi_handler_t(void *); - -#define INTR_IPI_NAMELEN (MAXCOMLEN + 1) -struct intr_ipi { - intr_ipi_handler_t * ii_handler; - void * ii_handler_arg; - intr_ipi_send_t * ii_send; - void * ii_send_arg; - char ii_name[INTR_IPI_NAMELEN]; - u_long * ii_count; -}; - -static struct intr_ipi ipi_sources[INTR_IPI_COUNT]; - -static struct intr_ipi *intr_ipi_lookup(u_int); -static void intr_pic_ipi_setup(u_int, const char *, intr_ipi_handler_t *, - void *); - static void ipi_ast(void *); static void ipi_hardclock(void *); static void ipi_preempt(void *); @@ -166,12 +145,12 @@ release_aps(void *dummy __unused) if (mp_ncpus == 1) return; - intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); - intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); - intr_pic_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); - intr_pic_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); - intr_pic_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL); - intr_pic_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); + intr_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); + intr_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); + intr_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); + intr_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); + intr_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL); + intr_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); atomic_store_rel_int(&aps_ready, 1); /* Wake up the other CPUs */ @@ -316,71 +295,6 @@ smp_after_idle_runnable(void *arg __unused) SYSINIT(smp_after_idle_runnable, SI_SUB_SMP, SI_ORDER_ANY, smp_after_idle_runnable, NULL); -/* - * Send IPI thru interrupt controller. - */ -static void -pic_ipi_send(void *arg, cpuset_t cpus, u_int ipi) -{ - - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); - - /* - * Ensure that this CPU's stores will be visible to IPI - * recipients before starting to send the interrupts. - */ - dsb(ishst); - - PIC_IPI_SEND(intr_irq_root_dev, arg, cpus, ipi); -} - -/* - * Setup IPI handler on interrupt controller. - * - * Not SMP coherent. - */ -static void -intr_pic_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, - void *arg) -{ - struct intr_irqsrc *isrc; - struct intr_ipi *ii; - int error; - - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); - KASSERT(hand != NULL, ("%s: ipi %u no handler", __func__, ipi)); - - error = PIC_IPI_SETUP(intr_irq_root_dev, ipi, &isrc); - if (error != 0) - return; - - isrc->isrc_handlers++; - - ii = intr_ipi_lookup(ipi); - KASSERT(ii->ii_count == NULL, ("%s: ipi %u reused", __func__, ipi)); - - ii->ii_handler = hand; - ii->ii_handler_arg = arg; - ii->ii_send = pic_ipi_send; - ii->ii_send_arg = isrc; - strlcpy(ii->ii_name, name, INTR_IPI_NAMELEN); - ii->ii_count = intr_ipi_setup_counters(name); - - PIC_ENABLE_INTR(intr_irq_root_dev, isrc); -} - -static void -intr_ipi_send(cpuset_t cpus, u_int ipi) -{ - struct intr_ipi *ii; - - ii = intr_ipi_lookup(ipi); - if (ii->ii_count == NULL) - panic("%s: not setup IPI %u", __func__, ipi); - - ii->ii_send(ii->ii_send_arg, cpus, ipi); -} - static void ipi_ast(void *dummy __unused) { @@ -889,112 +803,6 @@ cpu_mp_setmaxid(void) } } -/* - * Lookup IPI source. - */ -static struct intr_ipi * -intr_ipi_lookup(u_int ipi) -{ - - if (ipi >= INTR_IPI_COUNT) - panic("%s: no such IPI %u", __func__, ipi); - - return (&ipi_sources[ipi]); -} - -/* - * interrupt controller dispatch function for IPIs. It should - * be called straight from the interrupt controller, when associated - * interrupt source is learned. Or from anybody who has an interrupt - * source mapped. - */ -void -intr_ipi_dispatch(u_int ipi) -{ - struct intr_ipi *ii; - - ii = intr_ipi_lookup(ipi); - if (ii->ii_count == NULL) - panic("%s: not setup IPI %u", __func__, ipi); - - intr_ipi_increment_count(ii->ii_count, PCPU_GET(cpuid)); - - ii->ii_handler(ii->ii_handler_arg); -} - -#ifdef notyet -/* - * Map IPI into interrupt controller. - * - * Not SMP coherent. - */ -static int -ipi_map(struct intr_irqsrc *isrc, u_int ipi) -{ - boolean_t is_percpu; - int error; - - if (ipi >= INTR_IPI_COUNT) - panic("%s: no such IPI %u", __func__, ipi); - - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); - - isrc->isrc_type = INTR_ISRCT_NAMESPACE; - isrc->isrc_nspc_type = INTR_IRQ_NSPC_IPI; - isrc->isrc_nspc_num = ipi_next_num; - - error = PIC_REGISTER(intr_irq_root_dev, isrc, &is_percpu); - if (error == 0) { - isrc->isrc_dev = intr_irq_root_dev; - ipi_next_num++; - } - return (error); -} - -/* - * Setup IPI handler to interrupt source. - * - * Note that there could be more ways how to send and receive IPIs - * on a platform like fast interrupts for example. In that case, - * one can call this function with ASIF_NOALLOC flag set and then - * call intr_ipi_dispatch() when appropriate. - * - * Not SMP coherent. - */ -int -intr_ipi_set_handler(u_int ipi, const char *name, intr_ipi_filter_t *filter, - void *arg, u_int flags) -{ - struct intr_irqsrc *isrc; - int error; - - if (filter == NULL) - return(EINVAL); - - isrc = intr_ipi_lookup(ipi); - if (isrc->isrc_ipifilter != NULL) - return (EEXIST); - - if ((flags & AISHF_NOALLOC) == 0) { - error = ipi_map(isrc, ipi); - if (error != 0) - return (error); - } - - isrc->isrc_ipifilter = filter; - isrc->isrc_arg = arg; - isrc->isrc_handlers = 1; - isrc->isrc_count = intr_ipi_setup_counters(name); - isrc->isrc_index = 0; /* it should not be used in IPI case */ - - if (isrc->isrc_dev != NULL) { - PIC_ENABLE_INTR(isrc->isrc_dev, isrc); - PIC_ENABLE_SOURCE(isrc->isrc_dev, isrc); - } - return (0); -} -#endif - /* Sending IPI */ void ipi_all_but_self(u_int ipi) diff --git a/sys/arm64/include/intr.h b/sys/arm64/include/intr.h index 8d9c35e81cd7..3cdbc83ff109 100644 --- a/sys/arm64/include/intr.h +++ b/sys/arm64/include/intr.h @@ -42,10 +42,6 @@ arm_irq_memory_barrier(uintptr_t irq) { } -#ifdef SMP -void intr_ipi_dispatch(u_int); -#endif - #ifdef DEV_ACPI #define ACPI_INTR_XREF 1 #define ACPI_MSI_XREF 2 diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c index e3ef2caf2291..b9022f44b880 100644 --- a/sys/kern/subr_intr.c +++ b/sys/kern/subr_intr.c @@ -2,6 +2,11 @@ * Copyright (c) 2015-2016 Svatopluk Kraus * Copyright (c) 2015-2016 Michal Meloun * All rights reserved. + * Copyright (c) 2015-2016 The FreeBSD Foundation + * Copyright (c) 2021 Jessica Clarke + * + * Portions of this software were developed by Andrew Turner 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 @@ -124,6 +129,18 @@ struct intr_pic { SLIST_HEAD(, intr_pic_child) pic_children; }; +#ifdef SMP +#define INTR_IPI_NAMELEN (MAXCOMLEN + 1) + +struct intr_ipi { + intr_ipi_handler_t *ii_handler; + void *ii_handler_arg; + struct intr_irqsrc *ii_isrc; + char ii_name[INTR_IPI_NAMELEN]; + u_long *ii_count; +}; +#endif + static struct mtx pic_list_lock; static SLIST_HEAD(, intr_pic) pic_list; @@ -140,6 +157,8 @@ static bool irq_assign_cpu = true; #else static bool irq_assign_cpu = false; #endif + +static struct intr_ipi ipi_sources[INTR_IPI_COUNT]; #endif u_int intr_nirq = NIRQ; @@ -298,39 +317,6 @@ isrc_release_counters(struct intr_irqsrc *isrc) bit_nclear(intrcnt_bitmap, idx, idx + 1); } -#ifdef SMP -/* - * Virtualization for interrupt source IPI counters setup. - */ -u_long * -intr_ipi_setup_counters(const char *name) -{ - u_int index, i; - char str[INTRNAME_LEN]; - - mtx_lock(&isrc_table_lock); - - /* - * We should never have a problem finding MAXCPU contiguous counters, - * in practice. Interrupts will be allocated sequentially during boot, - * so the array should fill from low to high index. Once reserved, the - * IPI counters will never be released. Similarly, we will not need to - * allocate more IPIs once the system is running. - */ - bit_ffc_area(intrcnt_bitmap, nintrcnt, MAXCPU, &index); - if (index == -1) - panic("Failed to allocate %d counters. Array exhausted?", - MAXCPU); - bit_nset(intrcnt_bitmap, index, index + MAXCPU - 1); - for (i = 0; i < MAXCPU; i++) { - snprintf(str, INTRNAME_LEN, "cpu%d:%s", i, name); - intrcnt_setname(str, index + i); - } - mtx_unlock(&isrc_table_lock); - return (&intrcnt[index]); -} -#endif - /* * Main interrupt dispatch handler. It's called straight * from the assembler, where CPU interrupt is served. @@ -1774,3 +1760,139 @@ intr_map_init(void *dummy __unused) M_INTRNG, M_WAITOK | M_ZERO); } SYSINIT(intr_map_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_map_init, NULL); + +#ifdef SMP +/* Virtualization for interrupt source IPI counter increment. */ +static inline void +intr_ipi_increment_count(u_long *counter, u_int cpu) +{ + + KASSERT(cpu < MAXCPU + 1, ("%s: too big cpu %u", __func__, cpu)); + counter[cpu]++; +} + +/* + * Virtualization for interrupt source IPI counters setup. + */ +static u_long * +intr_ipi_setup_counters(const char *name) +{ + u_int index, i; + char str[INTRNAME_LEN]; + + mtx_lock(&isrc_table_lock); + + /* + * We should never have a problem finding MAXCPU contiguous counters, + * in practice. Interrupts will be allocated sequentially during boot, + * so the array should fill from low to high index. Once reserved, the + * IPI counters will never be released. Similarly, we will not need to + * allocate more IPIs once the system is running. + */ + bit_ffc_area(intrcnt_bitmap, nintrcnt, MAXCPU, &index); + if (index == -1) + panic("Failed to allocate %d counters. Array exhausted?", + MAXCPU); + bit_nset(intrcnt_bitmap, index, index + MAXCPU - 1); + for (i = 0; i < MAXCPU; i++) { + snprintf(str, INTRNAME_LEN, "cpu%d:%s", i, name); + intrcnt_setname(str, index + i); + } + mtx_unlock(&isrc_table_lock); + return (&intrcnt[index]); +} + +/* + * Lookup IPI source. + */ +static struct intr_ipi * +intr_ipi_lookup(u_int ipi) +{ + + if (ipi >= INTR_IPI_COUNT) + panic("%s: no such IPI %u", __func__, ipi); + + return (&ipi_sources[ipi]); +} + +/* + * Setup IPI handler on interrupt controller. + * + * Not SMP coherent. + */ +void +intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, + void *arg) +{ + struct intr_irqsrc *isrc; + struct intr_ipi *ii; + int error; + + KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); + KASSERT(hand != NULL, ("%s: ipi %u no handler", __func__, ipi)); + + error = PIC_IPI_SETUP(intr_irq_root_dev, ipi, &isrc); + if (error != 0) + return; + + isrc->isrc_handlers++; + + ii = intr_ipi_lookup(ipi); + KASSERT(ii->ii_count == NULL, ("%s: ipi %u reused", __func__, ipi)); + + ii->ii_handler = hand; + ii->ii_handler_arg = arg; + ii->ii_isrc = isrc; + strlcpy(ii->ii_name, name, INTR_IPI_NAMELEN); + ii->ii_count = intr_ipi_setup_counters(name); + + PIC_ENABLE_INTR(intr_irq_root_dev, isrc); +} + +void +intr_ipi_send(cpuset_t cpus, u_int ipi) +{ + struct intr_ipi *ii; + + KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); + + ii = intr_ipi_lookup(ipi); + if (ii->ii_count == NULL) + panic("%s: not setup IPI %u", __func__, ipi); + + /* + * XXX: Surely needed on other architectures too? Either way should be + * some kind of MI hook defined in an MD header, or the responsibility + * of the MD caller if not widespread. + */ +#ifdef __aarch64__ + /* + * Ensure that this CPU's stores will be visible to IPI + * recipients before starting to send the interrupts. + */ + dsb(ishst); +#endif + + PIC_IPI_SEND(intr_irq_root_dev, ii->ii_isrc, cpus, ipi); +} + +/* + * interrupt controller dispatch function for IPIs. It should + * be called straight from the interrupt controller, when associated + * interrupt source is learned. Or from anybody who has an interrupt + * source mapped. + */ +void +intr_ipi_dispatch(u_int ipi) +{ + struct intr_ipi *ii; + + ii = intr_ipi_lookup(ipi); + if (ii->ii_count == NULL) + panic("%s: not setup IPI %u", __func__, ipi); + + intr_ipi_increment_count(ii->ii_count, PCPU_GET(cpuid)); + + ii->ii_handler(ii->ii_handler_arg); +} +#endif diff --git a/sys/sys/intr.h b/sys/sys/intr.h index bdc693e6cb60..57b0ca393912 100644 --- a/sys/sys/intr.h +++ b/sys/sys/intr.h @@ -148,21 +148,18 @@ int intr_release_msix(device_t, device_t, intptr_t, int); int intr_bind_irq(device_t, struct resource *, int); void intr_pic_init_secondary(void); +#endif -/* Virtualization for interrupt source IPI counter increment. */ -static inline void -intr_ipi_increment_count(u_long *counter, u_int cpu) -{ - - KASSERT(cpu < MAXCPU, ("%s: too big cpu %u", __func__, cpu)); - counter[cpu]++; -} +extern u_int intr_nirq; /* number of IRQs on intrng platforms */ -/* Virtualization for interrupt source IPI counters setup. */ -u_long * intr_ipi_setup_counters(const char *name); +/* Intr interface for IPIs. */ +#ifdef SMP +typedef void intr_ipi_handler_t(void *); +void intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, + void *arg); +void intr_ipi_send(cpuset_t cpus, u_int ipi); +void intr_ipi_dispatch(u_int ipi); #endif -extern u_int intr_nirq; /* number of IRQs on intrng platforms */ - #endif /* _SYS_INTR_H */ From nobody Sat Sep 7 01:47:54 2024 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 4X0wwC46nMz5WSfs; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwC0HVCz4jj0; Sat, 7 Sep 2024 01:47:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yCwBOjJWwbw3Vn+YqYsGgmq8zd2jrwAgL/HjspBNrQE=; b=GAM7T9Fh7xUZO0u7lpsJVw9vzLL6jeJ9PPpFrDoB6h2Rn0BUgfcUo+WhCiHP9RNJaKF+XR 1NqqLJhCX94ri3c8Jo+4jI4kIY/YgI0A0d7iWyWtn89MRbB3r06V91IY/S80hivC8KISbs SM5VydsMCIOyAN3Mo+9fRO4Z6TrOubo5ZUxDMtBiKaGllgSUSkDdv867mY+XcjlIbEg0Oo 6K470xPj2llyPv0rgCDMSrHeffNewXB7vhhsMWWDQvqlFLxTr6Pgzl5rpsLC1DCwA72gkg JEHMGiLIgz6/clvXzKYEYMniXHRdVwWbvIO5siL/r0rTL39Dsr8G9kubXOopig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673675; a=rsa-sha256; cv=none; b=XmqnGdnX0zz2xUTJsp4xe2dgXO4bZ6gx+pMYQa8PONlVskd5YkZVrWSqKBUMIKcc01mGpp 4RW+n+a4KTS3t0G4Tzv+Me3v8DF8o8m++u9JeIGY085390xOhG3p1EeNnEpfPZyedgoQ3Z Pnr/rrusukM6l3cjOhuMNQV8H2Koj4xIJexARNR5C5hOpCZXoFvpTo59OF5ZNO97/GPFSt S9bnMBCzTL/bm02ToLIXtD6OvGKVbMJBCsKjyg7nxauOdKte8Wxiz5uhkP43QHh4dSC17M FVc4ziFAtewYQyhWZQp+7Kx9VfTZO8E8rpohRk09JTb3p0p1KeD/FXVinmoZjw== 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=1725673675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yCwBOjJWwbw3Vn+YqYsGgmq8zd2jrwAgL/HjspBNrQE=; b=HYsldBKZ3Xf0IBrj6OOaHnwCEPP92z/Dwxc155fUctG8Za4hR/aYXJKYmhgziJyef0JNSs f/WQGPDByGeQY7wGqNDV0b1wTkliKilmUW+eIewHsk4UZDNEI5QhxuSuzmJNR364JyBuPn SAsqqNyFj1y78cKBOT7s3F4HP3YBfglIY20ujLtpMm7XLUF7fxhUre8TFQB4ppw4t+tBkV 67YXnNlXTMLQXG3IlCcjYRgFiP4cVC2nuudmxW2sxaTrL2aNkkG4viOVw7Tib1g0MnMci/ WNWUnkAVaMKwrapZozAbBbJ8X4aa9qi47YnjehE9oXhJk2cPCqkEK9X0p+xQZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwB70nvzGPb; Sat, 7 Sep 2024 01:47:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lsVH041480; Sat, 7 Sep 2024 01:47:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871ls6q041477; Sat, 7 Sep 2024 01:47:54 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:54 GMT Message-Id: <202409070147.4871ls6q041477@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 7604062517ec - stable/14 - intrng: Allow alternative IPI PICs to be registered and used 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7604062517ec25ac0412f258b36f58774bd234ce Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=7604062517ec25ac0412f258b36f58774bd234ce commit 7604062517ec25ac0412f258b36f58774bd234ce Author: Jessica Clarke AuthorDate: 2024-01-24 23:49:54 +0000 Commit: Jessica Clarke CommitDate: 2024-09-06 23:59:02 +0000 intrng: Allow alternative IPI PICs to be registered and used On RISC-V, the root PIC (whether the PLIC or, as will be the case in future, the local interrupt controller) cannot send IPIs, relying on another means to trigger the necessary software interrupts (firmware calls), but there are upcoming standard devices that will be able to inject them, so we can't just put the firmware calls in the root PIC driver. Thus, split out a new intr_ipi_dev from intr_irq_root_dev to use for sending IPIs. New devices can be registered with a given priority up until the first IPI is set up, when the best device seen so far gets frozen as the IPI device to use. Reviewed by: mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35899 (cherry picked from commit 103d39efe0c68cb2a808c306b14c3f473a02535d) --- sys/arm/arm/gic_acpi.c | 8 ++++++++ sys/arm/arm/gic_fdt.c | 7 +++++++ sys/arm/broadcom/bcm2835/bcm2836.c | 12 ++++++++++- sys/arm64/arm64/gic_v3_acpi.c | 8 ++++++++ sys/arm64/arm64/gic_v3_fdt.c | 8 ++++++++ sys/kern/subr_intr.c | 42 +++++++++++++++++++++++++++++++------- sys/sys/intr.h | 1 + 7 files changed, 78 insertions(+), 8 deletions(-) diff --git a/sys/arm/arm/gic_acpi.c b/sys/arm/arm/gic_acpi.c index 67297f9879ca..bc03bf742798 100644 --- a/sys/arm/arm/gic_acpi.c +++ b/sys/arm/arm/gic_acpi.c @@ -233,6 +233,14 @@ gic_acpi_attach(device_t dev) intr_pic_deregister(dev, xref); goto cleanup; } + +#ifdef SMP + if (intr_ipi_pic_register(dev, 0) != 0) { + device_printf(dev, "could not register for IPIs\n"); + goto cleanup; + } +#endif + /* If we have children probe and attach them */ if (arm_gic_add_children(dev)) { bus_generic_probe(dev); diff --git a/sys/arm/arm/gic_fdt.c b/sys/arm/arm/gic_fdt.c index e7fe503bf426..4a83610d3418 100644 --- a/sys/arm/arm/gic_fdt.c +++ b/sys/arm/arm/gic_fdt.c @@ -159,6 +159,13 @@ gic_fdt_attach(device_t dev) intr_pic_deregister(dev, xref); goto cleanup; } + +#ifdef SMP + if (intr_ipi_pic_register(dev, 0) != 0) { + device_printf(dev, "could not register for IPIs\n"); + goto cleanup; + } +#endif } else { if (sc->base.gic_res[2] == NULL) { device_printf(dev, diff --git a/sys/arm/broadcom/bcm2835/bcm2836.c b/sys/arm/broadcom/bcm2835/bcm2836.c index f72bd9075982..8ff824d34521 100644 --- a/sys/arm/broadcom/bcm2835/bcm2836.c +++ b/sys/arm/broadcom/bcm2835/bcm2836.c @@ -646,7 +646,17 @@ bcm_lintc_pic_attach(struct bcm_lintc_softc *sc) if (pic == NULL) return (ENXIO); - return (intr_pic_claim_root(sc->bls_dev, xref, bcm_lintc_intr, sc)); + error = intr_pic_claim_root(sc->bls_dev, xref, bcm_lintc_intr, sc); + if (error != 0) + return (error); + +#ifdef SMP + error = intr_ipi_pic_register(sc->bls_dev, 0); + if (error != 0) + return (error); +#endif + + return (0); } static int diff --git a/sys/arm64/arm64/gic_v3_acpi.c b/sys/arm64/arm64/gic_v3_acpi.c index 199fddcbc20c..fca73010759d 100644 --- a/sys/arm64/arm64/gic_v3_acpi.c +++ b/sys/arm64/arm64/gic_v3_acpi.c @@ -352,6 +352,14 @@ gic_v3_acpi_attach(device_t dev) goto error; } +#ifdef SMP + err = intr_ipi_pic_register(dev, 0); + if (err != 0) { + device_printf(dev, "could not register for IPIs\n"); + goto error; + } +#endif + /* * Try to register the ITS driver to this GIC. The GIC will act as * a bus in that case. Failure here will not affect the main GIC diff --git a/sys/arm64/arm64/gic_v3_fdt.c b/sys/arm64/arm64/gic_v3_fdt.c index f094bc6eb1fe..ad27e395ad98 100644 --- a/sys/arm64/arm64/gic_v3_fdt.c +++ b/sys/arm64/arm64/gic_v3_fdt.c @@ -167,6 +167,14 @@ gic_v3_fdt_attach(device_t dev) goto error; } +#ifdef SMP + err = intr_ipi_pic_register(dev, 0); + if (err != 0) { + device_printf(dev, "could not register for IPIs\n"); + goto error; + } +#endif + /* * Try to register ITS to this GIC. * GIC will act as a bus in that case. diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c index b9022f44b880..6198603adfe8 100644 --- a/sys/kern/subr_intr.c +++ b/sys/kern/subr_intr.c @@ -139,6 +139,10 @@ struct intr_ipi { char ii_name[INTR_IPI_NAMELEN]; u_long *ii_count; }; + +static device_t intr_ipi_dev; +static u_int intr_ipi_dev_priority; +static bool intr_ipi_dev_frozen; #endif static struct mtx pic_list_lock; @@ -380,7 +384,8 @@ intr_isrc_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf) KASSERT(isrc != NULL, ("%s: no source", __func__)); - isrc_increment_count(isrc); + if ((isrc->isrc_flags & INTR_ISRCF_IPI) == 0) + isrc_increment_count(isrc); #ifdef INTR_SOLO if (isrc->isrc_filter != NULL) { @@ -396,7 +401,8 @@ intr_isrc_dispatch(struct intr_irqsrc *isrc, struct trapframe *tf) return (0); } - isrc_increment_straycount(isrc); + if ((isrc->isrc_flags & INTR_ISRCF_IPI) == 0) + isrc_increment_straycount(isrc); return (EINVAL); } @@ -1815,6 +1821,20 @@ intr_ipi_lookup(u_int ipi) return (&ipi_sources[ipi]); } +int +intr_ipi_pic_register(device_t dev, u_int priority) +{ + if (intr_ipi_dev_frozen) { + device_printf(dev, "IPI device already frozen"); + return (EBUSY); + } + + if (intr_ipi_dev == NULL || priority > intr_ipi_dev_priority) + intr_ipi_dev = dev; + + return (0); +} + /* * Setup IPI handler on interrupt controller. * @@ -1828,10 +1848,17 @@ intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, struct intr_ipi *ii; int error; - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); + if (!intr_ipi_dev_frozen) { + if (intr_ipi_dev == NULL) + panic("%s: no IPI PIC attached", __func__); + + intr_ipi_dev_frozen = true; + device_printf(intr_ipi_dev, "using for IPIs\n"); + } + KASSERT(hand != NULL, ("%s: ipi %u no handler", __func__, ipi)); - error = PIC_IPI_SETUP(intr_irq_root_dev, ipi, &isrc); + error = PIC_IPI_SETUP(intr_ipi_dev, ipi, &isrc); if (error != 0) return; @@ -1846,7 +1873,7 @@ intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, strlcpy(ii->ii_name, name, INTR_IPI_NAMELEN); ii->ii_count = intr_ipi_setup_counters(name); - PIC_ENABLE_INTR(intr_irq_root_dev, isrc); + PIC_ENABLE_INTR(intr_ipi_dev, isrc); } void @@ -1854,7 +1881,8 @@ intr_ipi_send(cpuset_t cpus, u_int ipi) { struct intr_ipi *ii; - KASSERT(intr_irq_root_dev != NULL, ("%s: no root attached", __func__)); + KASSERT(intr_ipi_dev_frozen, + ("%s: IPI device not yet frozen", __func__)); ii = intr_ipi_lookup(ipi); if (ii->ii_count == NULL) @@ -1873,7 +1901,7 @@ intr_ipi_send(cpuset_t cpus, u_int ipi) dsb(ishst); #endif - PIC_IPI_SEND(intr_irq_root_dev, ii->ii_isrc, cpus, ipi); + PIC_IPI_SEND(intr_ipi_dev, ii->ii_isrc, cpus, ipi); } /* diff --git a/sys/sys/intr.h b/sys/sys/intr.h index 57b0ca393912..f6957864c639 100644 --- a/sys/sys/intr.h +++ b/sys/sys/intr.h @@ -156,6 +156,7 @@ extern u_int intr_nirq; /* number of IRQs on intrng platforms */ #ifdef SMP typedef void intr_ipi_handler_t(void *); +int intr_ipi_pic_register(device_t dev, u_int priority); void intr_ipi_setup(u_int ipi, const char *name, intr_ipi_handler_t *hand, void *arg); void intr_ipi_send(cpuset_t cpus, u_int ipi); From nobody Sat Sep 7 01:47:56 2024 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 4X0wwD4CgZz5WSR3; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwD0vVRz4jw6; Sat, 7 Sep 2024 01:47:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d84Xq1UBbXZw3OzgFI9xFWYz/lOfAD1/7/T3lfIv5KQ=; b=ZRcx70qWT2KOoIA5qXedrEJ4uDcGZrrWD02OwCPyGKzhP9oiNTyI9qs7CEPkmPadleK9Uu /P4D4XG7/QrsmFVgWmeaGxIkfsazpL5r/qEXYhYdiGEkZKKwS1omdT6xLxMVTVeCW8U0gN Zmh1RLqOAcgXImeW/cEcOwhqbgsoSjmcIp0ltOI1dtj/MtVM3iLEE8vKo9IQeM6ODe1JeE rqBIz+4b84EHpAlfcKufyYwjb2XEFw9f8yyVz2UnbCPUQN/ZvAMzJ0+3ewEsCg6ZKsw2ty /qegYwD0mtvislHLtaQB3uhD3Z9bexMsMSlEQmB57CyYVLI+mYtqzt8ZtIyfSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673676; a=rsa-sha256; cv=none; b=QYcfqv1j35wQ3vKyGWfgi/OS6kFb9jNba2ZdbcwPgihCKB9GgTTEFxN6IXNvkju8uNPFs6 NBlstgnPp2EvCI+gDdDgUbuj2dpWMghlt9Dm12ZW1KWYbYLuh7ODdSXJJp1Dqxl43TiccT E5Pm5U1dTs74HoqmpG/KlL1NiUX54Wil3HcTouwAiDqISDh8NOS6TQ5rieHFGmxCBjgQUY cGCwnQsVFkwf1HGqrZTB1GZ/znk0YyVIIND3SGik98w+nBtuY0+SDUbf8RVtjxozKup7Aw T+xobLg9j5t5vq4cptibDWC8AIQgEUn+9LpczRpXPVRrqJ5WNGtfIRkGaEJ3Uw== 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=1725673676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d84Xq1UBbXZw3OzgFI9xFWYz/lOfAD1/7/T3lfIv5KQ=; b=iFnROYUfjnnNa4PRfgjX48blE/7XN0yUXthkILDInzDarvtlXOEKAIDl8wDVS5OTQ+0M8X cZI0DHgTSoZxry/vQh+Vyt1JokRuIyFB5a12d41OLAKQSqLDlb9G9coa916RZPvF1yD1do uwlUJgubHm7r0YwXfCJ2evevH4z6CySaMuPeZ0vW1B9ue4C3FVRn1Ggy4HKrjot6ciSwuf wmT9yZSKxtMAFnSV41D0nyngXwKp1X4yWvQCfNcVO5wm1mwb3/ioZDS5q0DKRp+UbcXsCV Mt1sgGSfNEYpV4hQufPXMcj8kNOjw9r7FSh10nzkXYzoVwUgm80up7l2kzHJmQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwD0WhhzGJh; Sat, 7 Sep 2024 01:47:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871ludW041535; Sat, 7 Sep 2024 01:47:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lu2G041532; Sat, 7 Sep 2024 01:47:56 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:56 GMT Message-Id: <202409070147.4871lu2G041532@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 601baffb0b54 - stable/14 - riscv: Create a newbus device for the SBI driver 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 601baffb0b54b8fe70ad1dd9fd923fe38d08337e Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=601baffb0b54b8fe70ad1dd9fd923fe38d08337e commit 601baffb0b54b8fe70ad1dd9fd923fe38d08337e Author: Jessica Clarke AuthorDate: 2024-01-24 23:49:54 +0000 Commit: Jessica Clarke CommitDate: 2024-09-06 23:59:12 +0000 riscv: Create a newbus device for the SBI driver This approach is based on the Arm PSCI driver, though that makes more extensive use of its softc than we do here. This will be used to extract the SBI IPI code as a real PIC. Reviewed by: mhorne, imp MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35900 (cherry picked from commit c55272fdf8570b4e15112009ad0066ed156f21a7) --- sys/riscv/include/sbi.h | 6 +---- sys/riscv/riscv/sbi.c | 65 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 59 insertions(+), 12 deletions(-) diff --git a/sys/riscv/include/sbi.h b/sys/riscv/include/sbi.h index 4fbdd598ec4d..bd3991e0a89f 100644 --- a/sys/riscv/include/sbi.h +++ b/sys/riscv/include/sbi.h @@ -159,11 +159,7 @@ sbi_call(uint64_t arg7, uint64_t arg6, uint64_t arg0, uint64_t arg1, return (ret); } -/* Base extension functions and variables. */ -extern u_long sbi_spec_version; -extern u_long sbi_impl_id; -extern u_long sbi_impl_version; - +/* Base extension functions. */ static __inline long sbi_probe_extension(long id) { diff --git a/sys/riscv/riscv/sbi.c b/sys/riscv/riscv/sbi.c index 36aaa8a6ffed..284b29af77df 100644 --- a/sys/riscv/riscv/sbi.c +++ b/sys/riscv/riscv/sbi.c @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2019 Mitchell Horne + * Copyright (c) 2021 Jessica Clarke * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -27,10 +28,11 @@ #include #include -#include #include -#include +#include #include +#include +#include #include #include @@ -40,9 +42,15 @@ #define OPENSBI_VERSION_MAJOR_OFFSET 16 #define OPENSBI_VERSION_MINOR_MASK 0xFFFF -u_long sbi_spec_version; -u_long sbi_impl_id; -u_long sbi_impl_version; +struct sbi_softc { + device_t dev; +}; + +static struct sbi_softc *sbi_softc = NULL; + +static u_long sbi_spec_version; +static u_long sbi_impl_id; +static u_long sbi_impl_version; static bool has_time_extension = false; static bool has_ipi_extension = false; @@ -316,10 +324,53 @@ sbi_init(void) } static void -sbi_late_init(void *dummy __unused) +sbi_identify(driver_t *driver, device_t parent) +{ + device_t dev; + + if (device_find_child(parent, "sbi", -1) != NULL) + return; + + dev = BUS_ADD_CHILD(parent, 0, "sbi", -1); + if (dev == NULL) + device_printf(parent, "Can't add sbi child\n"); +} + +static int +sbi_probe(device_t dev) { + device_set_desc(dev, "RISC-V Supervisor Binary Interface"); + + return (BUS_PROBE_NOWILDCARD); +} + +static int +sbi_attach(device_t dev) +{ + struct sbi_softc *sc; + + if (sbi_softc != NULL) + return (ENXIO); + + sc = device_get_softc(dev); + sc->dev = dev; + sbi_softc = sc; + EVENTHANDLER_REGISTER(shutdown_final, sbi_shutdown_final, NULL, SHUTDOWN_PRI_LAST); + + return (0); } -SYSINIT(sbi, SI_SUB_KLD, SI_ORDER_ANY, sbi_late_init, NULL); +static device_method_t sbi_methods[] = { + /* Device interface */ + DEVMETHOD(device_identify, sbi_identify), + DEVMETHOD(device_probe, sbi_probe), + DEVMETHOD(device_attach, sbi_attach), + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(sbi, sbi_driver, sbi_methods, sizeof(struct sbi_softc)); +EARLY_DRIVER_MODULE(sbi, nexus, sbi_driver, 0, 0, + BUS_PASS_CPU + BUS_PASS_ORDER_FIRST); From nobody Sat Sep 7 01:47:57 2024 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 4X0wwF3DgLz5WSZk; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwF24sdz4k49; Sat, 7 Sep 2024 01:47:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=28qmFLCUj2yJwYLfaS15wZbSDAyw1Mbr0QilnIhNqhQ=; b=HKWPCJsipPnRCIIhV8NAkLvkmcgTdNDunBwcCYwxC8YlrKcKvBbREAKr+RjjpVW9aQoVsb unr1TaqWX2siDLN+zSy5MpfWQEtjTk8TA/U7UpqMm1QtUJcs70yE0y4yR0gQdtdhb2zQQQ M0orlT1MJ7xGH3Uz3ROFVVWWpb0ckn9JP2Je+6pzzSZecI46FTtoJF0LInuKmcGvO6xHey Sg5Z7MBb/8F99DBop4ovc/hjztNTWTfVZzFXru/51nsDu8nR5hibc7HlAUFOYTIi4o5/UT R5G0VU9bcMmP8Km7rB9+zzU2khT+SL7Eh2hafZ0a5oxfM0T5rfArdxDCcXF3lA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673677; a=rsa-sha256; cv=none; b=uwdWU6ERB3RviAz0+U62r6VbPJUlqPk0RJXSWjXww2y022hwBrM4BTvx66Ukw7DJzeIyH9 yjTEFWHLuDwowet340bJ2XmGQ5UaFKjjPnf2OwzDS/7ESaJeRL0ezDKMdz4Ackj30Js7rP OqFfL4kxDha0uvpOAeEUOKBK3pcAJNR6FPsmgMJY+FcBTsMwldgK8q5hTXy/k/hMs5haO/ RK5Fvd2m6rrRP4psevFC2e7dns8BO4gLGMbT6RMdbgZzK0n1QLUDfcd1qsbe7THzJhqTWR 6MdQ5crHV3yoRXZaXZMeOuwSdMtUWzmmWTZZ7zHPHf4C0NmVl2XNcczot19YKQ== 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=1725673677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=28qmFLCUj2yJwYLfaS15wZbSDAyw1Mbr0QilnIhNqhQ=; b=hJaUG1gHDGh6Yyr5Dqp2YQh96Rb2ghFjqTs3tARJ/JHO4SnzLWI74TgKYuWlKShmSmh3mN Kpkr0Ra6shXjpvDANVTASNxFgSgFahBY7AWhjCpWIKId856OzLPlysccuEOihArM7NUUCp BGX6N2NcQOgwda1fJRGJ0CN3JQWrTzRtJA4NFlKIOCUWGOUyKX1P6xnkXC7nYKz6a3md3Y MvA25rJOUMu4KwU3c75o889zaLITXGLzSxnP/uoeDMUI7Zawl7Vt26L0Oz3qdjAdiGE1fF tsis5kEUqmPcRQpm9wRysqyu/ZQsNsr1DaDnwBZ0s3wkRQwJbNUe9Y7QyrDxJA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwF1f0QzGDM; Sat, 7 Sep 2024 01:47:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lvXC041589; Sat, 7 Sep 2024 01:47:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lvHB041586; Sat, 7 Sep 2024 01:47:57 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:57 GMT Message-Id: <202409070147.4871lvHB041586@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 5985c87b9630 - stable/14 - riscv: Convert local interrupt controller to a newbus PIC 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5985c87b963064ba36146504e5265561e083205f Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=5985c87b963064ba36146504e5265561e083205f commit 5985c87b963064ba36146504e5265561e083205f Author: Jessica Clarke AuthorDate: 2024-01-24 23:49:54 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:00:28 +0000 riscv: Convert local interrupt controller to a newbus PIC Currently the local interrupt controller implementation is based on pre-INTRNG arm/arm64 code, using hand-rolled event code rather than INTRNG. This then interacts weirdly with the PLIC, and other future interrupt controllers like the APLIC and IMSICs in the upcoming AIA specification, since they become the root PIC despite not being the logical root. Instead, use a real newbus device for it and register it as the root PIC. This also adapts the IPI code to make use of the newly-added INTRNG generic IPI handling framework, adding a new sbi_ipi as the PIC. In future there will be alternative devices for sending IPIs that will register with higher priorities, such as the proposed AIA IMSIC and ACLINT SSWI. Reviewed by: mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35901 (cherry picked from commit 6ec8bf9f3d17b712d657c42f74fba936dd284d04) --- sys/conf/files.riscv | 3 +- sys/riscv/include/intr.h | 24 +--- sys/riscv/include/smp.h | 17 +-- sys/riscv/riscv/intc.c | 311 ++++++++++++++++++++++++++++++++++++++++ sys/riscv/riscv/intr_machdep.c | 275 ----------------------------------- sys/riscv/riscv/mp_machdep.c | 162 ++++++++++++--------- sys/riscv/riscv/plic.c | 49 +++++-- sys/riscv/riscv/riscv_console.c | 2 - sys/riscv/riscv/sbi.c | 43 ++++++ sys/riscv/riscv/sbi_ipi.c | 208 +++++++++++++++++++++++++++ sys/riscv/riscv/timer.c | 33 ++++- sys/riscv/riscv/trap.c | 6 +- 12 files changed, 735 insertions(+), 398 deletions(-) diff --git a/sys/conf/files.riscv b/sys/conf/files.riscv index 42f1787489ac..c01e41325759 100644 --- a/sys/conf/files.riscv +++ b/sys/conf/files.riscv @@ -45,7 +45,7 @@ riscv/riscv/elf_machdep.c standard riscv/riscv/exception.S standard riscv/riscv/exec_machdep.c standard riscv/riscv/gdb_machdep.c optional gdb -riscv/riscv/intr_machdep.c standard +riscv/riscv/intc.c standard riscv/riscv/identcpu.c standard riscv/riscv/locore.S standard no-obj riscv/riscv/machdep.c standard @@ -60,6 +60,7 @@ riscv/riscv/ptrace_machdep.c standard riscv/riscv/riscv_console.c optional rcons riscv/riscv/riscv_syscon.c optional syscon riscv_syscon fdt riscv/riscv/sbi.c standard +riscv/riscv/sbi_ipi.c optional smp riscv/riscv/stack_machdep.c optional ddb | stack riscv/riscv/support.S standard riscv/riscv/swtch.S standard diff --git a/sys/riscv/include/intr.h b/sys/riscv/include/intr.h index a4e3a7093492..ad811dcbc449 100644 --- a/sys/riscv/include/intr.h +++ b/sys/riscv/include/intr.h @@ -35,32 +35,11 @@ #ifndef _MACHINE_INTR_MACHDEP_H_ #define _MACHINE_INTR_MACHDEP_H_ -#define RISCV_NIRQ 1024 - #ifndef NIRQ -#define NIRQ RISCV_NIRQ +#define NIRQ 1024 #endif -#ifdef INTRNG #include -#endif - -struct trapframe; - -int riscv_teardown_intr(void *); -int riscv_setup_intr(const char *, driver_filter_t *, driver_intr_t *, - void *, int, int, void **); -void riscv_cpu_intr(struct trapframe *); - -typedef unsigned long * riscv_intrcnt_t; - -riscv_intrcnt_t riscv_intrcnt_create(const char *); -void riscv_intrcnt_setname(riscv_intrcnt_t, const char *); - -#ifdef SMP -void riscv_setup_ipihandler(driver_filter_t *); -void riscv_unmask_ipi(void); -#endif enum { IRQ_SOFTWARE_USER, @@ -75,7 +54,6 @@ enum { IRQ_EXTERNAL_SUPERVISOR, IRQ_EXTERNAL_HYPERVISOR, IRQ_EXTERNAL_MACHINE, - INTC_NIRQS }; #endif /* !_MACHINE_INTR_MACHDEP_H_ */ diff --git a/sys/riscv/include/smp.h b/sys/riscv/include/smp.h index 8bafc1ac6a3a..863f0bbd6d21 100644 --- a/sys/riscv/include/smp.h +++ b/sys/riscv/include/smp.h @@ -37,14 +37,15 @@ #include -#define IPI_AST (1 << 0) -#define IPI_PREEMPT (1 << 1) -#define IPI_RENDEZVOUS (1 << 2) -#define IPI_STOP (1 << 3) -#define IPI_STOP_HARD (1 << 4) -#define IPI_HARDCLOCK (1 << 5) - -#define INTR_IPI_COUNT 1 +enum { + IPI_AST, + IPI_PREEMPT, + IPI_RENDEZVOUS, + IPI_STOP, + IPI_STOP_HARD, + IPI_HARDCLOCK, + INTR_IPI_COUNT +}; void ipi_all_but_self(u_int ipi); void ipi_cpu(int cpu, u_int ipi); diff --git a/sys/riscv/riscv/intc.c b/sys/riscv/riscv/intc.c new file mode 100644 index 000000000000..399bb05bbcfe --- /dev/null +++ b/sys/riscv/riscv/intc.c @@ -0,0 +1,311 @@ +/*- + * Copyright (c) 2015-2017 Ruslan Bukin + * All rights reserved. + * Copyright (c) 2021 Jessica Clarke + * + * Portions of this software were developed by SRI International and the + * University of Cambridge Computer Laboratory under DARPA/AFRL contract + * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. + * + * Portions of this software were developed by the University of Cambridge + * Computer Laboratory as part of the CTSRD Project, with support from the + * UK Higher Education Innovation Fund (HEIF). + * + * 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 +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include "pic_if.h" + +#define INTC_NIRQS 16 + +struct intc_irqsrc { + struct intr_irqsrc isrc; + u_int irq; +}; + +struct intc_softc { + device_t dev; + struct intc_irqsrc isrcs[INTC_NIRQS]; +}; + +static int intc_intr(void *arg); + +static phandle_t +intc_ofw_find(device_t dev, uint32_t hartid) +{ + phandle_t node; + pcell_t reg; + + node = OF_finddevice("/cpus"); + if (node == -1) { + device_printf(dev, "Can't find cpus node\n"); + return ((phandle_t)-1); + } + + for (node = OF_child(node); node != 0; node = OF_peer(node)) { + if (!ofw_bus_node_status_okay(node)) + continue; + + if (!ofw_bus_node_is_compatible(node, "riscv")) + continue; + + if (OF_searchencprop(node, "reg", ®, sizeof(reg)) == -1) + continue; + + if (reg == hartid) + break; + } + + if (node == 0) { + device_printf(dev, "Can't find boot cpu node\n"); + return ((phandle_t)-1); + } + + for (node = OF_child(node); node != 0; node = OF_peer(node)) { + if (!ofw_bus_node_status_okay(node)) + continue; + + if (ofw_bus_node_is_compatible(node, "riscv,cpu-intc")) + break; + } + + if (node == 0) { + device_printf(dev, + "Can't find boot cpu local interrupt controller\n"); + return ((phandle_t)-1); + } + + return (node); +} + +static void +intc_identify(driver_t *driver, device_t parent) +{ + device_t dev; + phandle_t node; + + if (device_find_child(parent, "intc", -1) != NULL) + return; + + node = intc_ofw_find(parent, PCPU_GET(hart)); + if (node == -1) + return; + + dev = simplebus_add_device(parent, node, 0, "intc", -1, NULL); + if (dev == NULL) + device_printf(parent, "Can't add intc child\n"); +} + +static int +intc_probe(device_t dev) +{ + device_set_desc(dev, "RISC-V Local Interrupt Controller"); + + return (BUS_PROBE_NOWILDCARD); +} + +static int +intc_attach(device_t dev) +{ + struct intc_irqsrc *isrcs; + struct intc_softc *sc; + struct intr_pic *pic; + const char *name; + phandle_t xref; + u_int flags; + int i, error; + + sc = device_get_softc(dev); + sc->dev = dev; + + name = device_get_nameunit(dev); + xref = OF_xref_from_node(ofw_bus_get_node(dev)); + + isrcs = sc->isrcs; + for (i = 0; i < INTC_NIRQS; i++) { + isrcs[i].irq = i; + flags = i == IRQ_SOFTWARE_SUPERVISOR + ? INTR_ISRCF_IPI : INTR_ISRCF_PPI; + error = intr_isrc_register(&isrcs[i].isrc, sc->dev, flags, + "%s,%u", name, i); + if (error != 0) { + device_printf(dev, "Can't register interrupt %d\n", i); + return (error); + } + } + + pic = intr_pic_register(sc->dev, xref); + if (pic == NULL) + return (ENXIO); + + return (intr_pic_claim_root(sc->dev, xref, intc_intr, sc)); +} + +static void +intc_disable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + u_int irq; + + irq = ((struct intc_irqsrc *)isrc)->irq; + if (irq >= INTC_NIRQS) + panic("%s: Unsupported IRQ %u", __func__, irq); + + csr_clear(sie, 1ul << irq); +} + +static void +intc_enable_intr(device_t dev, struct intr_irqsrc *isrc) +{ + u_int irq; + + irq = ((struct intc_irqsrc *)isrc)->irq; + if (irq >= INTC_NIRQS) + panic("%s: Unsupported IRQ %u", __func__, irq); + + csr_set(sie, 1ul << irq); +} + +static int +intc_map_intr(device_t dev, struct intr_map_data *data, + struct intr_irqsrc **isrcp) +{ + struct intr_map_data_fdt *daf; + struct intc_softc *sc; + + sc = device_get_softc(dev); + + if (data->type != INTR_MAP_DATA_FDT) + return (ENOTSUP); + + daf = (struct intr_map_data_fdt *)data; + if (daf->ncells != 1 || daf->cells[0] >= INTC_NIRQS) + return (EINVAL); + + *isrcp = &sc->isrcs[daf->cells[0]].isrc; + + return (0); +} + +static int +intc_setup_intr(device_t dev, struct intr_irqsrc *isrc, + struct resource *res, struct intr_map_data *data) +{ + if (isrc->isrc_flags & INTR_ISRCF_PPI) + CPU_SET(PCPU_GET(cpuid), &isrc->isrc_cpu); + + return (0); +} + +#ifdef SMP +static void +intc_init_secondary(device_t dev) +{ + struct intc_softc *sc; + struct intr_irqsrc *isrc; + u_int cpu, irq; + + sc = device_get_softc(dev); + cpu = PCPU_GET(cpuid); + + /* Unmask attached interrupts */ + for (irq = 0; irq < INTC_NIRQS; irq++) { + isrc = &sc->isrcs[irq].isrc; + if (intr_isrc_init_on_cpu(isrc, cpu)) + intc_enable_intr(dev, isrc); + } +} +#endif + +static int +intc_intr(void *arg) +{ + struct trapframe *frame; + struct intc_softc *sc; + uint64_t active_irq; + struct intc_irqsrc *src; + + sc = arg; + frame = curthread->td_intr_frame; + + KASSERT((frame->tf_scause & SCAUSE_INTR) != 0, + ("%s: not an interrupt frame", __func__)); + + active_irq = frame->tf_scause & SCAUSE_CODE; + + if (active_irq >= INTC_NIRQS) + return (FILTER_HANDLED); + + src = &sc->isrcs[active_irq]; + if (intr_isrc_dispatch(&src->isrc, frame) != 0) { + intc_disable_intr(sc->dev, &src->isrc); + device_printf(sc->dev, "Stray irq %lu disabled\n", + active_irq); + } + + return (FILTER_HANDLED); +} + +static device_method_t intc_methods[] = { + /* Device interface */ + DEVMETHOD(device_identify, intc_identify), + DEVMETHOD(device_probe, intc_probe), + DEVMETHOD(device_attach, intc_attach), + + /* Interrupt controller interface */ + DEVMETHOD(pic_disable_intr, intc_disable_intr), + DEVMETHOD(pic_enable_intr, intc_enable_intr), + DEVMETHOD(pic_map_intr, intc_map_intr), + DEVMETHOD(pic_setup_intr, intc_setup_intr), +#ifdef SMP + DEVMETHOD(pic_init_secondary, intc_init_secondary), +#endif + + DEVMETHOD_END +}; + +DEFINE_CLASS_0(intc, intc_driver, intc_methods, sizeof(struct intc_softc)); +EARLY_DRIVER_MODULE(intc, ofwbus, intc_driver, 0, 0, + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_FIRST); diff --git a/sys/riscv/riscv/intr_machdep.c b/sys/riscv/riscv/intr_machdep.c deleted file mode 100644 index d2a454175059..000000000000 --- a/sys/riscv/riscv/intr_machdep.c +++ /dev/null @@ -1,275 +0,0 @@ -/*- - * Copyright (c) 2015-2017 Ruslan Bukin - * All rights reserved. - * - * Portions of this software were developed by SRI International and the - * University of Cambridge Computer Laboratory under DARPA/AFRL contract - * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. - * - * Portions of this software were developed by the University of Cambridge - * Computer Laboratory as part of the CTSRD Project, with support from the - * UK Higher Education Innovation Fund (HEIF). - * - * 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 -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#ifdef SMP -#include -#endif - -void intr_irq_handler(struct trapframe *tf); - -struct intc_irqsrc { - struct intr_irqsrc isrc; - u_int irq; -}; - -struct intc_irqsrc isrcs[INTC_NIRQS]; - -static void -riscv_mask_irq(void *source) -{ - int irq; - - irq = (int)(uintptr_t)source; - - switch (irq) { - case IRQ_TIMER_SUPERVISOR: - csr_clear(sie, SIE_STIE); - break; - case IRQ_SOFTWARE_USER: - csr_clear(sie, SIE_USIE); - break; - case IRQ_SOFTWARE_SUPERVISOR: - csr_clear(sie, SIE_SSIE); - break; - default: - panic("Unknown irq %d\n", irq); - } -} - -static void -riscv_unmask_irq(void *source) -{ - int irq; - - irq = (int)(uintptr_t)source; - - switch (irq) { - case IRQ_TIMER_SUPERVISOR: - csr_set(sie, SIE_STIE); - break; - case IRQ_SOFTWARE_USER: - csr_set(sie, SIE_USIE); - break; - case IRQ_SOFTWARE_SUPERVISOR: - csr_set(sie, SIE_SSIE); - break; - default: - panic("Unknown irq %d\n", irq); - } -} - -int -riscv_setup_intr(const char *name, driver_filter_t *filt, - void (*handler)(void*), void *arg, int irq, int flags, void **cookiep) -{ - struct intr_irqsrc *isrc; - int error; - - if (irq < 0 || irq >= INTC_NIRQS) - panic("%s: unknown intr %d", __func__, irq); - - isrc = &isrcs[irq].isrc; - if (isrc->isrc_event == NULL) { - error = intr_event_create(&isrc->isrc_event, isrc, 0, irq, - riscv_mask_irq, riscv_unmask_irq, NULL, NULL, "int%d", irq); - if (error) - return (error); - riscv_unmask_irq((void*)(uintptr_t)irq); - } - - error = intr_event_add_handler(isrc->isrc_event, name, - filt, handler, arg, intr_priority(flags), flags, cookiep); - if (error) { - printf("Failed to setup intr: %d\n", irq); - return (error); - } - - return (0); -} - -int -riscv_teardown_intr(void *ih) -{ - - /* TODO */ - - return (0); -} - -void -riscv_cpu_intr(struct trapframe *frame) -{ - struct intr_irqsrc *isrc; - int active_irq; - - KASSERT((frame->tf_scause & SCAUSE_INTR) != 0, - ("riscv_cpu_intr: wrong frame passed")); - - active_irq = frame->tf_scause & SCAUSE_CODE; - - CTR3(KTR_TRAP, "%s: irq=%d, umode=%d", __func__, active_irq, - TRAPF_USERMODE(frame)); - - switch (active_irq) { - case IRQ_SOFTWARE_USER: - case IRQ_SOFTWARE_SUPERVISOR: - case IRQ_TIMER_SUPERVISOR: - critical_enter(); - isrc = &isrcs[active_irq].isrc; - if (intr_isrc_dispatch(isrc, frame) != 0) - printf("stray interrupt %d\n", active_irq); - critical_exit(); - break; - case IRQ_EXTERNAL_SUPERVISOR: - intr_irq_handler(frame); - break; - } -} - -#ifdef SMP -void -riscv_setup_ipihandler(driver_filter_t *filt) -{ - - riscv_setup_intr("ipi", filt, NULL, NULL, IRQ_SOFTWARE_SUPERVISOR, - INTR_TYPE_MISC, NULL); -} - -void -riscv_unmask_ipi(void) -{ - - csr_set(sie, SIE_SSIE); -} - -/* Sending IPI */ -static void -ipi_send(struct pcpu *pc, int ipi) -{ - u_long mask; - - CTR3(KTR_SMP, "%s: cpu: %d, ipi: %x", __func__, pc->pc_cpuid, ipi); - - atomic_set_32(&pc->pc_pending_ipis, ipi); - mask = (1 << pc->pc_hart); - - sbi_send_ipi(&mask); - - CTR1(KTR_SMP, "%s: sent", __func__); -} - -void -ipi_all_but_self(u_int ipi) -{ - cpuset_t other_cpus; - - other_cpus = all_cpus; - CPU_CLR(PCPU_GET(cpuid), &other_cpus); - - CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); - ipi_selected(other_cpus, ipi); -} - -void -ipi_cpu(int cpu, u_int ipi) -{ - cpuset_t cpus; - - CPU_ZERO(&cpus); - CPU_SET(cpu, &cpus); - - ipi_send(cpuid_to_pcpu[cpu], ipi); -} - -void -ipi_selected(cpuset_t cpus, u_int ipi) -{ - struct pcpu *pc; - u_long mask; - - CTR1(KTR_SMP, "ipi_selected: ipi: %x", ipi); - - mask = 0; - STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) { - if (CPU_ISSET(pc->pc_cpuid, &cpus)) { - CTR3(KTR_SMP, "%s: pc: %p, ipi: %x\n", __func__, pc, - ipi); - atomic_set_32(&pc->pc_pending_ipis, ipi); - mask |= (1 << pc->pc_hart); - } - } - sbi_send_ipi(&mask); -} -#endif - -/* Interrupt machdep initialization routine. */ -static void -intc_init(void *dummy __unused) -{ - int error; - int i; - - for (i = 0; i < INTC_NIRQS; i++) { - isrcs[i].irq = i; - error = intr_isrc_register(&isrcs[i].isrc, NULL, - 0, "intc,%u", i); - if (error != 0) - printf("Can't register interrupt %d\n", i); - } -} - -SYSINIT(intc_init, SI_SUB_INTR, SI_ORDER_MIDDLE, intc_init, NULL); diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index 95fe59519bba..2d68675f21aa 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -84,7 +84,11 @@ static device_identify_t riscv64_cpu_identify; static device_probe_t riscv64_cpu_probe; static device_attach_t riscv64_cpu_attach; -static int ipi_handler(void *); +static void ipi_ast(void *); +static void ipi_hardclock(void *); +static void ipi_preempt(void *); +static void ipi_rendezvous(void *); +static void ipi_stop(void *); extern uint32_t boot_hart; extern cpuset_t all_harts; @@ -192,8 +196,13 @@ release_aps(void *dummy __unused) if (mp_ncpus == 1) return; - /* Setup the IPI handler */ - riscv_setup_ipihandler(ipi_handler); + /* Setup the IPI handlers */ + intr_ipi_setup(IPI_AST, "ast", ipi_ast, NULL); + intr_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL); + intr_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL); + intr_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL); + intr_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL); + intr_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL); atomic_store_rel_int(&aps_ready, 1); @@ -245,17 +254,14 @@ init_secondary(uint64_t hart) pcpup->pc_curthread = pcpup->pc_idlethread; schedinit_ap(); - /* Enable software interrupts */ - riscv_unmask_ipi(); + /* Setup and enable interrupts */ + intr_pic_init_secondary(); #ifndef EARLY_AP_STARTUP /* Start per-CPU event timers. */ cpu_initclocks_ap(); #endif - /* Enable external (PLIC) interrupts */ - csr_set(sie, SIE_SEIE); - /* Activate this hart in the kernel pmap. */ CPU_SET_ATOMIC(hart, &kernel_pmap->pm_active); @@ -309,74 +315,59 @@ smp_after_idle_runnable(void *arg __unused) SYSINIT(smp_after_idle_runnable, SI_SUB_SMP, SI_ORDER_ANY, smp_after_idle_runnable, NULL); -static int -ipi_handler(void *arg) +static void +ipi_ast(void *dummy __unused) +{ + CTR0(KTR_SMP, "IPI_AST"); +} + +static void +ipi_preempt(void *dummy __unused) +{ + CTR1(KTR_SMP, "%s: IPI_PREEMPT", __func__); + sched_preempt(curthread); +} + +static void +ipi_rendezvous(void *dummy __unused) { - u_int ipi_bitmap; - u_int cpu, ipi; - int bit; + CTR0(KTR_SMP, "IPI_RENDEZVOUS"); + smp_rendezvous_action(); +} + +static void +ipi_stop(void *dummy __unused) +{ + u_int cpu; - csr_clear(sip, SIP_SSIP); + CTR0(KTR_SMP, "IPI_STOP"); cpu = PCPU_GET(cpuid); + savectx(&stoppcbs[cpu]); - mb(); - - ipi_bitmap = atomic_readandclear_int(PCPU_PTR(pending_ipis)); - if (ipi_bitmap == 0) - return (FILTER_HANDLED); - - while ((bit = ffs(ipi_bitmap))) { - bit = (bit - 1); - ipi = (1 << bit); - ipi_bitmap &= ~ipi; - - mb(); - - switch (ipi) { - case IPI_AST: - CTR0(KTR_SMP, "IPI_AST"); - break; - case IPI_PREEMPT: - CTR1(KTR_SMP, "%s: IPI_PREEMPT", __func__); - sched_preempt(curthread); - break; - case IPI_RENDEZVOUS: - CTR0(KTR_SMP, "IPI_RENDEZVOUS"); - smp_rendezvous_action(); - break; - case IPI_STOP: - case IPI_STOP_HARD: - CTR0(KTR_SMP, (ipi == IPI_STOP) ? "IPI_STOP" : "IPI_STOP_HARD"); - savectx(&stoppcbs[cpu]); - - /* Indicate we are stopped */ - CPU_SET_ATOMIC(cpu, &stopped_cpus); - - /* Wait for restart */ - while (!CPU_ISSET(cpu, &started_cpus)) - cpu_spinwait(); - - CPU_CLR_ATOMIC(cpu, &started_cpus); - CPU_CLR_ATOMIC(cpu, &stopped_cpus); - CTR0(KTR_SMP, "IPI_STOP (restart)"); - - /* - * The kernel debugger might have set a breakpoint, - * so flush the instruction cache. - */ - fence_i(); - break; - case IPI_HARDCLOCK: - CTR1(KTR_SMP, "%s: IPI_HARDCLOCK", __func__); - hardclockintr(); - break; - default: - panic("Unknown IPI %#0x on cpu %d", ipi, curcpu); - } - } + /* Indicate we are stopped */ + CPU_SET_ATOMIC(cpu, &stopped_cpus); + + /* Wait for restart */ + while (!CPU_ISSET(cpu, &started_cpus)) + cpu_spinwait(); - return (FILTER_HANDLED); + CPU_CLR_ATOMIC(cpu, &started_cpus); + CPU_CLR_ATOMIC(cpu, &stopped_cpus); + CTR0(KTR_SMP, "IPI_STOP (restart)"); + + /* + * The kernel debugger might have set a breakpoint, + * so flush the instruction cache. + */ + fence_i(); +} + +static void +ipi_hardclock(void *dummy __unused) +{ + CTR1(KTR_SMP, "%s: IPI_HARDCLOCK", __func__); + hardclockintr(); } struct cpu_group * @@ -575,3 +566,34 @@ cpu_mp_setmaxid(void) } } } + +void +ipi_all_but_self(u_int ipi) +{ + cpuset_t other_cpus; + + other_cpus = all_cpus; + CPU_CLR(PCPU_GET(cpuid), &other_cpus); + + CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); + intr_ipi_send(other_cpus, ipi); +} + +void +ipi_cpu(int cpu, u_int ipi) +{ + cpuset_t cpus; + + CPU_ZERO(&cpus); + CPU_SET(cpu, &cpus); + + CTR3(KTR_SMP, "%s: cpu: %d, ipi: %x", __func__, cpu, ipi); + intr_ipi_send(cpus, ipi); +} + +void +ipi_selected(cpuset_t cpus, u_int ipi) +{ + CTR1(KTR_SMP, "ipi_selected: ipi: %x", ipi); + intr_ipi_send(cpus, ipi); +} diff --git a/sys/riscv/riscv/plic.c b/sys/riscv/riscv/plic.c index c7d9249b2231..a73419930e88 100644 --- a/sys/riscv/riscv/plic.c +++ b/sys/riscv/riscv/plic.c @@ -92,16 +92,18 @@ struct plic_context { struct plic_softc { device_t dev; - struct resource * intc_res; + struct resource *mem_res; + struct resource *irq_res; + void *ih; struct plic_irqsrc isrcs[PLIC_MAX_IRQS]; struct plic_context contexts[MAXCPU]; int ndev; }; #define RD4(sc, reg) \ - bus_read_4(sc->intc_res, (reg)) + bus_read_4(sc->mem_res, (reg)) #define WR4(sc, reg, val) \ - bus_write_4(sc->intc_res, (reg), (val)) + bus_write_4(sc->mem_res, (reg), (val)) static u_int plic_irq_cpu; @@ -277,9 +279,9 @@ plic_attach(device_t dev) /* Request memory resources */ rid = 0; - sc->intc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + sc->mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (sc->intc_res == NULL) { + if (sc->mem_res == NULL) { device_printf(dev, "Error: could not allocate memory resources\n"); *** 506 LINES SKIPPED *** From nobody Sat Sep 7 01:47:58 2024 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 4X0wwG5Rvhz5WSdK; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwG31sPz4k21; Sat, 7 Sep 2024 01:47:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vhj0bfgoFeq88GTrGWKRJZWKEzIkBEGjO8WaDZdhjr8=; b=un/twUGZy7DhJpenPQ52TppT9HbPaoQqMC+Tinvd7rriBiyV3h3lS6xJ6+ThF9jTrCC4Vm o+RxLZvZws/XecV657njKm/GMQKOKLkB1SBzeAGkkmzQWYDSAZ0kxdVRYjrmCH8NYNkSCE awWyuRdziUnlnuGocACTdm9pgRTC/a4POZ9Ei6nQrz3siK3Ls0kKKx1gmvoQOlFENzCQ15 ZQrpTDdQCoDTFuI57re7pPA61u65eVNBnM0h5JNbqz/fpLN3QfRBEPemk4TiL20RQ63GjU MejLbo21sbd8kxN+mxwHQLVsSSm52+r3ZBnNV2cwYSrJ9+n5gfC0BTFOuvnBUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673678; a=rsa-sha256; cv=none; b=YMhN3INDEGT2jit5VcnWTSCwbX+B6Vnn+HyxYSYX66DDb63UGLrotZ/xtbR8oSsMftzSWF khbJcQaL7N8/DKEFhLnxuHp0oT3AeOnVyN5OGIGCZnObNkS/wA7X+RxvvJ7BqTAqWZ3/gS RucB8SMZgW1lBklJ3jzhwvJ+Rw9TG4dCjifkur4vbttHySeYPSIiYIbaqlRdqyOJtvzTs1 A9EqLTZI2ZI+zoDfdfn3ebbLgBEG1Yxy9Em1Gh9ENAU1VwZuYohP/EdNE3cu/ex++iwnD2 8fIRtNMgs09QrJLG7TZu2ilR77/N1PgJka0ZI+zgSRd2H4QFpUEM/m4GvnGoXA== 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=1725673678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vhj0bfgoFeq88GTrGWKRJZWKEzIkBEGjO8WaDZdhjr8=; b=vsdYSaF5LipmKgXAK+Z+OFR4peADvd7Xk11emnDcvMkxenb8KJ7o3cAaIcF6iUk9W/kBqz Ep7T6UwW6Ryyock+kZ9cKEshsaRzjzfBY1Nu8QeSRhArf9OOQqYuSPm1tsOjPZmrL1XwCI r/43vwm4YkdMJ9k5cWfluimV4smOt/EUPpo6Un6Heq8bjSmlYTUFsDHP5h/a5lRE5RVwVe 4L7mEmZbBhjn3LwuDk9E7SkmhAmD41kTbOXxmpC4+FbaRUCsr8HvuaKccjZ/acuyzimGeQ Spdxa+MtGQQklLkqlo7CsQ70L32VYBe0PIrk4sJMrv7xrguhXEYWer8Ik7lQAg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwG2dRszGM7; Sat, 7 Sep 2024 01:47:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lwNJ041634; Sat, 7 Sep 2024 01:47:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lw8V041631; Sat, 7 Sep 2024 01:47:58 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:58 GMT Message-Id: <202409070147.4871lw8V041631@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 9f224d3ec46e - stable/14 - riscv: Remove the unused riscv64_cpu driver 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9f224d3ec46ef822165df35990f96c6e7c6b67c8 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=9f224d3ec46ef822165df35990f96c6e7c6b67c8 commit 9f224d3ec46ef822165df35990f96c6e7c6b67c8 Author: Jessica Clarke AuthorDate: 2024-01-30 20:33:30 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:00:40 +0000 riscv: Remove the unused riscv64_cpu driver This is a repeat of 63bf2d735ca3 ("Remove the unused arm64_cpu driver.") for RISC-V, which copied the defunct code from arm64 with no changes beyond substituting riscv64 for arm64, and made no use of it elsewhere. It has thus always been entirely superfluous. Reviewed by: mhorne MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D43672 (cherry picked from commit 722b40377198e384a808f9561ae7262767068ab2) --- sys/riscv/riscv/mp_machdep.c | 76 -------------------------------------------- 1 file changed, 76 deletions(-) diff --git a/sys/riscv/riscv/mp_machdep.c b/sys/riscv/riscv/mp_machdep.c index 2d68675f21aa..641288e0b235 100644 --- a/sys/riscv/riscv/mp_machdep.c +++ b/sys/riscv/riscv/mp_machdep.c @@ -80,10 +80,6 @@ static enum { #endif } cpu_enum_method; -static device_identify_t riscv64_cpu_identify; -static device_probe_t riscv64_cpu_probe; -static device_attach_t riscv64_cpu_attach; - static void ipi_ast(void *); static void ipi_hardclock(void *); static void ipi_preempt(void *); @@ -96,7 +92,6 @@ extern cpuset_t all_harts; #ifdef INVARIANTS static uint32_t cpu_reg[MAXCPU][2]; #endif -static device_t cpu_list[MAXCPU]; void mpentry(u_long hartid); void init_secondary(uint64_t); @@ -116,77 +111,6 @@ static volatile int aps_ready; /* Temporary variables for init_secondary() */ void *dpcpu[MAXCPU - 1]; -static device_method_t riscv64_cpu_methods[] = { - /* Device interface */ - DEVMETHOD(device_identify, riscv64_cpu_identify), - DEVMETHOD(device_probe, riscv64_cpu_probe), - DEVMETHOD(device_attach, riscv64_cpu_attach), - - DEVMETHOD_END -}; - -static driver_t riscv64_cpu_driver = { - "riscv64_cpu", - riscv64_cpu_methods, - 0 -}; - -DRIVER_MODULE(riscv64_cpu, cpu, riscv64_cpu_driver, 0, 0); - -static void -riscv64_cpu_identify(driver_t *driver, device_t parent) -{ - - if (device_find_child(parent, "riscv64_cpu", -1) != NULL) - return; - if (BUS_ADD_CHILD(parent, 0, "riscv64_cpu", -1) == NULL) - device_printf(parent, "add child failed\n"); -} - -static int -riscv64_cpu_probe(device_t dev) -{ - u_int cpuid; - - cpuid = device_get_unit(dev); - if (cpuid >= MAXCPU || cpuid > mp_maxid) - return (EINVAL); - - device_quiet(dev); - return (0); -} - -static int -riscv64_cpu_attach(device_t dev) -{ - const uint32_t *reg; - size_t reg_size; - u_int cpuid; - int i; - - cpuid = device_get_unit(dev); - - if (cpuid >= MAXCPU || cpuid > mp_maxid) - return (EINVAL); - KASSERT(cpu_list[cpuid] == NULL, ("Already have cpu %u", cpuid)); - - reg = cpu_get_cpuid(dev, ®_size); - if (reg == NULL) - return (EINVAL); - - if (bootverbose) { - device_printf(dev, "register <"); - for (i = 0; i < reg_size; i++) - printf("%s%x", (i == 0) ? "" : " ", reg[i]); - printf(">\n"); - } - - /* Set the device to start it later */ - cpu_list[cpuid] = dev; - - return (0); -} - static void release_aps(void *dummy __unused) { From nobody Sat Sep 7 01:47:59 2024 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 4X0wwH5KTKz5WSTT; Sat, 07 Sep 2024 01:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwH3bxyz4k94; Sat, 7 Sep 2024 01:47:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wy1BgNx+sLOT8gTC2NcTkskje+v/for/z5oKA9nSEIg=; b=o7zOjpverSwOpQU+LAsd7y99Irnz+JTCyZpgIja2+4xCerMapPf58hhmrz1+SBlj5HJM4l n8fmzrADRb0eXXrHd/jx60peKs9V5SY8bB4IhBqJF7j8Dy6BzI75bFLpET2HynG+NDLquj Ue+kgtqJ0FqFcT9YeazD9H3knWl3ZvIuBK6mx7UlMv9+p+ortmo2iytZXsGw5tnrrZf4q4 OuXzsRoZJHInfGQr0Z0BthtfkO6mRr5AbDHNDAdGKothfXawqlV2STM7Vgul1yIqMfdvBd MgXi2LoyDPWFYpzN/fITtmcXlQpTvlVZeQOKaSLX3wRfjOp8uVtIUr15gpt8Kw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673679; a=rsa-sha256; cv=none; b=iPUv3EEGAkLnZIb7OCyjtjl/0bMI1ogmgOWUkhrHq8mvYbSVQ7QCujJ3BpFso4/FpwtVqj 3mO378brReRs0kwcludqMdJ2Nd5kFtBvym4XZUVUrX9VD+pa9DvHr/ZG0pGfMVArS27EUx OfL8F/UAFlPkeQn5q6r6w7kbi6iMSvTBbDh9aiz7yOIhYdzzjqquW45MVFH//Z9PYenfhE b0gH2rny5Jc+fn9d5o+Gv9GqVvKTQxetlAR2pDRgm7W+P/wqsVfJTuoD7e6GekKM9WEy2s xiwKEKce6r47fV7cRchrzQb1VNef9afjikT7FRId5uuGA7rmnYnt0Bc9kegQ5A== 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=1725673679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wy1BgNx+sLOT8gTC2NcTkskje+v/for/z5oKA9nSEIg=; b=MMGJQZ+kFtCpkDcPp87D7uhXYTONyBaVtcB3K82rZwid6u7w5mcMv4DakvZEX+XYJBu2Qf tZyltmlKr1NCLCNiOJ48KyKN0/RexyaEZ6sACIqEXQ1SriCq7mGoATfbq7gm6JeG54EdUD Mb0+B+BxiobRRE0BQN84sCcapzYM4IWhaI2YBuTaj76dOpx12jRXYgkHfZzX8CmnYzcLew HAOt2wpKYIGUc2VmPiLIQkG74F74ALzZe5V69cJjIv9oQRdtV69OoN/wnB5dOx+QLV/GuZ 7pFS4lZYHCaS6Nbui3qfB6QAl4F36iItF1GQIuE89rfI5pCGQtlGiPVocXM1Sw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwH3D4wzG32; Sat, 7 Sep 2024 01:47:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871lxiq041689; Sat, 7 Sep 2024 01:47:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871lxuF041686; Sat, 7 Sep 2024 01:47:59 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:47:59 GMT Message-Id: <202409070147.4871lxuF041686@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: aaf4d3f3d194 - stable/14 - bsdinstall: Fix netconfig script when no interfaces are present 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: aaf4d3f3d1947531cc81f90ea5af522c719857ff Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=aaf4d3f3d1947531cc81f90ea5af522c719857ff commit aaf4d3f3d1947531cc81f90ea5af522c719857ff Author: Jessica Clarke AuthorDate: 2024-02-03 01:52:37 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:00:46 +0000 bsdinstall: Fix netconfig script when no interfaces are present The script uses [ -z "$INTERFACES" ] to check if the list of interfaces is empty and will exit early if so, but INTERFACES always contains at least a space due to the way it appends the list of wireless devices. Fix this by only adding the space when there are devices to append, mirroring the behaviour for non-wireless devices above (both will result in a redundant leading space when the list is non-empty, but that one is harmless). Fixes: 159ca5c844cd ("Adapt to new wireless scheme where base wlan interfaces do not show up in ifconfig anymore.") MFC after: 1 week (cherry picked from commit b809c7d6a26924ac351e49a15011da718cc3feec) --- usr.sbin/bsdinstall/scripts/netconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bsdinstall/scripts/netconfig b/usr.sbin/bsdinstall/scripts/netconfig index bdbbd42b3328..300dcc6f5e5e 100755 --- a/usr.sbin/bsdinstall/scripts/netconfig +++ b/usr.sbin/bsdinstall/scripts/netconfig @@ -49,7 +49,8 @@ for IF in `ifconfig -l`; do INTERFACES="$INTERFACES $IF" done -INTERFACES="$INTERFACES $(sysctl -in net.wlan.devices)" +WIRELESS_INTERFACES="$(sysctl -in net.wlan.devices)" +INTERFACES="$INTERFACES${WIRELESS_INTERFACES:+ }$WIRELESS_INTERFACES" is_wireless_if() { for IF in $(sysctl -in net.wlan.devices); do if [ $IF = $1 ]; then From nobody Sat Sep 7 01:48:00 2024 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 4X0wwK0vMkz5WSLV; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwJ4wRPz4jxJ; Sat, 7 Sep 2024 01:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9tWVrCCdej88Jl2I1AsZG1HQnNlSmQzsE/8BuuZTmPI=; b=Iv7q44ka+In22s2qHv4OEZqOsiugTETcc31F3FQkQ3Bos+z0EGwkq2dfMvIFXdLLhgjFWu 5gTD+JueTRBIVywiCp1BYqQgeSUnzdsFUcuibOvwawJ5hzHCR4UYsadRjIGd8WMqukA5Be 3Gz+8W3SVJLbCwxonfMxcHMg9hXUecjy4qlFfD/NLBcEpySGwaYJXD6fUT2cAPJLvQcFVw x370G5+UG4mF5N/1AD21B9zeqix+ydcOuTnsuCYRgJC1ZBVxF4vh2JGyhxcBLsm6cKxHcG eSEbgM4HGnCzfvin8E01SqG2DZsrw0uBvIyzZr++Fc9kzLQV9tNfJk0tOi6+Hg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673680; a=rsa-sha256; cv=none; b=ug95HGdD6E90WeRZ9oVL8lYHI6CnMKk7fBhmtCq1W2kjNvzIJ3a53ex+zBKtMBcQQsnxB5 Vrn/+rYCUjSxINLXpmiT5mSkuQQZAlKUHITn1eGR+FWgq+U8p+H2oKNYueXGejPZLLR501 APGFEBUIDsJwUtx7NXE7EOA0laJTGw6zNZrj1MHRg01e5CuzmmshAjvZwLaJSnuHBiop88 EEfWIFfIXWsqm3g1jLascfqjOGHXg0zlR/hH6F0U6i43n2Suoj7yCWz7I9AIJHDgrIJ6hb nznBsabN8Ic2/jBWSxIYx/z0VM4nYV0+G61zyJKTACovmog3vjXtHXzUgkIaiw== 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=1725673680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9tWVrCCdej88Jl2I1AsZG1HQnNlSmQzsE/8BuuZTmPI=; b=UEDj7SQ7YL64VmrOgf7TdXjFFNUQ26cWS9XdTmJEIs/vTqg+pnScOKCTDS8iGhYYG1Z+Yi sX/srEWli31J40wrnORgnBeJ9h4XeTdp3JtdXVclyCqHNcCC5bAYo2A7Y94uKHC8cJj/Qj 4FmZKcneqafX+8VDHMRLV5GCcKDD03bHlNRVMIuAT6QpPOvy+KCZN3tIFkKt+48q8ydsvt rsCVUv4s8ey29oZng6N9BawcC+AeOEs/yjGRmRjyABkfLx9mZ2OnF29J6vZ8qGEWnHjNvN SdWx2C2YKbzeVDSA5PhYd5TiAhjELTCnDptY6phOWEHJd2w/ACk/8rJkhQn2bQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwJ4VcdzGM8; Sat, 7 Sep 2024 01:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m0Ee041758; Sat, 7 Sep 2024 01:48:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m0xb041755; Sat, 7 Sep 2024 01:48:00 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:00 GMT Message-Id: <202409070148.4871m0xb041755@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 6368aa66f8a7 - stable/14 - bsdinstall: Drop Error from title in netconfig no interfaces dialog 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6368aa66f8a7c5f1ac322575e4ce4ee4d196b4d8 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=6368aa66f8a7c5f1ac322575e4ce4ee4d196b4d8 commit 6368aa66f8a7c5f1ac322575e4ce4ee4d196b4d8 Author: Jessica Clarke AuthorDate: 2024-02-03 01:52:53 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:00:51 +0000 bsdinstall: Drop Error from title in netconfig no interfaces dialog This isn't inherently an error. It is if you're attempting to download dist tarballs or later install packages, but a FreeBSD system with no NIC is a reasonable setup to have, especially in a throwaway VM setting, so we shouldn't say it is one. Leaving the exit code as 1 is still fine, since auto will ignore it, and avoids breaking other uses. MFC after: 1 week (cherry picked from commit 7414d14bd51d8378057bbe952c2715b9f32d1d3e) --- usr.sbin/bsdinstall/scripts/netconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bsdinstall/scripts/netconfig b/usr.sbin/bsdinstall/scripts/netconfig index 300dcc6f5e5e..19644898a66a 100755 --- a/usr.sbin/bsdinstall/scripts/netconfig +++ b/usr.sbin/bsdinstall/scripts/netconfig @@ -67,7 +67,7 @@ done if [ -z "$INTERFACES" ]; then bsddialog --backtitle "$OSNAME Installer" \ - --title 'Network Configuration Error' \ + --title 'Network Configuration' \ --msgbox 'No network interfaces present to configure.' 0 0 exit 1 fi From nobody Sat Sep 7 01:48:01 2024 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 4X0wwL0DK0z5WSLY; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwK6Bvtz4k9X; Sat, 7 Sep 2024 01:48:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1rX/6T0sUsw4OzHOBRRpi63HW4vMM4jG8fQQCKWathw=; b=Z8w0xHtmgHHLbVFPVkADwtHzC1B4I/jlpI7aNVrMPV7jOGErRXNAJlu+LQV8dFHFMwI4j1 KWpQ7KqQ3b7kNB80xauur31LVSO2SXNVr7NJQzZZuywzbYRibcr/i/lh3hr/agB0xl4D25 vpiXXRntspOkiKBrSVxzM8Hr+sPNJy3XnFrzAYmT53ePE4xrq6Jl+E0q1i5N6og906+JDH Wg2LGOgI9IuYOXiO23BYNTsBXClJe5CIdeffsrNk0Js1wLVh7gk2/3LqcjEJOeQ0s5S9QX fZDxZfxnFiFUeoPiHzgZtKmvM5gdYowrJyhnT6bmzdoygtrvJ+bIVaxFzfwjOg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673681; a=rsa-sha256; cv=none; b=dgE2c9g68PKRRevUrxC+/cWB1wBH38ft9dsHbjtnG9CHtP27AS2fuohkj/wirR7Uv/69aj dHwofJ2wthNzX3gixbsu7Jf8a06rDtkWk7Kn5zRlUpgmxjIS4krPhNU6hfy9dHXp/qPRII 5NGGpGwHZ84LjXj1ugV1/GnsuR6f03WA9CI2NlqAFh7lAa0VYokl/voFttQ7iHYmBkdSFc 2QZO4cVw4vMh2y2TbQJO/onEju86F80yan4hzEgHI6iTqg0fjh0vUbu3N35qOcCJ5IfyWw G0/YwwxjKNpaESEv9pQsJurDHRuoh0wS6H4MJiyHDTxx1Ecytl3RddZaGT3K4A== 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=1725673681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1rX/6T0sUsw4OzHOBRRpi63HW4vMM4jG8fQQCKWathw=; b=rK0+SvSxE37TLL5CIVu2bc23hLX21qz5b7tqL4i25VIJKKMqx3TYynEglogD+5TKsmrhd6 524Sr1EjZBdMtOcJvk1iYpjV3WbJJ79Jq4pzmKQZQYOplLE/u106/vkRa7VBodv9aVUkC2 CauTztnL5pTzdgAhgvXjqNs0PkAw0mk5F1jNgWaXg7Ky6JVJhhNKnnl37NJPV5WLuIyPeg MlJLbivULlMhEE9G4WXeAyD/vrTLI/ELc6yswkF7VvDUnIaVj7qDPrUOdxWullzbQb/ZOh 0PzvnoS61jg1509MtZW9Zd4ZJGgOg34/1lMWvpVt+Rsm6cm+UVx7TmBj2j2aQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwK5X9nzG33; Sat, 7 Sep 2024 01:48:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m1sM041821; Sat, 7 Sep 2024 01:48:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m1BF041818; Sat, 7 Sep 2024 01:48:01 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:01 GMT Message-Id: <202409070148.4871m1BF041818@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: d861861462d2 - stable/14 - arm: Set NEW_PCIB in DEFAULTS rather than a subset of kernel configs 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d861861462d2b9157a6b938c2b4832d6589264a0 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=d861861462d2b9157a6b938c2b4832d6589264a0 commit d861861462d2b9157a6b938c2b4832d6589264a0 Author: Jessica Clarke AuthorDate: 2024-02-22 18:27:45 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:00:56 +0000 arm: Set NEW_PCIB in DEFAULTS rather than a subset of kernel configs All other architectures set NEW_PCIB in DEFAULTS, with arm being the one remaining straggler that only sets it for GENERIC and TEGRA124. ARMADA38X and ARMADAXP contain device pci but don't set NEW_PCIB, however GENERIC claims to support them and as part of that NEW_PCIB support was added to mv_pci, so these configs are most likely just stale. Other than NOTES that just leaves ALPINE as the one kernel with PCI support not covered by GENERIC, but al_pci is supported by arm64 which enables NEW_PCIB, and it's just a generic_pcie_fdt_driver with some fixup code to deal with quirks so should support PCI_RES_BUS just fine. Therefore it is believed that all in-tree kernel configs support NEW_PCIB in reality, and so let's take a step towards removing all the non-NEW_PCIB code by having it always-on everywhere. Reviewed by: emaste, jhb, manu MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D43806 (cherry picked from commit 121be555997b3d7727e50d15acabd0ffbf4a4247) --- sys/arm/conf/DEFAULTS | 2 ++ sys/arm/conf/GENERIC | 1 - sys/arm/conf/TEGRA124 | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm/conf/DEFAULTS b/sys/arm/conf/DEFAULTS index d28e7b6302f9..85d090dfa782 100644 --- a/sys/arm/conf/DEFAULTS +++ b/sys/arm/conf/DEFAULTS @@ -6,4 +6,6 @@ device mem # Default congestion control algorithm options CC_CUBIC # include CUBIC congestion control + +options NEW_PCIB options INTRNG # All arm systems use INTRNG these days diff --git a/sys/arm/conf/GENERIC b/sys/arm/conf/GENERIC index 05bbf6526b34..baaba0880705 100644 --- a/sys/arm/conf/GENERIC +++ b/sys/arm/conf/GENERIC @@ -98,7 +98,6 @@ device ahci # AHCI-compatible SATA controllers #device ata # Legacy ATA/SATA controllers # PCI -options NEW_PCIB device pci device pci_host_generic diff --git a/sys/arm/conf/TEGRA124 b/sys/arm/conf/TEGRA124 index b1c5be8af587..058a85955a04 100644 --- a/sys/arm/conf/TEGRA124 +++ b/sys/arm/conf/TEGRA124 @@ -112,7 +112,6 @@ device ums # USB mouse #device wlan_amrr # AMRR transmit rate control algorithm # PCI -options NEW_PCIB device pci # PCI Ethernet NICs that use the common MII bus controller code. From nobody Sat Sep 7 01:48:02 2024 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 4X0wwM26nZz5WSZs; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwL6vmcz4k3K; Sat, 7 Sep 2024 01:48:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8mIVFlTY/Aub38UsF2dckIiBth5boDuv/05x1gbl8og=; b=PcbupAI4X3xAYgNKrzIJOOovydg6C3ma4m7PbviunueZJm6uFpxqxajh4F66j386QDJZJD 5G/tnJsbEx3a8Zz7h8gW1bSm+Iypa5U954tDhaD6ZScFPcAzcx/E513lpm5P9bxaDDST+d tPmXu3lCrK8c1KqFV7B5NjnxM/ACYiJCPqgoGa6B7pOg7y8silXYJ+eWRA+fuXYfxRn+8y OGMFWmzejAGG4A0zX24JT9oHv/CTkByKS2t0TTMBATMKTfn/kFymD2Kq4YOeULDyea/APC nc/GJ2fknaDqozb1mR8+y/405lCdnzFatlBpb6tqRO/OCtY0jx6+h+/Asi9vHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673683; a=rsa-sha256; cv=none; b=mPabs59gNZtCpiRdEOE+DmN8Ov82XBf9BQ9pIMbyHlqEa839aoia4C85wM3Gz3UUsWvnqH Ju3Tumy/66SP7WJo3rdG0UzBFvqqHIUusqkKLPFiq45HwkiKdTGLF5t0Clhae6VjM7sCgH jKi9V8NZ+RVHjlcBkEfllSEd/okWgdBg24s4RAO8ayvh558mHSBr/gp4kImHRJ9jzr2KC4 0DgpeiMqwXukWoAbylUWiTwaHhnp1xYrTsHi7odL1TZJFcP+qGSIRsFKESdmYioo1Phmjb HGv/WhtpUW9QUG6/XrDAFW0f1sXduYbuHAhuOxO73D7hKgeu0DD4ZDKSWVCsrA== 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=1725673683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8mIVFlTY/Aub38UsF2dckIiBth5boDuv/05x1gbl8og=; b=Ja5NZpSD1NSjk3qO5SklxtR/AxdPF1uA2Zh2JSkUKTodaG7OFTAqN6yPeIoIJVnDeYBYEo 8DwkdbwIzSAnV4519jI9uVK/jRar92XXSPpNjQ0cINd7NDlFlb/cGnXXxC9usMzbfaiAMJ t4X3HQSG0OOI3fY/P7rrW8OUes3K5O4ldPaITguUOOHbBbK/hiSxwkMWFXXqk0bu7K7TAo YfdBCmztwAQV4h7bcGnLyqDw+COsWX3VigAUbXl2dH5Yd+fH+P/2pEAjpTeon+FUvHFuzI 7I8g+DsHPdFM9MqMcrxj5QUiF2ZtBsn0xQDy9zLu8DouX5eSgKuUS/Fwb8dm8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwL6SMDzGPc; Sat, 7 Sep 2024 01:48:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m2XA041875; Sat, 7 Sep 2024 01:48:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m29O041872; Sat, 7 Sep 2024 01:48:02 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:02 GMT Message-Id: <202409070148.4871m29O041872@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 17c0e73b1d60 - stable/14 - efibootmgr: Simplify make_next_boot_var_name and fix cnt == 0 case 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 17c0e73b1d60c4544fad4667c8d45d588fe664cf Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=17c0e73b1d60c4544fad4667c8d45d588fe664cf commit 17c0e73b1d60c4544fad4667c8d45d588fe664cf Author: Jessica Clarke AuthorDate: 2024-02-23 02:36:21 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:01:01 +0000 efibootmgr: Simplify make_next_boot_var_name and fix cnt == 0 case If cnt == 0 we access element 0 unconditionally, which is out of bounds, and then if that doesn't crash and happens to be 0 we will access element - 1, also out of bounds, and then if that doesn't crash will add 1 to whatever junk is there and use that for the variable. On CHERI, though, this does crash. This code is also overly complicated, with unnecessary special cases and tracking more state than needed. Rewrite it in a more general manner that doesn't need those special cases and naturally works for cnt == 0. Found by: CHERI Reviewed by: imp Fixes: 1285bcc833a3 ("Import Netflix's efibootmgr to help manage UEFI boot variables") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D44029 (cherry picked from commit 09cb8031b43c8e98abb5ff9b43ff649031d1e808) --- usr.sbin/efibootmgr/efibootmgr.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/usr.sbin/efibootmgr/efibootmgr.c b/usr.sbin/efibootmgr/efibootmgr.c index dfe8bfb1c145..74b59863d6c5 100644 --- a/usr.sbin/efibootmgr/efibootmgr.c +++ b/usr.sbin/efibootmgr/efibootmgr.c @@ -555,7 +555,7 @@ static char * make_next_boot_var_name(void) { struct entry *v; - uint16_t *vals, next_free = 0; + uint16_t *vals; char *name; int cnt = 0; int i; @@ -573,21 +573,14 @@ make_next_boot_var_name(void) vals[i++] = v->idx; } qsort(vals, cnt, sizeof(uint16_t), compare); - /* if the hole is at the beginning, just return zero */ - if (vals[0] > 0) { - next_free = 0; - } else { - /* now just run the list looking for the first hole */ - for (i = 0; i < cnt - 1 && next_free == 0; i++) - if (vals[i] + 1 != vals[i + 1]) - next_free = vals[i] + 1; - if (next_free == 0) - next_free = vals[cnt - 1] + 1; - /* In theory we could have used all 65k slots -- what to do? */ - } + /* Find the first hole (could be at start or end) */ + for (i = 0; i < cnt; ++i) + if (vals[i] != i) + break; free(vals); + /* In theory we could have used all 65k slots -- what to do? */ - asprintf(&name, "%s%04X", "Boot", next_free); + asprintf(&name, "%s%04X", "Boot", i); if (name == NULL) err(1, "asprintf"); return name; From nobody Sat Sep 7 01:48:03 2024 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 4X0wwN354kz5WSRL; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwN27wFz4kLt; Sat, 7 Sep 2024 01:48:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zYLBVCaf8xIDoOMpr2lNMvWzZQvfmpJ+hEDeKDWQLzY=; b=bxKfG3bbap6b5F38+oK7MjGIYDlIFXcwwrMZOJEhdSGX+0RZ1hdKc7r3avwGpUGgG/SASy JyRhaniuYNXeK+2ggdSz2u8a2qvVOfXkCH6tDBoOYgSowThQhMPZGKBOvp7PRX6L61HpQ0 AhGaDO8RHh+XwrW8hbS5B9RPjQkl0V3wX0Av6P5Qe6eFSM8vTPKuWiyhNE3XDec9n4B/QV 2ffmUp0QDyrYduLfNLVfevyZKb2RKLTcJ7StpZ/n87RPS7WuKvOj7V3o38i/cXQgUDQlJM rERygii9wFhGy94aciCqYlQyj7kmYSXgYw14xHKJ5vHsEW/hyJwwvmh+w6KqMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673684; a=rsa-sha256; cv=none; b=uWU5Q9ahKr9kYY4GtQoSI5FPv4YXL9wLDgJOU250fJq2hOAUSsyzZ7vmVWnQkArV4io/yi YaUVRrwfloiODdx71nVHSLhfb0xjXj64TOUXakbdZRpKfpCs9OWsvpCJH7QSrbTd1Vy/dz WBhmJHrm7AwsbY7ZYcxQrEt5cMFwFrcxZ5xX1b5yH4B+zMuNu2f+pB5X0d0A7uzsE8jaVP /3ravIn5uwkK/Is653r2LAtvSyEcgyH3k+D6xgpOlMgUgfBTRRQD1w04CyA9GKCS/xgWya C+Cs2PxsAD0Hes9i+0J8i/z/1hJd9fFi2x6Ohdf4K1JS/p860Vh5vfHcvhQMjg== 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=1725673684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zYLBVCaf8xIDoOMpr2lNMvWzZQvfmpJ+hEDeKDWQLzY=; b=ssCwq1le3Q6GHj/CAv8/oTFrpmwTUfma967Yy3lGdZU3i5K7zzwJhYatznXTr+ObdcwA0R 5GG6jBYPHpmpeWsFMPc3Hl3NafiLZFlLv8wi9NBlhW1WdCd4tmktqxjjNPzWqbf67Olg8Q YjEI2blEu/pTMj/UoYkLb4RE2G+mJRDPQ0noxKlEEh0YR13SvBzmBYc2wO3tgUhjm1/uXk n+KEL7ULa7C47XAwG9qZ8OdmucY3BYIbvNiS/hMkCx9MZXkbAi5QE3/LUTkmje7+zTMOGt JOnDgFsLeEfwZUDfn/PI540QaHJ/UrI9W9gt65JMtDJRfNzNFBbvgQKMwwI2nA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwN02wrzGPd; Sat, 7 Sep 2024 01:48:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m33m041927; Sat, 7 Sep 2024 01:48:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m3Rp041924; Sat, 7 Sep 2024 01:48:03 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:03 GMT Message-Id: <202409070148.4871m3Rp041924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 10e602164f02 - stable/14 - ee: Fix use of uninitialised pointer in ispell_op 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 10e602164f0281d5f5dfea9ebf2b29fba4a716bc Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=10e602164f0281d5f5dfea9ebf2b29fba4a716bc commit 10e602164f0281d5f5dfea9ebf2b29fba4a716bc Author: Jessica Clarke AuthorDate: 2024-06-02 22:53:09 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:01:06 +0000 ee: Fix use of uninitialised pointer in ispell_op This used to be name = mktemp followed by fd = open downstream, replacing upstream's crude PID-based sprintf, but in 1.4.7 this was changed upstream to this buggy code, which we then picked up in the 1.5.0 import. Presumably nobody's actually used ee's ispell function in the past 15 years; that or it's just ended up using junk file names as temporary files if name's happened to be a valid address to something that can be interpreted as a string. Reported by: Dapeng Gao Fixes: 96b676e99984 ("Update ee(1) in the base system to version 1.5.0.") MFC after: 1 week (cherry picked from commit 25a33bfe9ce2b55812201f475e9d3e64009b40dc) --- contrib/ee/ee.c | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/ee/ee.c b/contrib/ee/ee.c index 2f122981dbe7..a14f9c0ead13 100644 --- a/contrib/ee/ee.c +++ b/contrib/ee/ee.c @@ -4431,6 +4431,7 @@ ispell_op(void) } (void)sprintf(template, "/tmp/ee.XXXXXXXX"); fd = mkstemp(template); + name = template; if (fd < 0) { wmove(com_win, 0, 0); wprintw(com_win, create_file_fail_msg, name); From nobody Sat Sep 7 01:48:05 2024 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 4X0wwP2Nkrz5WSP1; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwP1jLZz4k88; Sat, 7 Sep 2024 01:48:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673685; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jVQmx1+PGLbhHZpk0hZd6ht3vxIeO3i7zaSpRM4tPWM=; b=Rm9BgeK31eFfr4ukRsmsbE/vA+n/kFb43INJufZexYMdoKXxMXJJnFEJMZzlT+PScpI3bC ODNBzn18yDCpQ0pz5XL+pJB1qM9dDLJtfkyPwEpFdSc3KALIiIdsrO2iJgbwJESIbe1DV9 Jd5JH4nlKGRLyoeLRaVoVyQsf/H58q2fnidNyknaHbZR+xoU/qtyHEzek4vrsyJSuj8Xgp vXXqKsTSpCNHNQAC4xp9LQlhHcVCK/cYG1ha8e113Mi0LxK8nzhLSY1FRm4GnUTvRhllHY Qqum9brdWC6Dm40LSoA25En32iXTjeGI+8QlXhb79/Df3UACgm8brIFng/bu5g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673685; a=rsa-sha256; cv=none; b=d6c2tzysIp7tQrAAmnbLEGbcXPQeBkW4Bv4EG0O/RTnQGhdLfYAV8Tmv10Zb6mRzqIdqJO 0TDi2tR/iCC9EbbQA34ykurcr/W9/IE64bVhgsC848y2ZTxnlHSb9MYPIgfLz5ntmWSPLX E4daNhFwqie1kHjn46/85tp6XpvRsaxAVm6yrsjjuRSh9btzetMOMhObXooWR//wNE/pBD Xy37DqoPmY1bYUOJMViI7iwWaJs3PJZnaS7/IwFFNgTFfFe6JIUlc5j8xm3AS6bJqf28Fd 2LJ7molZc23kIZ0pK8cSEGl+DtrynSeqOZ6l2MqibUrJmHBgp1RO9qpCRHMNDw== 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=1725673685; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jVQmx1+PGLbhHZpk0hZd6ht3vxIeO3i7zaSpRM4tPWM=; b=cDljiYi/7X6sMKNOBDAlPraFT6ktVfxE23KnutE5cRFyMQpd4EcKsOAgndsfms4GgN7BqJ fBaJq6vV/Z+f+GFUAMTwfOmEkgx9kFnNkw2Dtr2rbZGhT2RrfHtG/af9HYLBVb+84EsBJ+ GTcMUxZCQnQb2OPuYWvL0yUT1zHJBgGb5kJsOsMvJctXkJKhFm79z0W0MI+c4wLIu/fXeR gkT4DAb61+KYWcdmhZWoVqmTpU6EnvVl9lMTp6wBG6FZp+9m0bs6En0d3i9TZKpoD9HH6o tRJNj8orZ9p9AMbHn9EzdQGjmWDoyRklQWTJyUu8Z99ldexo7VCEBnksQLi0Cw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwP1JWxzGPf; Sat, 7 Sep 2024 01:48:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m5b6041975; Sat, 7 Sep 2024 01:48:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m5vn041972; Sat, 7 Sep 2024 01:48:05 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:05 GMT Message-Id: <202409070148.4871m5vn041972@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: ebdd179d759f - stable/14 - Fix off-by-one bug in btpand 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ebdd179d759f29354a0998c0308721a551a08cac Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=ebdd179d759f29354a0998c0308721a551a08cac commit ebdd179d759f29354a0998c0308721a551a08cac Author: Dapeng Gao AuthorDate: 2024-06-03 19:30:36 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:01:11 +0000 Fix off-by-one bug in btpand `ul` reaches `__arraycount(services)` before the bound-check happens, causing undefined behaviour. Reviewed by: imp, jrtc27 Fixes: 7718ced0ea98 ("Add btpand(8) daemon from NetBSD.") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45463 (cherry picked from commit fbfdf57d65bedfab28f9debc8a4a8d6802f9338a) --- usr.sbin/bluetooth/btpand/btpand.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/usr.sbin/bluetooth/btpand/btpand.c b/usr.sbin/bluetooth/btpand/btpand.c index 0d2eece68747..b8f6a1d4c8d1 100644 --- a/usr.sbin/bluetooth/btpand/btpand.c +++ b/usr.sbin/bluetooth/btpand/btpand.c @@ -147,11 +147,14 @@ main(int argc, char *argv[]) case 's': /* service */ case 'S': /* service (no SDP) */ - for (ul = 0; strcasecmp(optarg, services[ul].name); ul++) { - if (ul == __arraycount(services)) - errx(EXIT_FAILURE, "%s: unknown service", optarg); + for (ul = 0; ul < __arraycount(services); ul++) { + if (strcasecmp(optarg, services[ul].name) == 0) + break; } + if (ul == __arraycount(services)) + errx(EXIT_FAILURE, "%s: unknown service", optarg); + if (ch == 's') service_name = services[ul].name; From nobody Sat Sep 7 01:48:06 2024 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 4X0wwQ4YN0z5WSRR; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwQ2n3Sz4kJn; Sat, 7 Sep 2024 01:48:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wEEqLQhHilRYEybwZvw0wETjQVLeHcbFA+MY7Ajl0Hw=; b=e8ltEk0w0l3Dvrp3GuvHCEVGbjvN8/uZwA12oja9Eck1mxJ10YE8Nr6XAmAzfFXJjKKqBw M1X9jyBNOP57+Kk4hJpLXYmlCG2tuc8FfYLoQE/IxYTQMzwR2V7uD/fezoISl7nEIkxcz2 5i54kw+EjukE6zkvAesnaBcvjfr5Km0j67QgxZBdGOqG0HlvM9OvB5j//QRDexJXYt4zC3 EbqnxKqTot07MxjRgtsGW4LVUoajxQQSV5s74JZAB6LogZg5LmJcd0Moa7n4w+CjuywbzY cXw6Tq5DuKRxbtQv8O5paamRhiGL1DwlWrBTgryjiA6NHwhGjwkmcb7+cFAIdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673686; a=rsa-sha256; cv=none; b=i77mN1Ta1NbUoyDLKE6vN673GAWknLDUiZALzRDTLD3kyaeVzV9s0ktRhE54NPrGU3rCne D2irYHjpv9XMcnVPNPXpTy6EbpABOGaiTHP0Jb8Ufl98hpZSQUrdNMkc8D9e8TgSso4Cqy UI+yKrzFUvqkM2YCl/Ok5xbTvfnAlQrkdlCkPliVvpIZl7mzpV3/pgPHx0dlns1ROpR6sn kXX0KDiJ9rbo1uC/TwQRYDlAa9mksRBxelouQEc4TuJrUWxAiI8j2OgkMu9dUd5HzTTFvx iUiqc/t5rF4PX+NaPSmgTHLyy5K6xdng6YC+cgJMsDxNbHZFCyTawVnroliwOw== 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=1725673686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wEEqLQhHilRYEybwZvw0wETjQVLeHcbFA+MY7Ajl0Hw=; b=k9Oh0Dcfce3oT0doGPYUhhaeYd1U8uJaX2fHJ/dY7/84n+QtJWdl/XExIQoZAS5h1U0aLi C4J30mXFgEK2XMZywZbtYraBj7TfWqJazIbvOKM2Jej56DNmxHhwFTDhXiUu/RhJPJ/Szz cS61LnLmBSyoTC0xfSXdh5iZdzfpF1fCaJ3Qfp4hwNoxVeNFcFKC5Q/3r5QUhJd8EuURfO tIwREKHSHkThH4bZVCrdBmEOYu1s27sf1VcvUwAxZUR4Q62zi51CuAIh30isqBcnRR0g3p BnPuxaL1x/UE0iTh5wwRfBaVQdqfWyu3aenAtR2VeNvTsqSLtTLxFWwaI4ijSA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwQ2LqYzGPg; Sat, 7 Sep 2024 01:48:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m6aL042029; Sat, 7 Sep 2024 01:48:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m6hq042026; Sat, 7 Sep 2024 01:48:06 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:06 GMT Message-Id: <202409070148.4871m6hq042026@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: fd45162d1139 - stable/14 - mx25l.4: Document the correct disk device path 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fd45162d11392cb5081654f11b9285a04bbad67a Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=fd45162d11392cb5081654f11b9285a04bbad67a commit fd45162d11392cb5081654f11b9285a04bbad67a Author: Jessica Clarke AuthorDate: 2024-06-11 16:43:18 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:01:17 +0000 mx25l.4: Document the correct disk device path This was true at time of commit, but the path was changed 2 weeks later to just be the /dev/flash/spiN name, without updating the manpage. Reported by: David Gilbert Fixes: 68dd77957786 ("Give the mx25l device sole ownership of the name /dev/flash/spi* ...") MFC after: 1 week (cherry picked from commit 703768a23590d8faf65b0f16dd395248ff7273f6) --- share/man/man4/mx25l.4 | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/share/man/man4/mx25l.4 b/share/man/man4/mx25l.4 index ff2e78a8c5aa..5dffdebcf43e 100644 --- a/share/man/man4/mx25l.4 +++ b/share/man/man4/mx25l.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 February 26, 2019 +.Dd June 11, 2024 .Dt MX25L 4 .Os .Sh NAME @@ -60,7 +60,7 @@ such as block size, sector size, and device capacity. When a supported device is found, the .Nm driver creates a disk device and makes it accessible at -.Pa /dev/flash/mx25l? . +.Pa /dev/flash/spi? . The new disk device is then tasted by the available .Xr geom 4 modules as with any disk device. @@ -189,13 +189,9 @@ Set the high bit (1 << 31) to invert the logic level of the chip select line. The SPI mode (0-3) to use when communicating with this device. .El .Sh FILES -.Bl -tag -width /dev/flash/mx25l? -.It Pa /dev/flash/mx25l? -Provides read/write access to the storage device. +.Bl -tag -width /dev/flash/spi? .It Pa /dev/flash/spi? -An alias for the -.Pa /dev/mx25l? -device, for backwards compatibility with older versions of the driver. +Provides read/write access to the storage device. .El .Sh SEE ALSO .Xr fdt 4 , From nobody Sat Sep 7 01:48:07 2024 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 4X0wwR4vJTz5WSP7; Sat, 07 Sep 2024 01:48:07 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwR3R80z4kS8; Sat, 7 Sep 2024 01:48:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673687; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TiOyh+tGmTuGW3T2l0F7F3bIzwEiazCB6sdKkDZiTd8=; b=PVYgWkYdeU5YSux2y61j6xyxOi2V/fCNvm056CHpr94AsHhJr8g5hwM9gZHVJrvNAUrtNB 0hf7zxjgHRLYX5wW4IcYLGBShIuGtkm1cvSOfCdDJdr0r2LslzZS8T5S0yhfkDqEGGHf03 oI5QincQW6WvxFdzDX71BrkBU2Kd5WrEBrfHPAUgmpvYAEn1IGoaCwjdrcTf5d3k1TrRfF vX9J9Z6BcvtuMXkTefjCr9eiPv2UZIEv1HXtycoqDDjTe08G0moBIt/4iGY64KVISp6Xrn ZpG5ZMr3QW78vRyz+znWC+CthcIk86Y+CKZdEmFjQHoncqYCe+pNLhLenKyoMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673687; a=rsa-sha256; cv=none; b=bgxIkNbhnAH/IxgllpjwW2BnsOY4wExhmM02eFk/qTiGKaQ0JsF1KchRjHwZ50NbrN0sLr N/6kMhNXxsHmnKDXO5mEIw6sbIWX9IEPw9JqYf57GCxqbO3fjgRWbZ0u1UOUkuBTJJ6jbO ClTIqsw/tdvN7YhcZyGt7IyKnwYlcrTtKflyGqP1I9fmTl0WAPZStu0/zbQuqAEzRZ94wJ 7CW+IuFA3jSKTnD+kkNQ66ukleI1tPOnLYZ3OWo0uLhLcC4igueHAbJheTNkv5XhyejP61 tvwsD+AWJemBHAf3rYYij4UVOX7on3HN15C1WzWy5j/ZRsW4OJuVHMBEg9wMkA== 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=1725673687; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TiOyh+tGmTuGW3T2l0F7F3bIzwEiazCB6sdKkDZiTd8=; b=RNDfY1/wgGdU379JWvZUmYhLUe9bm/6W/mdIU/ncLQ7niglM05f0UfRcecLcORccYMhYNg 8Od3JFcUMdrw5OxSCBn/X3LsBXNhj2Oa5t/6vuSKwZaQQumYJ5nHh2BVi9dK6uD9UXPhb9 Vutt0WGh6j8UXcweloW25ebVk+UC3LolOY26h+QbgWNagqKZWmBm78ln+16wsgnaTGYGGB QJRFt/yVH1U0Zg8S27BreovohRCnrs6mhBqVucqt3RZtm9/hIRCoVgI1VVwLNzAUxLTYnb g8m8Cv8175ME8bEUGf2TGEIyVfkjyKDdsTvJdDI+b6y7oA5M4GOHkBEvs0qRGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwR33XczFfV; Sat, 7 Sep 2024 01:48:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m7hZ042071; Sat, 7 Sep 2024 01:48:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m7cL042068; Sat, 7 Sep 2024 01:48:07 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:07 GMT Message-Id: <202409070148.4871m7cL042068@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 0abe896f1921 - stable/14 - beinstall: Pass -B to etcupdate 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0abe896f1921979d801daeebf1ae829678d3dd12 Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=0abe896f1921979d801daeebf1ae829678d3dd12 commit 0abe896f1921979d801daeebf1ae829678d3dd12 Author: Jessica Clarke AuthorDate: 2024-08-28 22:36:56 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:03:14 +0000 beinstall: Pass -B to etcupdate Since commit 246364454fc1 ("etcupdate: Use new buildetc and installetc targets when available"), beinstall has been much slower for the etcupdate step, as it's been doing a kernel-toolchain (admittedly without LLVM itself being built). Given beinstall requires an object tree to already have been built and just installs it, we can pass -B to beinstall to reuse that tree rather than build kernel-toolchain in another one. Reported by: olivier Tested by: olivier MFC after: 1 week (cherry picked from commit 18aef07cfac41fde763e1328366cc6e334bb9254) --- tools/build/beinstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/beinstall.sh b/tools/build/beinstall.sh index 766a3a03739f..988414744d13 100755 --- a/tools/build/beinstall.sh +++ b/tools/build/beinstall.sh @@ -49,7 +49,7 @@ NO_PKG_UPGRADE="${NO_PKG_UPGRADE:-""}" # empty string to skip. CONFIG_UPDATER="${CONFIG_UPDATER:-"etcupdate"}" # Flags for etcupdate if used. -ETCUPDATE_FLAGS="${ETCUPDATE_FLAGS:-"-F"}" +ETCUPDATE_FLAGS="${ETCUPDATE_FLAGS:-"-BF"}" # Flags for mergemaster if used. MERGEMASTER_FLAGS="${MERGEMASTER_FLAGS:-"-iFU"}" From nobody Sat Sep 7 01:48:08 2024 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 4X0wwS67HXz5WSLn; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwS4dcZz4kQ6; Sat, 7 Sep 2024 01:48:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673688; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BeTREvhFrFnubpop+5O3isGzvWu4pwu2wohdV3i/AMc=; b=Ozldmxux4ESgztDDm5zD76QpNqEpG1/ALEnAgLScTSu9ZgtOXncq8QqSGkZ2dqYKffIblw FiHuuX8a6H9y1yXukDDOuCEgSGwM/iRbzQtusKeSBrmbqYlBbkUlC3MCAF/7OApHEqRwAJ 5VJ7CdjM3bZxXTUHbep8I4SRgKhkj+t/SqsQETbk8chsvvJxpIdkEb7dAxPOs9aTnbFgr6 MPR5KWQoAneSgf6etC6dJbhzNQI93evE8cJoErRWrRXYeLE7RECpFdY5BUIGTLLvdcekLq +el7KCElI4IJTgd6niYONVSHClieemwGk6ljOnoERDeWBAVbpRluNIyM3hEBzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673688; a=rsa-sha256; cv=none; b=CinKPcVnbGE8V/A7Ta3XqkByZIwxqfdQDS/6sFYeDVBjT7mEjCCOUVODwcNfDG+l4rOGY+ pXvfSeXQsynzGQakjEVt17cL+Ct4wZ3ZZAuHwqbhVdHBr8PXji4by15Ac/RyrmuioqOti3 7+boU9xDoDSLEE3k9V1F+Yt+kp/i4dMFPlEedxBOOsVWgmi4qLhQ314r2kTH7Xp/7efgB9 FDtwwb3wIC/6VQ6WGAEoKUAeUIXvxznxV+6AzM2nECQu+7z7xLoWl3Ppg639SZ5K6R0is9 vIWhcfdHV2RPmKIPu4q/8L+ZRdetjHEGY+CFACNDmQM1ZwP20/lmuGBOPyqD3A== 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=1725673688; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BeTREvhFrFnubpop+5O3isGzvWu4pwu2wohdV3i/AMc=; b=MCz4H/CXXM1c/RQpEDHH5DBZBcIwJPSBpz7N/L4HGwfdzn+AhYPecCcZj3GLLScAbqrkEC /ko31hohv/3gvQ5inqB7Fkuoafl5xEQGlGUjhlADOqT1O9VqytwpvQNtFm1nlVjnZcpfMQ 2pEWcavfpmokj+hIPsFmkFbGdHt3sHC4Gp4AFlaBCa6fAwIWBWup1OuEEQzQDwuznz6O49 bYwbQk3ElkZ/8cBoYmtbQVPfa8Uqy/VoxrBnIoXNixTWvA0lnYNx21IGyFfw0LPPDwpS3T I+XhShSp4TagPkCgdRYfuhU5RNvU2yt58PKdoShVvBNz5JuDndBTLbFwbXhIWw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwS48KGzG34; Sat, 7 Sep 2024 01:48:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m888042111; Sat, 7 Sep 2024 01:48:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m8gf042108; Sat, 7 Sep 2024 01:48:08 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:08 GMT Message-Id: <202409070148.4871m8gf042108@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 11d7aa07eb31 - stable/14 - rc.d/devmatch: Silence sysctl hw.bus.devctl_nomatch_enabled=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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 11d7aa07eb31d94cd72044f5108b2335d46db44e Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=11d7aa07eb31d94cd72044f5108b2335d46db44e commit 11d7aa07eb31d94cd72044f5108b2335d46db44e Author: Jessica Clarke AuthorDate: 2024-08-28 23:26:26 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:03:16 +0000 rc.d/devmatch: Silence sysctl hw.bus.devctl_nomatch_enabled=1 As with various other rc scripts, we don't want the output from this being visible in the boot log. Fixes: 6437872c1d66 ("New sysctl to disable NOMATCH until devmatch runs") MFC after: 1 week (cherry picked from commit 62775aebf725a79703592f3276118245a74afdac) --- libexec/rc/rc.d/devmatch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rc/rc.d/devmatch b/libexec/rc/rc.d/devmatch index 67bb14761614..37c4772cfcb7 100755 --- a/libexec/rc/rc.d/devmatch +++ b/libexec/rc/rc.d/devmatch @@ -46,7 +46,7 @@ devmatch_start() if [ -n "$one_nomatch" ]; then list=$(devmatch -p "${one_nomatch}" | sort -u) else - sysctl hw.bus.devctl_nomatch_enabled=1 + sysctl hw.bus.devctl_nomatch_enabled=1 > /dev/null list=$(devmatch | sort -u) fi From nobody Sat Sep 7 01:48:09 2024 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 4X0wwV0N4Nz5WSdX; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwT5MWkz4kQG; Sat, 7 Sep 2024 01:48:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673689; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=84yx0tdrz3HY4GHGnXxjwhUmGd3KDBl3I1Z7t/NjYmg=; b=mDVqssxu4O4pRgUO/hJ0Xq0urmUwJ8TUWMUoNtO3du3eKHxMA4BpK+z+JeluX+yFic5Oqv +jxQSdSfHExT9+ZilmDEn5yv2d00v8S8qM0yhzs/cBHrXqDLcKDR6tRqnBZgNXVTiG4kJS MCto/N/5Tf9bkTRBaJHRI5fgwGmP4AAgZT1GWHds9accLapxm7YJ0zjsZx3dFqQicqbORi 1QLKvyNXrMW18Rgm9gchO1H3UbpKojbn/joNk2HzQvjH4eC2lKfWb/KanGjs73bZ26II1k h6SYIrtROb3TB5mxkTgmvDUxXxo/u94h9paRhyNFuxwtzWvVBACwXgAp/djEEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673689; a=rsa-sha256; cv=none; b=hc791+R6kZ4qCrQIpP/tycFs7ziueKECcjbaobloxOyVraJQKlzYPEHA7O+3l5AogdBF4D 59TSCJaNhFRRTJZw+YhlBT9NiRd9bgw9jlVcVXgGkwXHtGOf4T59cwQGcpq8j7LtZi9rqx dc+EOAPnAaI7agIyXz+zaSmmQypVhlX93PcmONuiADLsjnSTPKQ2Kcm6DnED3PHCTzDb9X Ci7VcsRN2vtVQ96+yPKgzmFDZMCJo826vJOPHteDe6ggZmkOhsVes0aGM7AowG6Uq5Y/yZ HIiI2nEquzXEXPgBHQiXocL+XJKr7t34rr0Vk42sTUi3Kuzyesu0K/El/5Mo7Q== 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=1725673689; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=84yx0tdrz3HY4GHGnXxjwhUmGd3KDBl3I1Z7t/NjYmg=; b=G6zM9ccOBak4x1wZVS6ybWUdAAJacNDPsglOvVselRgcTfcwdEy1MyRroLThxMVuM9cd9q rD+kmv0j+OvhyMZ50CmkhXYjexRv8OpiYOY9KuTfrupA1iZUoSDD7iYfSP67JyOmtN6DP3 3Kkxwbj35XAxINIiw16ShviBwohZLVdhrflqWmIm2FX4IkvL6MavvJZaWupvSktlaOV8LJ e0tajk4Qg6t0t/yUEfqbPXq00wnamys/36TApUcixwjhQW6nSQXb3WqMaUx5E45xFk1nRz HtBCg5JraZqFb6tHjH+ykRKg3BYgR6vbgwPb1pkaxetIr3o3vmwTTX3ETpmBsg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwT4z6dzGGT; Sat, 7 Sep 2024 01:48:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871m9od042165; Sat, 7 Sep 2024 01:48:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871m963042162; Sat, 7 Sep 2024 01:48:09 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:09 GMT Message-Id: <202409070148.4871m963042162@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 8161eb6182a8 - stable/14 - tools/build/make.py: Add missing comma to fix tinderbox and worlds 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8161eb6182a8d999e5b2ad2dde9310f8cb09c26e Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=8161eb6182a8d999e5b2ad2dde9310f8cb09c26e commit 8161eb6182a8d999e5b2ad2dde9310f8cb09c26e Author: Jessica Clarke AuthorDate: 2024-01-20 22:07:48 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:20:36 +0000 tools/build/make.py: Add missing comma to fix tinderbox and worlds The missing comma meant this was interpreted as a single target called "tinderboxworlds", and so neither tinderbox nor worlds were recognised as being MI targets (i.e. still required TARGET(_ARCH) to be given). Fixes: 5157b451c654 ("tools/build/make.py: Grow the list of MI targets") (cherry picked from commit edec803c5b72681b39ce969cc16d634e08bb3ac2) --- tools/build/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/make.py b/tools/build/make.py index 5ac99ddb2ee5..a602cc22072c 100755 --- a/tools/build/make.py +++ b/tools/build/make.py @@ -55,7 +55,7 @@ mach_indep_targets = [ "cleanuniverse", "universe", "universe-toolchain", - "tinderbox" + "tinderbox", "worlds", "kernels", "kernel-toolchains", From nobody Sat Sep 7 01:48:10 2024 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 4X0wwW1ZxSz5WSLs; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwV6KNGz4kSl; Sat, 7 Sep 2024 01:48:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wpfu7XygRxTF9Iz9MZmdC/VnDVWOpwe6CEBzeMHAOY0=; b=qNpPgJaoZ2VqmEhyoBs1+4QF92eEHPJdZE9W62y+r2uGNz01pZkrRrxxXB7flkI9wBa6a0 sLhgBdrp1P/ZK9FPMJLq/mqI65+FeNS6Fgb1h5A6s2geQLyFMNxypE5TG2EbiNKXgpYlAh 3akI0fB/GCJwZkRgULRjO3/i+fCSJ+qv4ZgaVSf/CZhciK9wv+f17VtWzKOI2SCzl8wbFM ivxiTf0TrOIbmpC08nhSGZi7SuE7lZagUspm4pQksIu0JaRybguGHt49/vWV1BJYCENT6Y CqvnmmIu7NE66o4/w3qrStgtYVor+M/0xZdZ0J6Zy5WADIdG9RCqGaUHlTj2BA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673690; a=rsa-sha256; cv=none; b=KGrL021fZMn2qxVz4Mm9mRsqBxUVv7jz5EsEWDNhhWlJGoWsZRgw9/Xpn0J6e0wH62grga EZPHJTxac10FHfDIQNJacOIB/AZYAkTBch/xoQT9si5UzRzhhHRcwRtuYueUMQrsIwhKjv lRlIdMziP0wB13onRw0Voc2hN8zcSd5NYdhfIyu8FlUiDuDLfDhp3kQ7fUj3PfvNb1h1F+ KJYiySlih24zYIZZv+XI4Yw82cgKRKUucZweM70yJYLuQfTGsj2NH4YyEAZVold3/V5sLr U7xv7q2MJphxGhHh/460paf2ybw5jKcD5FEboyVDWlBJxLnDHE0/rNJEFFk6WQ== 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=1725673690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wpfu7XygRxTF9Iz9MZmdC/VnDVWOpwe6CEBzeMHAOY0=; b=xYjhPu0ZzVW6Ga8fJdL9azQgrlpIJwmrnEeHtBURUW9BbXFg1FCxiDAbpkaMVZHeJQ8Rqj FWlvoadNGDdSRQb5u1K9Bq387Gnci4X37gbLUDnUeTA4/APzv5mx2PetbaC2bL/CcnmhTq aG1hoKxbZXXGcnzhSFeSgVRl2JANgG92t0OyCZU8gSCtKzZwg7sdSQWCvzilFPpBse1ms3 5o2X5OKO1gEdWnRwLkZYAb5npDo/U8OfbYlq4aBPwCJso79PzsQvfIJwpuxPj4JrvpIcGk ChSWNs0CFkKK5XKy2GVaHofF4JQn3q5+3y53bKp6+Eji3F3baciv2NhNAclroQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwV5cjfzGDN; Sat, 7 Sep 2024 01:48:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871mAgn042210; Sat, 7 Sep 2024 01:48:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871mA0C042207; Sat, 7 Sep 2024 01:48:10 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:10 GMT Message-Id: <202409070148.4871mA0C042207@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: c3d7b96df0ac - stable/14 - tools/build/make.py: Avoid Python 3.7+ subprocess.run capture_output 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c3d7b96df0acd640a538c493ec03d5452fac216f Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=c3d7b96df0acd640a538c493ec03d5452fac216f commit c3d7b96df0acd640a538c493ec03d5452fac216f Author: Jessica Clarke AuthorDate: 2024-01-31 19:45:59 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:20:39 +0000 tools/build/make.py: Avoid Python 3.7+ subprocess.run capture_output This is just a convenient alias for setting stdout and stderr to PIPE, so substitute it for that to be compatible with Python 3.6. Fixes: 69cfdc81ea7b ("tools/build/make.py: Keep bootstrapped bmake binary up-to-date") (cherry picked from commit b771d5705fc95445d4d81e054be664b7842156ff) --- tools/build/make.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/build/make.py b/tools/build/make.py index a602cc22072c..ec42cb70dd21 100755 --- a/tools/build/make.py +++ b/tools/build/make.py @@ -81,8 +81,8 @@ def bootstrap_bmake(source_root, objdir_prefix): bmake_config = bmake_install_dir / ".make-py-config" bmake_source_version = subprocess.run([ - "sh", "-c", ". \"$0\"/VERSION; echo $_MAKE_VERSION", - bmake_source_dir], capture_output=True).stdout.strip() + "sh", "-c", ". \"$0\"/VERSION; echo $_MAKE_VERSION", bmake_source_dir], + stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.strip() try: bmake_source_version = int(bmake_source_version) except ValueError: @@ -92,7 +92,7 @@ def bootstrap_bmake(source_root, objdir_prefix): if bmake_binary.exists(): bmake_installed_version = subprocess.run([ bmake_binary, "-r", "-f", "/dev/null", "-V", "MAKE_VERSION"], - capture_output=True).stdout.strip() + stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.strip() try: bmake_installed_version = int(bmake_installed_version.strip()) except ValueError: @@ -187,8 +187,9 @@ def default_cross_toolchain(): # default to homebrew-installed clang on MacOS if available if sys.platform.startswith("darwin"): if shutil.which("brew"): - llvm_dir = subprocess.run(["brew", "--prefix", "llvm"], - capture_output=True).stdout.strip() + llvm_dir = subprocess.run([ + "brew", "--prefix", "llvm"], + stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.strip() debug("Inferred LLVM dir as", llvm_dir) try: if llvm_dir and Path(llvm_dir.decode("utf-8"), "bin").exists(): From nobody Sat Sep 7 01:48:11 2024 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 4X0wwX33ypz5WSPF; Sat, 07 Sep 2024 01:48:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwX0PyDz4kbP; Sat, 7 Sep 2024 01:48:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MNVBiGCFCJzi0sBvf+1iE8GkTw/zCAKgIzd8hX/da1U=; b=BG6xBMQt5/+HjcXfyUUDSISgXHzG8v/vzm4OB+FvPk6/1b/YWwefGlG+xXvcz+V8/EDRdV N4FoOJtEgqzE2bAMJOPoMdGZGGCfWGUpSYYzJIstcxLVcCnPFSPxwv6n+gD6YD82OZ72CU IC/9aB/hEDi5+zGpvNex83y4ihFTx3RJQF6bnMBYOTBDtuXAvjflUR9VX/b5pa+pH8DMZh cO25/gpaxnkMgnlNulhB1it7zxm/e0ArHb8/FJIFd4htoI7Bqd7vY+R1RL6/h2TL6zBB3K O9PMi3cPXoj5LfEPj3aSWcPvGB6CfeKfYs/hfex2D1Y/aHbwhS8LnSAEFkowZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673692; a=rsa-sha256; cv=none; b=Rw7EgVLQZY1vo/zFq0kavYew8RtaTLBuVXzhATY1DQgMhDRJ82VlX4N4p/FARJr8VLarA5 0wWlqeMeT8FiY00HXPnbG3x6zOEmbRr4yvuT3q9jpHA1gf8TZ20D7Ddz1inAvYEUPx7h/y A0DPz/tfPCQZebeTl32JWC8Pa8yDFwp3DcCoO0kdsk/93uRS7G+/ez7Uhik9memqL/Q02b IallErWYlnJeNalf1teYn0x/WAc/6OUaHr3YWXv3NhMvtA7/54PHf7kfDPE8bZu5hs02jj C4OGQwukFulXDFiGNeb14YNcWvGlCa14yM/yI6CcZQU4/R2mcsqdNNxay4CJKw== 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=1725673692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MNVBiGCFCJzi0sBvf+1iE8GkTw/zCAKgIzd8hX/da1U=; b=hrkNNdvD/5EJ2T0Dy8RB3OPmjZouU3ZiIZfjiuT4ZLjLO+TFC8cqFEIZEWxYLXq1Qr0s4q ic8QJ0nL2v7qcyGvUQpvYivo6Y5upFPlRKLgioFJUOdeNiX8cckfji8Mtdkp4BhmcLX5bG P9bWR6xnFlZOGI2rDFoIayMi3Obw4r9DiZ+8pEPo7WWzyNP5uY8kBOburxY3uOdK4b0MGa qzEI5gdSWUWgYs2Yl5ybzX2ND9BZZzZPYRfHUHhEIMJT/NZY92BXNw6Xe0f1H20mbt3sbB qVkr8ksaPuFctdcrspk951F9Os2qKKOY85kNsKLw9U2sPw4cPMYMA43w6TIh1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwW6mjzzGPh; Sat, 7 Sep 2024 01:48:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871mBNc042258; Sat, 7 Sep 2024 01:48:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871mBiT042255; Sat, 7 Sep 2024 01:48:11 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:11 GMT Message-Id: <202409070148.4871mBiT042255@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 4acf9ba16de3 - stable/14 - netinet: fix LINT-NOINET build failure 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4acf9ba16de3ed0e1157539fbb59b138a49ee77d Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=4acf9ba16de3ed0e1157539fbb59b138a49ee77d commit 4acf9ba16de3ed0e1157539fbb59b138a49ee77d Author: Kristof Provost AuthorDate: 2024-08-26 20:02:25 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 00:52:31 +0000 netinet: fix LINT-NOINET build failure Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 3b62f3350017ab6722ebe8e4fccd9ba76acbb214) --- sys/netinet/in_pcb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 897a3ef991d5..28cd64ccbde6 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -236,11 +236,13 @@ in_pcbhashseed_init(void) VNET_SYSINIT(in_pcbhashseed_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_FIRST, in_pcbhashseed_init, 0); +#ifdef INET VNET_DEFINE_STATIC(int, connect_inaddr_wild) = 1; #define V_connect_inaddr_wild VNET(connect_inaddr_wild) SYSCTL_INT(_net_inet_ip, OID_AUTO, connect_inaddr_wild, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(connect_inaddr_wild), 0, "Allow connecting to INADDR_ANY or INADDR_BROADCAST for connect(2)"); +#endif static void in_pcbremhash(struct inpcb *); From nobody Sat Sep 7 01:48:12 2024 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 4X0wwY2rcmz5WSTh; Sat, 07 Sep 2024 01:48: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X0wwY1MSsz4kNW; Sat, 7 Sep 2024 01:48:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725673693; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kqelDlpvxqVeN/k14Czmwh7+8im5a8EPo0j3eN8R1kQ=; b=Ljiv7wjotO+JedP7AAuEWH1exh2Vtevwpxb7YKL/k8biDVAvfZSU2pTBkwkZAog81s+z8b fDlZqGW5uhWYFpsaQpklCqu2qToIYT4+mLk/uk7PDoDmOgVxevOY6iH144bdpdmMKxxsZE nXGdiqfSJuGJSORO+mpRHMXUJKvhBcJgqAnU2uuhAQoAypVdzq2of/AoESPxu7WqoSAWER npQnm/QvsOHQ8Fh7i7UMgNOORKeZT6183dUJ2lVgP9KcDLEv2BSE4tBnGsdsw+a/TC5KWy ZktuPRsxD5RZfq/pByLvVRUMh4wWmbecb/e3+7QD5nSEXOD2HbakAjmhnOyOoQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725673693; a=rsa-sha256; cv=none; b=Ke/hraYrW5PCpfbZirUVeHbjCIU0ZCI38vgxqp0AilIkxwQONLq8SUnB/E11V2tc/B+2hF 8aeu+Cfa83vyFTia3X+ABP9O9gW7xJ8iIeVu+NRAyO0idyhxXoTA3BtMgDGoCWoSTfGaIu OrqQTL/OTjK0AoW4nx0I19MEDL7yIEOKIsGJVlOVsV89KFun/teHk/oCj7NbDuGW/L/GRm Gk1eBlyJbacn/8AjJMQz0z4Q5OsIlWDfoKgiSySZIjicwhdMa0LiP+B01jGDG0nGyhGhHG BOHEKzCSv8MFLP8OHtmHR52wPktw1W8degJBqCKs6L/KMX3ugK0kJ88mJdRQSg== 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=1725673693; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kqelDlpvxqVeN/k14Czmwh7+8im5a8EPo0j3eN8R1kQ=; b=xeYiYJn9PXe5+MVL4WhuDCxKbXM8dn+sj07g27PgkRkIWkHujWmWs0eUZlfrwpydF8wj96 sNEwphg4/cw3YFmJ+ZNEZhRw4EVxrYaOkUVHS64EWT6X+FktqYsyeIaKugITpkeHhJzUTL JEGD6KFQtyDlRFMFQ2O7EkyYzCYzwEARlzMx59V2YyBaUhtj3SaN9TS4wTK2GMLqRPhbHw fDIitvL9pXlqld8BwvkZTWQRIz1ID6te8a9/dPI4JSMlxSFML63OVaK/XCNg8SD9x/mLcZ fwh9dmf48gKmMX6+1Fqr6T8DmbhRaEgwe/mHa3X2Kdu5UiG1tGRNHgrhf8TmXg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X0wwY0kkLzGJj; Sat, 7 Sep 2024 01:48:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4871mCtT042321; Sat, 7 Sep 2024 01:48:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4871mChf042318; Sat, 7 Sep 2024 01:48:12 GMT (envelope-from git) Date: Sat, 7 Sep 2024 01:48:12 GMT Message-Id: <202409070148.4871mChf042318@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jessica Clarke Subject: git: 9ae4c66bff69 - stable/14 - fu740_pci_dw: Fix PERST delay and keep asserted for rest of reset sequence 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9ae4c66bff6927dc6fcc855f1aa539a2115b21bd Auto-Submitted: auto-generated The branch stable/14 has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=9ae4c66bff6927dc6fcc855f1aa539a2115b21bd commit 9ae4c66bff6927dc6fcc855f1aa539a2115b21bd Author: Jessica Clarke AuthorDate: 2024-06-02 20:42:18 +0000 Commit: Jessica Clarke CommitDate: 2024-09-07 01:47:00 +0000 fu740_pci_dw: Fix PERST delay and keep asserted for rest of reset sequence DELAY takes microseconds not milliseconds, so 100 was too low. Moreover, when enabling hw.pci.clear_pcib, PCI emeration would still stop at one of the first bridges, but by asserting PERST for the rest of the reset sequence that appears to be reliably addressed. Fixes: 896e217a0eae ("fu740_pci_dw: Add SiFive FU740 PCIe controller driver") (cherry picked from commit 28aaa58fa64ecb89d47f0a8396954ad8ca82d8ef) --- sys/riscv/sifive/fu740_pci_dw.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/riscv/sifive/fu740_pci_dw.c b/sys/riscv/sifive/fu740_pci_dw.c index fe741f4bb6e6..eff23a294985 100644 --- a/sys/riscv/sifive/fu740_pci_dw.c +++ b/sys/riscv/sifive/fu740_pci_dw.c @@ -216,12 +216,6 @@ fupci_phy_init(struct fupci_softc *sc) return (error); } - /* Hold PERST for 100ms as per the PCIe spec */ - DELAY(100); - - /* Deassert PERST_N */ - FUDW_MGMT_WRITE(sc, FUDW_MGMT_PERST_N, 1); - /* Deassert core power-on reset (active low) */ error = gpio_pin_set_active(sc->porst_pin, true); if (error != 0) { @@ -281,6 +275,12 @@ fupci_phy_init(struct fupci_softc *sc) /* Put the controller in Root Complex mode */ FUDW_MGMT_WRITE(sc, FUDW_MGMT_DEVICE_TYPE, FUDW_MGMT_DEVICE_TYPE_RC); + /* Hold PERST for 100ms as per the PCIe spec */ + DELAY(100000); + + /* Deassert PERST_N */ + FUDW_MGMT_WRITE(sc, FUDW_MGMT_PERST_N, 1); + return (0); } From nobody Sat Sep 7 04:18:10 2024 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 4X10FZ5zdbz5Whhr; Sat, 07 Sep 2024 04:18: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X10FZ5Q1Zz51tK; Sat, 7 Sep 2024 04:18:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725682690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RFJn3X2bTIfYw8t3V3u3atQ25EuudAmDTMfe9Q2lLRI=; b=eysJx78gRzI2CzUzSYhkbX+NS5sJlNeuURq/Wcv9e/b0cysYYIeR8f5tbYpd08qbtO505L pEzphO/LvdNEkoDWiuSWBrTpWfoNHPiiC1Cf89kuaLnHgCiSQlebw+mEC8MzWZAYqxtMRM 7dQAFjqwKE7yUmAn1TxBtcrcyRWzDHbu8IKOF4/lhSa4/jclvU06mfAAEv/ERLzAgO5Wkf 2yJq7YRGSsk0MlwPvpKFq9WSsj7+lokAR8AgDEvCHwha/5SBD1VRfcgJ+AjNP46yh4k540 ctUA+b+q9Q2KdI2mLU8/e77OPB5NS2k04/2/cCSsCQwPTMOAqqibMpSXjrMRGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725682690; a=rsa-sha256; cv=none; b=BQzN1ANzuzX8Qqq3oetsK2tjWuzedM3doS7k/OCx3PbBYxRcunJ0slNndwy4YzpJwwZJV1 uvYtAYKvt2yZxvkMl1fyTBy6H3lXcycHdwUThDEDeWpYGsNc6oZ59NKPGYdJNPvXfN2TLS lakSHNijswpNfKAgdJQabGt++BN72s/K5eT+Hk9kDO9ITelo1k8/3kVQe7tG3I7qqk9H82 VqU8Epjq8S5V1ccSWUajU6tkKMn4AhN97xUjKmU56H6V5iplv+g8AXyDQAk54I/yDH0wrU L+GiWpMGxdVvMYwjpuEoB4aC+XHh99ChwTlF0g8SIO5hfZB6hGhShAQ4d/8knA== 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=1725682690; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RFJn3X2bTIfYw8t3V3u3atQ25EuudAmDTMfe9Q2lLRI=; b=iM+huMva3AQJvSfe6NmwBQYetyLUYJzJC12OA7s1ktXS3Opy5Gah41bjsWkwmfN2Zx5trE 8Q68ejFNe3fMFUfQ6es49ze3hTVZnX29TZ8bmjF89VR/UsO5eey4MDSYS9ca6AS6vwqyaD fu200/S5pFOT4Pv9YxwGYw60tz5K7sBMwjCdHVDPwBYMEPTe3wCMx8iXPIwGyaMgoJKftp Cb4iIPHy8YtQZEOLvPZtle4vb9eSgEzRga5jHiMilC6zAHeAITYZlR7z3A58AQYJFDec/S fm+jNanGmoFTxVjKL8Xwg8wHvQU3Q1Wy9jXQN0z2dz4h90pZ8IlLVyTM98nbZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X10FZ51dzzK8P; Sat, 7 Sep 2024 04:18:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4874IArT098930; Sat, 7 Sep 2024 04:18:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4874IAiW098926; Sat, 7 Sep 2024 04:18:10 GMT (envelope-from git) Date: Sat, 7 Sep 2024 04:18:10 GMT Message-Id: <202409070418.4874IAiW098926@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gordon Tetlow Subject: git: 3d8501d90e24 - stable/14 - openssl: Remove fips module from base system. 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gordon X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3d8501d90e246602a6343a760f6ac8d9e2730306 Auto-Submitted: auto-generated The branch stable/14 has been updated by gordon: URL: https://cgit.FreeBSD.org/src/commit/?id=3d8501d90e246602a6343a760f6ac8d9e2730306 commit 3d8501d90e246602a6343a760f6ac8d9e2730306 Author: Gordon Tetlow AuthorDate: 2024-08-04 21:10:46 +0000 Commit: Gordon Tetlow CommitDate: 2024-09-07 04:17:19 +0000 openssl: Remove fips module from base system. To comply with FIPS 140 guidance, you must be using a specifically validated and approved version of the fips module. Currently, only OpenSSL 3.0.8 and 3.0.9 have been approved by NIST for FIPS 140 validation. As such, we need to stop shipping later versions of the module in the base system. Differential Revision: https://reviews.freebsd.org/D46223 (cherry picked from commit 86dd740dd73aa88477ff450b2359abda1ad68534) --- ObsoleteFiles.inc | 3 + secure/lib/libcrypto/modules/Makefile | 3 +- secure/lib/libcrypto/modules/fips/Makefile | 341 ----------------------------- 3 files changed, 4 insertions(+), 343 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index f74ace221420..1a7441b80158 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20240827: retire fips.so +OLD_LIBS+=usr/lib/ossl-modules/fips.so + # 20240824: sound examples: midi.c moved out of oss/ OLD_FILES+=share/examples/sound/oss/midi.c diff --git a/secure/lib/libcrypto/modules/Makefile b/secure/lib/libcrypto/modules/Makefile index 2f9e5b40fe3e..69a8470ff20b 100644 --- a/secure/lib/libcrypto/modules/Makefile +++ b/secure/lib/libcrypto/modules/Makefile @@ -1,5 +1,4 @@ - -SUBDIR= fips legacy +SUBDIR= legacy SUBDIR_PARALLEL= .include diff --git a/secure/lib/libcrypto/modules/fips/Makefile b/secure/lib/libcrypto/modules/fips/Makefile deleted file mode 100644 index 8843cb9717c9..000000000000 --- a/secure/lib/libcrypto/modules/fips/Makefile +++ /dev/null @@ -1,341 +0,0 @@ - -SHLIB_NAME?= fips.so - -CFLAGS+= -DFIPS_MODULE - -SRCS+= fips_entry.c fipsprov.c self_test.c self_test_kats.c - -.include "../../Makefile.common" - -# crypto -SRCS+= provider_core.c provider_predefined.c \ - core_fetch.c core_algorithm.c core_namemap.c self_test_core.c - -SRCS+= cpuid.c ctype.c -.if defined(ASM_aarch64) -SRCS+= arm64cpuid.S armcap.c -ACFLAGS.arm64cpuid.S= -march=armv8-a+crypto -.elif defined(ASM_amd64) -SRCS+= x86_64cpuid.S -.elif defined(ASM_arm) -SRCS+= armv4cpuid.S armcap.c -.elif defined(ASM_i386) -SRCS+= x86cpuid.S -.elif defined(ASM_powerpc) -SRCS+= ppccpuid.S ppccap.c -.elif defined(ASM_powerpc64) -SRCS+= ppccpuid.S ppccap.c -.elif defined(ASM_powerpc64le) -SRCS+= ppccpuid.S ppccap.c -.else -SRCS+= mem_clr.c -.endif - -# crypto/aes -SRCS+= aes_cfb.c aes_ecb.c aes_ige.c aes_misc.c aes_ofb.c aes_wrap.c -.if defined(ASM_aarch64) -SRCS+= aes_cbc.c aes_core.c aesv8-armx.S vpaes-armv8.S -ACFLAGS.aesv8-armx.S= -march=armv8-a+crypto -.elif defined(ASM_amd64) -SRCS+= aes-x86_64.S aesni-mb-x86_64.S aesni-sha1-x86_64.S -SRCS+= aesni-sha256-x86_64.S aesni-x86_64.S bsaes-x86_64.S vpaes-x86_64.S -.elif defined(ASM_arm) -SRCS+= aes_cbc.c aes-armv4.S aesv8-armx.S bsaes-armv7.S -.elif defined(ASM_i386) -SRCS+= aes-586.S aesni-x86.S vpaes-x86.S -.elif defined(ASM_powerpc) -SRCS+= aes_cbc.c aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S -.elif defined(ASM_powerpc64) -SRCS+= aes_cbc.c aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S -.elif defined(ASM_powerpc64le) -SRCS+= aes_cbc.c aes_core.c aes-ppc.S vpaes-ppc.S aesp8-ppc.S -.else -SRCS+= aes_cbc.c aes_core.c -.endif - -# crypto/bn -SRCS+= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c \ - bn_mod.c bn_conv.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \ - bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_sqr.c \ - bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c \ - bn_intern.c bn_dh.c bn_rsa_fips186_4.c bn_const.c -.if defined(ASM_aarch64) -SRCS+= armv8-mont.S bn_asm.c -.elif defined(ASM_amd64) -SRCS+= rsaz-avx2.S rsaz-avx512.S rsaz-x86_64.S rsaz_exp.c rsaz_exp_x2.c -SRCS+= x86_64-gcc.c x86_64-gf2m.S x86_64-mont.S x86_64-mont5.S -.elif defined(ASM_arm) -SRCS+= armv4-gf2m.S armv4-mont.S bn_asm.c -.elif defined(ASM_i386) -SRCS+= bn-586.S co-586.S x86-gf2m.S x86-mont.S -.elif defined(ASM_powerpc) -SRCS+= bn_ppc.c bn-ppc.S ppc-mont.S -.elif defined(ASM_powerpc64) -SRCS+= bn_ppc.c bn-ppc.S ppc-mont.S -.elif defined(ASM_powerpc64le) -SRCS+= bn_ppc.c bn-ppc.S ppc-mont.S -.else -SRCS+= bn_asm.c -.endif - -# crypto/buffer -SRCS+= buffer.c - -# crypto/cmac -SRCS+= cmac.c - -# crypto/des -SRCS+= set_key.c ecb3_enc.c -.if defined(ASM_i386) -SRCS+= crypt586.S des-586.S -.else -SRCS+= des_enc.c fcrypt_b.c -.endif - -# crypto/dh -SRCS+= dh_lib.c dh_key.c dh_group_params.c dh_check.c dh_backend.c dh_gen.c \ - dh_kdf.c - -# crypto/dsa -SRCS+= dsa_sign.c dsa_vrf.c dsa_lib.c dsa_ossl.c dsa_check.c \ - dsa_key.c dsa_backend.c dsa_gen.c - -# crypto/ec -SRCS+= ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \ - ec_curve.c ec_check.c ec_key.c ec_kmeth.c ecx_key.c ec_asn1.c \ - ec2_smpl.c \ - ecp_oct.c ec2_oct.c ec_oct.c ecdh_ossl.c \ - ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c curve25519.c \ - curve448/f_generic.c curve448/scalar.c \ - curve448/curve448_tables.c curve448/eddsa.c curve448/curve448.c \ - ec_backend.c ecx_backend.c ecdh_kdf.c curve448/arch_64/f_impl64.c \ - curve448/arch_32/f_impl32.c -SRCS+= cryptlib.c params.c params_from_text.c bsearch.c ex_data.c o_str.c \ - threads_pthread.c threads_none.c initthread.c \ - context.c sparse_array.c asn1_dsa.c packet.c param_build.c \ - param_build_set.c der_writer.c threads_lib.c params_dup.c - -.include -.if ${MACHINE_ABI:Mlittle-endian} && ${MACHINE_ABI:Mlong64} -SRCS+= ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c -.endif -.if defined(ASM_aarch64) -SRCS+= ecp_nistz256-armv8.S ecp_nistz256.c -.elif defined(ASM_amd64) -SRCS+= ecp_nistz256-x86_64.S ecp_nistz256.c x25519-x86_64.S -.elif defined(ASM_arm) -SRCS+= ecp_nistz256-armv4.S ecp_nistz256.c -.elif defined(ASM_i386) -SRCS+= ecp_nistz256-x86.S ecp_nistz256.c -.elif defined(ASM_powerpc64) -SRCS+= ecp_nistp521-ppc64.S ecp_nistz256-ppc64.S ecp_nistz256.c ecp_ppc.c x25519-ppc64.S -.elif defined(ASM_powerpc64le) -SRCS+= ecp_nistp521-ppc64.S ecp_nistz256-ppc64.S ecp_nistz256.c ecp_ppc.c x25519-ppc64.S -.endif - -# crypto/evp -SRCS+= digest.c evp_enc.c evp_lib.c evp_fetch.c evp_utils.c \ - mac_lib.c mac_meth.c keymgmt_meth.c keymgmt_lib.c kdf_lib.c kdf_meth.c \ - m_sigver.c pmeth_lib.c signature.c p_lib.c pmeth_gn.c exchange.c \ - evp_rand.c asymcipher.c kem.c dh_support.c ec_support.c pmeth_check.c - -# crypto/ffc -SRCS+= ffc_params.c ffc_params_generate.c ffc_key_generate.c \ - ffc_params_validate.c ffc_key_validate.c ffc_backend.c \ - ffc_dh.c - -# crypto/hmac -SRCS+= hmac.c - -# crypto/lhash -SRCS+= lhash.c - -# crypto/modes -SRCS+= cbc128.c ctr128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c -SRCS+= wrap128.c -.if defined(ASM_aarch64) -SRCS+= ghashv8-armx.S aes-gcm-armv8_64.S -ACFLAGS.ghashv8-armx.S= -march=armv8-a+crypto -.elif defined(ASM_amd64) -SRCS+= aesni-gcm-x86_64.S ghash-x86_64.S -.elif defined(ASM_arm) -SRCS+= ghash-armv4.S ghashv8-armx.S -.elif defined(ASM_i386) -SRCS+= ghash-x86.S -.elif defined(ASM_powerpc) -SRCS+= ghashp8-ppc.S -.elif defined(ASM_powerpc64) -SRCS+= ghashp8-ppc.S -.elif defined(ASM_powerpc64le) -SRCS+= ghashp8-ppc.S -.endif - -# crypto/property -SRCS+= property_string.c property_parse.c property_query.c property.c defn_cache.c - -# crypto/rand -SRCS+= rand_lib.c - -# crypto/rsa -SRCS+= rsa_ossl.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_pk1.c \ - rsa_none.c rsa_oaep.c rsa_chk.c rsa_pss.c rsa_x931.c rsa_crpt.c \ - rsa_sp800_56b_gen.c rsa_sp800_56b_check.c rsa_backend.c \ - rsa_mp_names.c rsa_schemes.c -SRCS+= rsa_acvp_test_params.c - -# crypto/sha -SRCS+= sha1dgst.c sha256.c sha512.c sha3.c -.if defined(ASM_aarch64) -SRCS+= keccak1600-armv8.S sha1-armv8.S sha256-armv8.S sha512-armv8.S -.elif defined(ASM_amd64) -SRCS+= keccak1600-x86_64.S sha1-mb-x86_64.S sha1-x86_64.S -SRCS+= sha256-mb-x86_64.S sha256-x86_64.S sha512-x86_64.S -.elif defined(ASM_arm) -SRCS+= keccak1600-armv4.S sha1-armv4-large.S sha256-armv4.S sha512-armv4.S -.elif defined(ASM_i386) -SRCS+= keccak1600.c sha1-586.S sha256-586.S sha512-586.S -.elif defined(ASM_powerpc) -SRCS+= keccak1600.c sha_ppc.c sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S -.elif defined(ASM_powerpc64) -SRCS+= keccak1600-ppc64.S sha_ppc.c sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S -.elif defined(ASM_powerpc64le) -SRCS+= keccak1600-ppc64.S sha_ppc.c sha1-ppc.S sha256-ppc.S sha512-ppc.S sha256p8-ppc.S sha512p8-ppc.S -.else -SRCS+= keccak1600.c -.endif - -# crypto/stack -SRCS+= stack.c - -# common -SRCS+= capabilities.c bio_prov.c digest_to_nid.c \ - securitycheck.c provider_seeding.c -SRCS+= securitycheck_fips.c - -# common/der -SRCS+= der_rsa_gen.c der_rsa_key.c -SRCS+= der_rsa_sig.c - -SRCS+= der_dsa_gen.c der_dsa_key.c -SRCS+= der_dsa_sig.c - -SRCS+= der_ec_gen.c der_ec_key.c -SRCS+= der_ec_sig.c - -SRCS+= der_ecx_gen.c der_ecx_key.c - -SRCS+= der_wrap_gen.c - -# asymciphers -SRCS+= rsa_enc.c - -# ciphers -SRCS+= ciphercommon.c ciphercommon_hw.c ciphercommon_block.c \ - ciphercommon_gcm.c ciphercommon_gcm_hw.c \ - ciphercommon_ccm.c ciphercommon_ccm_hw.c -SRCS+= cipher_aes.c cipher_aes_hw.c \ - cipher_aes_xts.c cipher_aes_xts_hw.c \ - cipher_aes_gcm.c cipher_aes_gcm_hw.c \ - cipher_aes_ccm.c cipher_aes_ccm_hw.c \ - cipher_aes_wrp.c \ - cipher_aes_cbc_hmac_sha.c \ - cipher_aes_cbc_hmac_sha256_hw.c cipher_aes_cbc_hmac_sha1_hw.c \ - cipher_cts.c -SRCS+= cipher_aes_xts_fips.c -SRCS+= cipher_tdes.c cipher_tdes_common.c cipher_tdes_hw.c - -# digests -SRCS+= digestcommon.c -SRCS+= sha2_prov.c -SRCS+= sha3_prov.c - -# exchange -SRCS+= dh_exch.c -SRCS+= ecx_exch.c -SRCS+= ecdh_exch.c -SRCS+= kdf_exch.c - -# kdfs -SRCS+= tls1_prf.c -SRCS+= hkdf.c -SRCS+= kbkdf.c -SRCS+= pbkdf2.c -SRCS+= pbkdf2_fips.c -SRCS+= sskdf.c -SRCS+= sshkdf.c -SRCS+= x942kdf.c - -# kem -SRCS+= rsa_kem.c - -# keymgmt -SRCS+= dh_kmgmt.c -SRCS+= dsa_kmgmt.c -SRCS+= ec_kmgmt.c -SRCS+= ecx_kmgmt.c -SRCS+= kdf_legacy_kmgmt.c -SRCS+= mac_legacy_kmgmt.c -SRCS+= rsa_kmgmt.c - -# macs -SRCS+= gmac_prov.c -SRCS+= hmac_prov.c -SRCS+= kmac_prov.c -SRCS+= cmac_prov.c - -# rands -SRCS+= drbg.c test_rng.c drbg_ctr.c drbg_hash.c drbg_hmac.c crngt.c - -# signature -SRCS+= dsa_sig.c -SRCS+= eddsa_sig.c ecdsa_sig.c -SRCS+= mac_legacy_sig.c -SRCS+= rsa_sig.c - -# ssl -SRCS+= record/tls_pad.c s3_cbc.c - -.include - -.if defined(ASM_${MACHINE_CPUARCH}) -.PATH: ${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH} -.if defined(ASM_amd64) -.PATH: ${LCRYPTO_SRC}/crypto/bn/asm -.endif -.elif defined(ASM_${MACHINE_ARCH}) -.PATH: ${SRCTOP}/sys/crypto/openssl/${MACHINE_ARCH} -.endif - -.PATH: ${LCRYPTO_SRC}/crypto \ - ${LCRYPTO_SRC}/crypto/aes \ - ${LCRYPTO_SRC}/crypto/bio \ - ${LCRYPTO_SRC}/crypto/bn \ - ${LCRYPTO_SRC}/crypto/buffer \ - ${LCRYPTO_SRC}/crypto/cmac \ - ${LCRYPTO_SRC}/crypto/des \ - ${LCRYPTO_SRC}/crypto/dh \ - ${LCRYPTO_SRC}/crypto/dsa \ - ${LCRYPTO_SRC}/crypto/ec \ - ${LCRYPTO_SRC}/crypto/evp \ - ${LCRYPTO_SRC}/crypto/ffc \ - ${LCRYPTO_SRC}/crypto/hmac \ - ${LCRYPTO_SRC}/crypto/lhash \ - ${LCRYPTO_SRC}/crypto/modes \ - ${LCRYPTO_SRC}/crypto/property \ - ${LCRYPTO_SRC}/crypto/rand \ - ${LCRYPTO_SRC}/crypto/rsa \ - ${LCRYPTO_SRC}/crypto/sha \ - ${LCRYPTO_SRC}/crypto/stack \ - ${LCRYPTO_SRC}/providers/fips \ - ${LCRYPTO_SRC}/providers/common/der \ - ${LCRYPTO_SRC}/providers/implementations/asymciphers \ - ${LCRYPTO_SRC}/providers/implementations/ciphers \ - ${LCRYPTO_SRC}/providers/implementations/digests \ - ${LCRYPTO_SRC}/providers/implementations/exchange \ - ${LCRYPTO_SRC}/providers/implementations/kdfs \ - ${LCRYPTO_SRC}/providers/implementations/kem \ - ${LCRYPTO_SRC}/providers/implementations/keymgmt \ - ${LCRYPTO_SRC}/providers/implementations/macs \ - ${LCRYPTO_SRC}/providers/implementations/rands \ - ${LCRYPTO_SRC}/providers/implementations/signature \ - ${LCRYPTO_SRC}/ssl From nobody Sat Sep 7 05:13:40 2024 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 4X11Td0MHmz5WnRS; Sat, 07 Sep 2024 05:13: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X11Tc6vw9z57p8; Sat, 7 Sep 2024 05:13:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725686021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nPd404c0x0/uq6THyguf76t3LPdLvEuujYVl+uVAK7k=; b=SB8ajcMzmtXEw8/vLeaqzPGBppoXVfN6LD5xvt2AE0DSxPiv6IgRwS7g3JuzdaLfV1M5nW l5GF/fnukBQ7BydH0zGTqc9YeCA2eO9abnDKz431EXu1CJgrmZ56hiRzvriem2rOhNcixu DfcqdmlJWcdtQRjAZQ3nEb3K2DSmoJm8XcRIfse1L6+/hp5QMcP+yBhS4KGHxc4r/WKW6O PH2mm+Qu8fdI0H7UNTgT4kMZI7oh00r+b6bJdpW1AH451vaPjezcLgTh1DIihASPkxypgn 7+dg/alOS4Ypjth6+egzBlJuNwut/yZqMElgS4cz3MgPdun3dwkISUAqFwfQNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725686021; a=rsa-sha256; cv=none; b=usbs6APo490+CoJWobzpSbIKPSgd/Jzcy0tCo0l38Erdc3UrqvnKq9mOE02BzsYF6D1z17 hA09BLHOuuhkvyxR28YrKiK+0laV+cDeZskrGeFHqlvhmMsqsKxCgl1X/FjQW5tOvmfzim /OhPBE9LY626w2Rb488XcJAAQjuZ/CxBrWRDRNmwYspEKBesiVgMEdPpAKnA7Tf0RlyEsB Cd5jRIw6DI/ajbFSIJnFuvUmnIOVQBkxJKD/1cW1gLFUHg8tbpRkeuxEhFLMTYGIXXlJq9 Uv+n3hekIVI3qqyjJgCGn5kes/5js/ZRbTBHcg0nwH7xyWg2cHtA21OGeK/Vgw== 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=1725686021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nPd404c0x0/uq6THyguf76t3LPdLvEuujYVl+uVAK7k=; b=aBnWj1vH3ntdtKZtt3jM/oIFB5z4DmukW6RDGEjaUHiAdF3PU5RXkYpJYUvrbslWT8ow5E GE6VqP+wg55ijozz6jwrt378s+dnhe+cpQpZMyBcC9yb9VVRurK0xLK4lJ0kOF/bTf3LIC l8CRs0QCPUWabx7Alc511AIOOL5UGeQT4Rk3422gEbu53ZRau7VowGtHNBiWkN4c1pEYz6 bDLvsrbc+/BoUKxoCvV2EbvRz+rgfoYCK1s0U6j88SEAumTzEYhqK2SxAgQwDeZVFUQc7/ 1ZrXhziTARrC2gTh8fIAqNeM5ntMpRRbXSRw9oDDHQ1zXxXMPexWSQT+X+nHWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X11Tc6WC0zMr2; Sat, 7 Sep 2024 05:13:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4875DeAf099528; Sat, 7 Sep 2024 05:13:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4875Dekl099525; Sat, 7 Sep 2024 05:13:40 GMT (envelope-from git) Date: Sat, 7 Sep 2024 05:13:40 GMT Message-Id: <202409070513.4875Dekl099525@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 0b683336b211 - stable/14 - tpm: Register TPM as entropy source 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0b683336b211e74b6d7f21ecf517c6591370b793 Auto-Submitted: auto-generated The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=0b683336b211e74b6d7f21ecf517c6591370b793 commit 0b683336b211e74b6d7f21ecf517c6591370b793 Author: Jean-François Hren AuthorDate: 2024-08-31 17:53:02 +0000 Commit: Kevin Bowling CommitDate: 2024-09-07 05:13:14 +0000 tpm: Register TPM as entropy source TPM is defined as an entropy and is called every 10 seconds. However it was not registered and calls were discarded. Signed-off-by: Jean-François Hren Pull Request: https://github.com/freebsd/freebsd-src/pull/1398 (cherry picked from commit d7c87526b1c3d32d3ac3fee8c59d92405b7621b9) --- sys/dev/tpm/tpm20.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/tpm/tpm20.c b/sys/dev/tpm/tpm20.c index da090bc068c9..393552172656 100644 --- a/sys/dev/tpm/tpm20.c +++ b/sys/dev/tpm/tpm20.c @@ -203,6 +203,7 @@ tpm20_init(struct tpm_sc *sc) tpm20_release(sc); #ifdef TPM_HARVEST + random_harvest_register_source(RANDOM_PURE_TPM); TIMEOUT_TASK_INIT(taskqueue_thread, &sc->harvest_task, 0, tpm20_harvest, sc); taskqueue_enqueue_timeout(taskqueue_thread, &sc->harvest_task, 0); @@ -219,6 +220,7 @@ tpm20_release(struct tpm_sc *sc) #ifdef TPM_HARVEST if (device_is_attached(sc->dev)) taskqueue_drain_timeout(taskqueue_thread, &sc->harvest_task); + random_harvest_deregister_source(RANDOM_PURE_TPM); #endif if (sc->buf != NULL) From nobody Sat Sep 7 05:14:22 2024 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 4X11VR41ZCz5WnRW; Sat, 07 Sep 2024 05:14: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X11VR130tz58Ds; Sat, 7 Sep 2024 05:14:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725686063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aiD4/o31Fu8RxByRkfEWCUtfhA0raGkiX+6phDGIMQ8=; b=AJJjVzPjhXARyJf+1XwVEI0GnD+1BUDD8I7HVgDc8ZMrPMFQURYSGAC7hsljoXkL/jh868 GnGzo76lgaHAhqh0X127TuYzUoSggP7saI1cS4FRvZNiH+v5c9egsMrtjE/EQSajyQfUJl Hgh5CNkLl2XBxpo/fsrbcKHI8dj/U2ITmcM/G+ILR+nTr//WxS63dePSkHqQmT8dMkYIvn jmt0oBoqIaW5UDnsVsylT4yO11Hrtdoyad74MjDauJ0nzvfKpokCVKpQuxEi/Ou/+2zxf1 03Ss2Yn/xeqk5u1CqE6mqhHsh7as+PMBAgQBjo01NjgoXDVbi8rbbvdyvIdK8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725686063; a=rsa-sha256; cv=none; b=oSoZRujrDa0WFOFurjTe8mfQAP7yEi0+xm50m64sUp+z8zzFIz/t8yYoZm8PfsOumGcqV+ 639To08QlFMQzaqcKwiq2y8YnxxnFL2PzrlyvX8vi0GCp/QSZ+7NKaq5NRCvKACtUVTPMG 0dLnZc4fK3wkViel1gvkUrGojByhEbCdP4gV6FynVLB9rGtj0ae7Ixta2wSplzHw+uXTxA KxoHPo1i3WhmvOtRx4IW5Z1bOxamjQdMEWIA86kSxO9fNvJbWo/7ES0fMJGBV343oafwCJ DTPFfQRpJlTw+xb9BHQ1L/kwVwjiZp1tprWhXEUD+szYgKmhfv12PFFXQ8DR8A== 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=1725686063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aiD4/o31Fu8RxByRkfEWCUtfhA0raGkiX+6phDGIMQ8=; b=GY6L+UT4Fdl5y+c9JCcBuLYV0DvKmt0h5V78zpwk2Ws7w83dgbicnKA9TU+8Tn5SJBosWO SQ/C7TPQwosxH9r1MNe9mnSsrY2SQiPmbYA4H2b5OcuGB0IREG7myYsm39DVrHWA36jKJL EuK42b/bQ1zfG/R03xRmYkR9ku3+n2QTiHqhkXZf8MzwI4w8ebfbHKfITnve/JcSW7yggD 3JHK1Ojih4/wRl4QcsXaPi6xJTpMzxKaCAut3KURnvuzNlwwuh68n0jF68Vlw9MxGRidtV ngGyi4ZWsEa3Qxv7u7A2Ofk9h+84nFXe+e3RcsAPg6YfMeEPgBagmvzgf0+Ejg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X11VR0fCxzN0S; Sat, 7 Sep 2024 05:14:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4875EMkK099755; Sat, 7 Sep 2024 05:14:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4875EMLo099752; Sat, 7 Sep 2024 05:14:22 GMT (envelope-from git) Date: Sat, 7 Sep 2024 05:14:22 GMT Message-Id: <202409070514.4875EMLo099752@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 4ba372dbc105 - stable/13 - tpm: Register TPM as entropy source 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4ba372dbc1057ef080bcf9353cdebd3958c33b9c Auto-Submitted: auto-generated The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=4ba372dbc1057ef080bcf9353cdebd3958c33b9c commit 4ba372dbc1057ef080bcf9353cdebd3958c33b9c Author: Jean-François Hren AuthorDate: 2024-08-31 17:53:02 +0000 Commit: Kevin Bowling CommitDate: 2024-09-07 05:14:06 +0000 tpm: Register TPM as entropy source TPM is defined as an entropy and is called every 10 seconds. However it was not registered and calls were discarded. Signed-off-by: Jean-François Hren Pull Request: https://github.com/freebsd/freebsd-src/pull/1398 (cherry picked from commit d7c87526b1c3d32d3ac3fee8c59d92405b7621b9) --- sys/dev/tpm/tpm20.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/tpm/tpm20.c b/sys/dev/tpm/tpm20.c index dc483ba9d4fc..6865403960b3 100644 --- a/sys/dev/tpm/tpm20.c +++ b/sys/dev/tpm/tpm20.c @@ -206,6 +206,7 @@ tpm20_init(struct tpm_sc *sc) tpm20_release(sc); #ifdef TPM_HARVEST + random_harvest_register_source(RANDOM_PURE_TPM); TIMEOUT_TASK_INIT(taskqueue_thread, &sc->harvest_task, 0, tpm20_harvest, sc); taskqueue_enqueue_timeout(taskqueue_thread, &sc->harvest_task, 0); @@ -222,6 +223,7 @@ tpm20_release(struct tpm_sc *sc) #ifdef TPM_HARVEST if (device_is_attached(sc->dev)) taskqueue_drain_timeout(taskqueue_thread, &sc->harvest_task); + random_harvest_deregister_source(RANDOM_PURE_TPM); #endif if (sc->buf != NULL) From nobody Sat Sep 7 16:30:29 2024 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 4X1JVY6Tm1z5W1SH; Sat, 07 Sep 2024 16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1JVY5F2gz4NQq; Sat, 7 Sep 2024 16: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=1725726629; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yYx3r8y/bPFT+mr61X6x6ydXoC3Fcdfrk+KNQcnPtSg=; b=Cy3hbLn+5nNm+QTaI/qp8CZwp+0k5AgsHFOdkz7pMT16VOM91tuiSR8on8wtnw/e98fWfZ znpxBToeOsYBzZTLrB/rtLjWtZI56uOqsqU+bTh0zGTWZ+wkU6MeRhoMIo7Bdm3BYzoG/H mK7E0Bu0Q68rU3MUF/e2ThNprpeIkoQeZP7ePC24AK8gxlit/qWG8c+/AeqNVky9Ea/KSz L+z6vvzATC0+TDZx0v/gU/oSRwZkhNEghRYP9L0G/4N/SUx048KUmgNFkrDjk91oceGpG4 xo/fRgFbwghzKb2Zc66FEdRf49PLZYdhTPnL1gO8Y24bxO6TZtVEo0ynOn6rqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725726629; a=rsa-sha256; cv=none; b=SpzSp9S2JF4jpPcfeOi1p/KVfmYh0nRiriOG/D22p64Xxr5HaJOhwmcxcvK0nf7BOOmY9c RcChP60ne0zmtmSW2/MYABoYry5JigAvIH9xiXQIkdenu+hogdY+Rpt7oShE38CGsuo2PM fc7JvyrzyOO11oWM9lCBQeL6tk90K1Vmfy5Avis1uUwGCxEAuzgK6/IL0ru+GlCRykjem/ wjiM+jN/SfzLeroP6E1/aqomw66dnxuSnZs6Gy6QFZHfDatEKyJGzfYJTcjbnFXgYJAAo7 0ueZKEQGw1IzQhyrKUgpj7PrloPtSKKH1tUy0xRacLvXwuydBtCisFRT93HD8A== 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=1725726629; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yYx3r8y/bPFT+mr61X6x6ydXoC3Fcdfrk+KNQcnPtSg=; b=h9pO0aqO/HEPFlIf9EJo8W+upC1GN9Gg28UM1KCj/2ky/uUqK9m2ii1EIPZjpuP5aMIYOt +KpfL84ks1YIviW6yWe0lexlxxKdPqsphwS5BwX0dr7iW4tLvQ5h4ARuF32ryiMQld77oc SdMOw0eCwotpxZXCp/i0/QLY9HwbXf010g+SdYjitt8GuagZC6su8ydW7lBFJIsgosdbpa EHGBRY77L/wvgZSajChy/zhzhsnw/YtbHxMhEZXblwLGosIPVBJq6hy84J83kRk9wH0C9y UoDAN2CvpUvw3cJMzLd/2SlDFJY1KwnZWbbkvNtN5US6plcwLK0NhhB4amzWGw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1JVY4rdGzjmX; Sat, 7 Sep 2024 16:30:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 487GUToi050254; Sat, 7 Sep 2024 16:30:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 487GUTMg050251; Sat, 7 Sep 2024 16:30:29 GMT (envelope-from git) Date: Sat, 7 Sep 2024 16:30:29 GMT Message-Id: <202409071630.487GUTMg050251@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 6b9c7f29b0cd - stable/13 - Remove "All Rights Reserved" from FreeBSD Foundation copyrights 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 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/13 X-Git-Reftype: branch X-Git-Commit: 6b9c7f29b0cdf0da752927ca173f590cdf385c89 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6b9c7f29b0cdf0da752927ca173f590cdf385c89 commit 6b9c7f29b0cdf0da752927ca173f590cdf385c89 Author: Ed Maste AuthorDate: 2024-07-30 16:02:17 +0000 Commit: Ed Maste CommitDate: 2024-09-07 16:30:19 +0000 Remove "All Rights Reserved" from FreeBSD Foundation copyrights These ones were unambiguous cases where the Foundation was the only listed copyright holder. Sponsored by: The FreeBSD Foundation (cherry picked from commit 5c2bc3db201a4fe8d7911cf816bea104d5dc2138) (cherry picked from commit f06d322e9d925ab56a4aa8210a67637d4d341ab6) --- include/xlocale.h | 1 - lib/libcasper/services/cap_dns/cap_dns.c | 1 - lib/libcasper/services/cap_dns/cap_dns.h | 1 - lib/libcasper/services/cap_dns/tests/dns_test.c | 1 - lib/libcasper/services/cap_grp/cap_grp.c | 1 - lib/libcasper/services/cap_grp/cap_grp.h | 1 - lib/libcasper/services/cap_grp/tests/grp_test.c | 1 - lib/libcasper/services/cap_pwd/cap_pwd.c | 1 - lib/libcasper/services/cap_pwd/cap_pwd.h | 1 - lib/libcasper/services/cap_pwd/tests/pwd_test.c | 1 - lib/libcasper/services/cap_sysctl/cap_sysctl.c | 1 - lib/libcasper/services/cap_sysctl/cap_sysctl.h | 1 - lib/libcasper/services/cap_sysctl/tests/sysctl_test.c | 1 - lib/libnv/common_impl.h | 1 - lib/libnv/tests/nvlist_add_test.c | 1 - lib/libnv/tests/nvlist_exists_test.c | 1 - lib/libnv/tests/nvlist_free_test.c | 1 - lib/libnv/tests/nvlist_get_test.c | 1 - lib/libnv/tests/nvlist_move_test.c | 1 - lib/libnv/tests/nvlist_send_recv_test.c | 1 - lib/libproc/proc_bkpt.c | 1 - lib/libproc/proc_regs.c | 1 - lib/libproc/proc_rtld.c | 1 - lib/librtld_db/librtld_db.3 | 1 - lib/librtld_db/rtld_db.c | 1 - lib/librtld_db/rtld_db.h | 1 - lib/libthr/plockstat.d | 1 - lib/libthr/thread/thr_malloc.c | 1 - lib/libthread_db/arch/aarch64/libpthread_md.c | 1 - libexec/ftpd/blacklist.c | 1 - libexec/ftpd/blacklist_client.h | 1 - libexec/rc/rc.d/blacklistd | 1 - libexec/rtld-elf/aarch64/reloc.c | 1 - libexec/rtld-elf/aarch64/rtld_start.S | 1 - libexec/rtld-elf/rtld_malloc.h | 1 - sbin/hastctl/hastctl.8 | 1 - sbin/hastctl/hastctl.c | 1 - sbin/hastd/activemap.c | 1 - sbin/hastd/activemap.h | 1 - sbin/hastd/control.c | 1 - sbin/hastd/control.h | 1 - sbin/hastd/ebuf.c | 1 - sbin/hastd/ebuf.h | 1 - sbin/hastd/hast_proto.h | 1 - sbin/hastd/hastd.8 | 1 - sbin/hastd/hastd.h | 1 - sbin/hastd/metadata.c | 1 - sbin/hastd/metadata.h | 1 - sbin/hastd/nv.c | 1 - sbin/hastd/nv.h | 1 - sbin/hastd/proto.c | 1 - sbin/hastd/proto.h | 1 - sbin/hastd/proto_impl.h | 1 - sbin/hastd/proto_socketpair.c | 1 - sbin/hastd/proto_uds.c | 1 - sbin/hastd/rangelock.c | 1 - sbin/hastd/rangelock.h | 1 - sbin/hastd/synch.h | 1 - share/examples/hast/ucarp.sh | 1 - share/examples/hast/ucarp_down.sh | 1 - share/examples/hast/ucarp_up.sh | 1 - share/examples/kld/khelp/h_example.c | 1 - tests/sys/fs/fusefs/unlink.cc | 1 - tests/sys/kern/kern_copyin.c | 1 - tools/regression/capsicum/syscalls/cap_fcntls_limit.c | 1 - tools/regression/capsicum/syscalls/cap_getmode.c | 1 - tools/regression/capsicum/syscalls/cap_ioctls_limit.c | 1 - tools/regression/capsicum/syscalls/misc.c | 1 - tools/regression/capsicum/syscalls/misc.h | 1 - tools/test/popss/popss.c | 1 - tools/test/vm86/vm86_test.c | 1 - tools/test/vm86/vm86_test_asm.s | 1 - tools/tools/vt/mkkfont/mkkfont.c | 1 - usr.bin/proccontrol/proccontrol.1 | 1 - usr.bin/proccontrol/proccontrol.c | 1 - 75 files changed, 75 deletions(-) diff --git a/include/xlocale.h b/include/xlocale.h index f39000d6b373..cc2fc0839593 100644 --- a/include/xlocale.h +++ b/include/xlocale.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011, 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by David Chisnall under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_dns/cap_dns.c b/lib/libcasper/services/cap_dns/cap_dns.c index 4d0a3bb222ac..1e552d2dc252 100644 --- a/lib/libcasper/services/cap_dns/cap_dns.c +++ b/lib/libcasper/services/cap_dns/cap_dns.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012-2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_dns/cap_dns.h b/lib/libcasper/services/cap_dns/cap_dns.h index 4bf8e3648a2d..556cac1158d2 100644 --- a/lib/libcasper/services/cap_dns/cap_dns.h +++ b/lib/libcasper/services/cap_dns/cap_dns.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_dns/tests/dns_test.c b/lib/libcasper/services/cap_dns/tests/dns_test.c index 3786414053ad..fda2dcf44062 100644 --- a/lib/libcasper/services/cap_dns/tests/dns_test.c +++ b/lib/libcasper/services/cap_dns/tests/dns_test.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_grp/cap_grp.c b/lib/libcasper/services/cap_grp/cap_grp.c index 6a5ad84fcd22..025ce00adf56 100644 --- a/lib/libcasper/services/cap_grp/cap_grp.c +++ b/lib/libcasper/services/cap_grp/cap_grp.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_grp/cap_grp.h b/lib/libcasper/services/cap_grp/cap_grp.h index a478a91cf760..9be2e7a78dd5 100644 --- a/lib/libcasper/services/cap_grp/cap_grp.h +++ b/lib/libcasper/services/cap_grp/cap_grp.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_grp/tests/grp_test.c b/lib/libcasper/services/cap_grp/tests/grp_test.c index c120c61e0cf1..18c11746d3a4 100644 --- a/lib/libcasper/services/cap_grp/tests/grp_test.c +++ b/lib/libcasper/services/cap_grp/tests/grp_test.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_pwd/cap_pwd.c b/lib/libcasper/services/cap_pwd/cap_pwd.c index 263bc4cfd582..6550c35d1592 100644 --- a/lib/libcasper/services/cap_pwd/cap_pwd.c +++ b/lib/libcasper/services/cap_pwd/cap_pwd.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_pwd/cap_pwd.h b/lib/libcasper/services/cap_pwd/cap_pwd.h index 35e0e177bc62..496beea26392 100644 --- a/lib/libcasper/services/cap_pwd/cap_pwd.h +++ b/lib/libcasper/services/cap_pwd/cap_pwd.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_pwd/tests/pwd_test.c b/lib/libcasper/services/cap_pwd/tests/pwd_test.c index e56c037536e2..20c76102847a 100644 --- a/lib/libcasper/services/cap_pwd/tests/pwd_test.c +++ b/lib/libcasper/services/cap_pwd/tests/pwd_test.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_sysctl/cap_sysctl.c b/lib/libcasper/services/cap_sysctl/cap_sysctl.c index 7d7f280fd00b..25793bd3c41d 100644 --- a/lib/libcasper/services/cap_sysctl/cap_sysctl.c +++ b/lib/libcasper/services/cap_sysctl/cap_sysctl.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013, 2018 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_sysctl/cap_sysctl.h b/lib/libcasper/services/cap_sysctl/cap_sysctl.h index fd7d051f21c8..51243128a683 100644 --- a/lib/libcasper/services/cap_sysctl/cap_sysctl.h +++ b/lib/libcasper/services/cap_sysctl/cap_sysctl.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libcasper/services/cap_sysctl/tests/sysctl_test.c b/lib/libcasper/services/cap_sysctl/tests/sysctl_test.c index 2e5ec83e1c82..41c49bdbeba2 100644 --- a/lib/libcasper/services/cap_sysctl/tests/sysctl_test.c +++ b/lib/libcasper/services/cap_sysctl/tests/sysctl_test.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013, 2018 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/common_impl.h b/lib/libnv/common_impl.h index 03de9749aaf6..27af1710540a 100644 --- a/lib/libnv/common_impl.h +++ b/lib/libnv/common_impl.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_add_test.c b/lib/libnv/tests/nvlist_add_test.c index 4478efadf4e0..28f2b6f45446 100644 --- a/lib/libnv/tests/nvlist_add_test.c +++ b/lib/libnv/tests/nvlist_add_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_exists_test.c b/lib/libnv/tests/nvlist_exists_test.c index 7450256ab760..808692feb85b 100644 --- a/lib/libnv/tests/nvlist_exists_test.c +++ b/lib/libnv/tests/nvlist_exists_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_free_test.c b/lib/libnv/tests/nvlist_free_test.c index c715aef6657b..bb5eeaf7d04c 100644 --- a/lib/libnv/tests/nvlist_free_test.c +++ b/lib/libnv/tests/nvlist_free_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_get_test.c b/lib/libnv/tests/nvlist_get_test.c index d6e4a9b4d65a..f06be569c90d 100644 --- a/lib/libnv/tests/nvlist_get_test.c +++ b/lib/libnv/tests/nvlist_get_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_move_test.c b/lib/libnv/tests/nvlist_move_test.c index 3c99f4582c5e..2ef7ca4de384 100644 --- a/lib/libnv/tests/nvlist_move_test.c +++ b/lib/libnv/tests/nvlist_move_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libnv/tests/nvlist_send_recv_test.c b/lib/libnv/tests/nvlist_send_recv_test.c index ce3c682a8c7f..8db4f20a70b1 100644 --- a/lib/libnv/tests/nvlist_send_recv_test.c +++ b/lib/libnv/tests/nvlist_send_recv_test.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2013 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/lib/libproc/proc_bkpt.c b/lib/libproc/proc_bkpt.c index 9b81c410def7..c79d6be9828e 100644 --- a/lib/libproc/proc_bkpt.c +++ b/lib/libproc/proc_bkpt.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/libproc/proc_regs.c b/lib/libproc/proc_regs.c index c5844f368d13..738c297d11ff 100644 --- a/lib/libproc/proc_regs.c +++ b/lib/libproc/proc_regs.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/libproc/proc_rtld.c b/lib/libproc/proc_rtld.c index db17c2b02b95..1d6fc732933a 100644 --- a/lib/libproc/proc_rtld.c +++ b/lib/libproc/proc_rtld.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/librtld_db/librtld_db.3 b/lib/librtld_db/librtld_db.3 index 041cc2cfa67b..07e1b67c096b 100644 --- a/lib/librtld_db/librtld_db.3 +++ b/lib/librtld_db/librtld_db.3 @@ -1,6 +1,5 @@ .\"- .\" Copyright (c) 2010 The FreeBSD Foundation -.\" All rights reserved. .\" .\" This software was developed by Rui Paulo under sponsorship from .\" the FreeBSD Foundation. diff --git a/lib/librtld_db/rtld_db.c b/lib/librtld_db/rtld_db.c index 2546f572780d..5d88089289bf 100644 --- a/lib/librtld_db/rtld_db.c +++ b/lib/librtld_db/rtld_db.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/librtld_db/rtld_db.h b/lib/librtld_db/rtld_db.h index 24dc18a9a0ba..41aa7409fbf3 100644 --- a/lib/librtld_db/rtld_db.h +++ b/lib/librtld_db/rtld_db.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/libthr/plockstat.d b/lib/libthr/plockstat.d index de620d893651..39d8946f33d3 100644 --- a/lib/libthr/plockstat.d +++ b/lib/libthr/plockstat.d @@ -1,6 +1,5 @@ /* * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. diff --git a/lib/libthr/thread/thr_malloc.c b/lib/libthr/thread/thr_malloc.c index d60fbc1b1fe8..dbc9e39e3c28 100644 --- a/lib/libthr/thread/thr_malloc.c +++ b/lib/libthr/thread/thr_malloc.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2019 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/lib/libthread_db/arch/aarch64/libpthread_md.c b/lib/libthread_db/arch/aarch64/libpthread_md.c index 17f8345e596b..93c7330baa1a 100644 --- a/lib/libthread_db/arch/aarch64/libpthread_md.c +++ b/lib/libthread_db/arch/aarch64/libpthread_md.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2014-2015 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Andrew Turner under * sponsorship from the FreeBSD Foundation. diff --git a/libexec/ftpd/blacklist.c b/libexec/ftpd/blacklist.c index e8954f11bbe7..0a45f9369074 100644 --- a/libexec/ftpd/blacklist.c +++ b/libexec/ftpd/blacklist.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2016 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Kurt Lidl under sponsorship from the * FreeBSD Foundation. diff --git a/libexec/ftpd/blacklist_client.h b/libexec/ftpd/blacklist_client.h index 94ecc66c17ce..0b6805dc218e 100644 --- a/libexec/ftpd/blacklist_client.h +++ b/libexec/ftpd/blacklist_client.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2016 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Kurt Lidl under sponsorship from the * FreeBSD Foundation. diff --git a/libexec/rc/rc.d/blacklistd b/libexec/rc/rc.d/blacklistd index b58c7c8a76b6..44a97ad4b3b0 100755 --- a/libexec/rc/rc.d/blacklistd +++ b/libexec/rc/rc.d/blacklistd @@ -1,7 +1,6 @@ #!/bin/sh # # Copyright (c) 2016 The FreeBSD Foundation -# All rights reserved. # # This software was developed by Kurt Lidl under sponsorship from the # FreeBSD Foundation. diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c index 907377f2619a..828686af8b98 100644 --- a/libexec/rtld-elf/aarch64/reloc.c +++ b/libexec/rtld-elf/aarch64/reloc.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2014-2015 The FreeBSD Foundation - * All rights reserved. * * Portions of this software were developed by Andrew Turner * under sponsorship from the FreeBSD Foundation. diff --git a/libexec/rtld-elf/aarch64/rtld_start.S b/libexec/rtld-elf/aarch64/rtld_start.S index 36dc87d54118..50ce7249eb3e 100644 --- a/libexec/rtld-elf/aarch64/rtld_start.S +++ b/libexec/rtld-elf/aarch64/rtld_start.S @@ -1,6 +1,5 @@ /*- * Copyright (c) 2014 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Andrew Turner under * sponsorship from the FreeBSD Foundation. diff --git a/libexec/rtld-elf/rtld_malloc.h b/libexec/rtld-elf/rtld_malloc.h index 247726b9f470..408cdc84d45e 100644 --- a/libexec/rtld-elf/rtld_malloc.h +++ b/libexec/rtld-elf/rtld_malloc.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2019 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/sbin/hastctl/hastctl.8 b/sbin/hastctl/hastctl.8 index a0a1e1f22634..f696858a8071 100644 --- a/sbin/hastctl/hastctl.8 +++ b/sbin/hastctl/hastctl.8 @@ -1,5 +1,4 @@ .\" Copyright (c) 2010 The FreeBSD Foundation -.\" All rights reserved. .\" .\" This software was developed by Pawel Jakub Dawidek under sponsorship from .\" the FreeBSD Foundation. diff --git a/sbin/hastctl/hastctl.c b/sbin/hastctl/hastctl.c index ab2d618c698c..3375723b40fd 100644 --- a/sbin/hastctl/hastctl.c +++ b/sbin/hastctl/hastctl.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/activemap.c b/sbin/hastd/activemap.c index f5e3c60fd0a0..58fad137e5ae 100644 --- a/sbin/hastd/activemap.c +++ b/sbin/hastd/activemap.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/activemap.h b/sbin/hastd/activemap.h index a1dbf70e51af..ff598f841909 100644 --- a/sbin/hastd/activemap.h +++ b/sbin/hastd/activemap.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/control.c b/sbin/hastd/control.c index f6f937d3b180..48171fde9053 100644 --- a/sbin/hastd/control.c +++ b/sbin/hastd/control.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/control.h b/sbin/hastd/control.h index 4e16334dc824..ad7fb7978597 100644 --- a/sbin/hastd/control.h +++ b/sbin/hastd/control.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/ebuf.c b/sbin/hastd/ebuf.c index 522e4e821b11..8f58493270af 100644 --- a/sbin/hastd/ebuf.c +++ b/sbin/hastd/ebuf.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/ebuf.h b/sbin/hastd/ebuf.h index a79821735539..a4a2b30f4cb4 100644 --- a/sbin/hastd/ebuf.h +++ b/sbin/hastd/ebuf.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/hast_proto.h b/sbin/hastd/hast_proto.h index ab0a46494b45..0158aa4ccee6 100644 --- a/sbin/hastd/hast_proto.h +++ b/sbin/hastd/hast_proto.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/hastd.8 b/sbin/hastd/hastd.8 index fefd03f7dbe0..05a2d9b5e4e9 100644 --- a/sbin/hastd/hastd.8 +++ b/sbin/hastd/hastd.8 @@ -1,5 +1,4 @@ .\" Copyright (c) 2010 The FreeBSD Foundation -.\" All rights reserved. .\" .\" This software was developed by Pawel Jakub Dawidek under sponsorship from .\" the FreeBSD Foundation. diff --git a/sbin/hastd/hastd.h b/sbin/hastd/hastd.h index 15ad243adf7c..a54ef316f37a 100644 --- a/sbin/hastd/hastd.h +++ b/sbin/hastd/hastd.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/metadata.c b/sbin/hastd/metadata.c index 2f9cbc5e0971..5318d9f6aee5 100644 --- a/sbin/hastd/metadata.c +++ b/sbin/hastd/metadata.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/metadata.h b/sbin/hastd/metadata.h index b5215c1a85c9..6d8c593f0a46 100644 --- a/sbin/hastd/metadata.h +++ b/sbin/hastd/metadata.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/nv.c b/sbin/hastd/nv.c index 5f50ae349023..fd6b56c1148d 100644 --- a/sbin/hastd/nv.c +++ b/sbin/hastd/nv.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/nv.h b/sbin/hastd/nv.h index d1214f2b29ec..657a66fe38eb 100644 --- a/sbin/hastd/nv.h +++ b/sbin/hastd/nv.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/proto.c b/sbin/hastd/proto.c index 56ff4933c9b8..35f73bb8d0bf 100644 --- a/sbin/hastd/proto.c +++ b/sbin/hastd/proto.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/proto.h b/sbin/hastd/proto.h index a7cecbe67479..729daa518d9d 100644 --- a/sbin/hastd/proto.h +++ b/sbin/hastd/proto.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/proto_impl.h b/sbin/hastd/proto_impl.h index 4f84f90c6f23..0a0074545f38 100644 --- a/sbin/hastd/proto_impl.h +++ b/sbin/hastd/proto_impl.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/proto_socketpair.c b/sbin/hastd/proto_socketpair.c index ab30a6a27263..9608eb13afff 100644 --- a/sbin/hastd/proto_socketpair.c +++ b/sbin/hastd/proto_socketpair.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/proto_uds.c b/sbin/hastd/proto_uds.c index 5bf4c64fe5f6..acb61a360180 100644 --- a/sbin/hastd/proto_uds.c +++ b/sbin/hastd/proto_uds.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/rangelock.c b/sbin/hastd/rangelock.c index 33aee39651a4..26025d1169ac 100644 --- a/sbin/hastd/rangelock.c +++ b/sbin/hastd/rangelock.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/rangelock.h b/sbin/hastd/rangelock.h index d01dbd755b40..4847887b6b7a 100644 --- a/sbin/hastd/rangelock.h +++ b/sbin/hastd/rangelock.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/sbin/hastd/synch.h b/sbin/hastd/synch.h index 9e03fcb8ca74..32463f836bd0 100644 --- a/sbin/hastd/synch.h +++ b/sbin/hastd/synch.h @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/share/examples/hast/ucarp.sh b/share/examples/hast/ucarp.sh index 73253a295f53..67c7aecea44f 100755 --- a/share/examples/hast/ucarp.sh +++ b/share/examples/hast/ucarp.sh @@ -3,7 +3,6 @@ # SPDX-License-Identifier: BSD-2-Clause # # Copyright (c) 2010 The FreeBSD Foundation -# All rights reserved. # # This software was developed by Pawel Jakub Dawidek under sponsorship from # the FreeBSD Foundation. diff --git a/share/examples/hast/ucarp_down.sh b/share/examples/hast/ucarp_down.sh index 133d35c59d5b..df78de156b1e 100755 --- a/share/examples/hast/ucarp_down.sh +++ b/share/examples/hast/ucarp_down.sh @@ -3,7 +3,6 @@ # SPDX-License-Identifier: BSD-2-Clause # # Copyright (c) 2010 The FreeBSD Foundation -# All rights reserved. # # This software was developed by Pawel Jakub Dawidek under sponsorship from # the FreeBSD Foundation. diff --git a/share/examples/hast/ucarp_up.sh b/share/examples/hast/ucarp_up.sh index 9f22b4205909..62dee23c12c7 100755 --- a/share/examples/hast/ucarp_up.sh +++ b/share/examples/hast/ucarp_up.sh @@ -3,7 +3,6 @@ # SPDX-License-Identifier: BSD-2-Clause # # Copyright (c) 2010 The FreeBSD Foundation -# All rights reserved. # # This software was developed by Pawel Jakub Dawidek under sponsorship from # the FreeBSD Foundation. diff --git a/share/examples/kld/khelp/h_example.c b/share/examples/kld/khelp/h_example.c index 5bca2b36af50..431ed5a090b4 100644 --- a/share/examples/kld/khelp/h_example.c +++ b/share/examples/kld/khelp/h_example.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010-2011 The FreeBSD Foundation - * All rights reserved. * * This software was developed at the Centre for Advanced Internet * Architectures, Swinburne University of Technology, Melbourne, Australia by diff --git a/tests/sys/fs/fusefs/unlink.cc b/tests/sys/fs/fusefs/unlink.cc index db54e286d85d..1d8a371649ee 100644 --- a/tests/sys/fs/fusefs/unlink.cc +++ b/tests/sys/fs/fusefs/unlink.cc @@ -1,6 +1,5 @@ /*- * Copyright (c) 2019 The FreeBSD Foundation - * All rights reserved. * * This software was developed by BFF Storage Systems, LLC under sponsorship * from the FreeBSD Foundation. diff --git a/tests/sys/kern/kern_copyin.c b/tests/sys/kern/kern_copyin.c index d7894dfa7296..5ddedce9d699 100644 --- a/tests/sys/kern/kern_copyin.c +++ b/tests/sys/kern/kern_copyin.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2015, 2020 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/tools/regression/capsicum/syscalls/cap_fcntls_limit.c b/tools/regression/capsicum/syscalls/cap_fcntls_limit.c index 55627579963b..48b7968b959e 100644 --- a/tools/regression/capsicum/syscalls/cap_fcntls_limit.c +++ b/tools/regression/capsicum/syscalls/cap_fcntls_limit.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/tools/regression/capsicum/syscalls/cap_getmode.c b/tools/regression/capsicum/syscalls/cap_getmode.c index a2584895b179..3818e7b32caf 100644 --- a/tools/regression/capsicum/syscalls/cap_getmode.c +++ b/tools/regression/capsicum/syscalls/cap_getmode.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/tools/regression/capsicum/syscalls/cap_ioctls_limit.c b/tools/regression/capsicum/syscalls/cap_ioctls_limit.c index b0d392c8f0c0..01bc60a71514 100644 --- a/tools/regression/capsicum/syscalls/cap_ioctls_limit.c +++ b/tools/regression/capsicum/syscalls/cap_ioctls_limit.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/tools/regression/capsicum/syscalls/misc.c b/tools/regression/capsicum/syscalls/misc.c index 914c606ac904..c88f2f625c97 100644 --- a/tools/regression/capsicum/syscalls/misc.c +++ b/tools/regression/capsicum/syscalls/misc.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/tools/regression/capsicum/syscalls/misc.h b/tools/regression/capsicum/syscalls/misc.h index 842500aff14d..22a0ab8094db 100644 --- a/tools/regression/capsicum/syscalls/misc.h +++ b/tools/regression/capsicum/syscalls/misc.h @@ -1,6 +1,5 @@ /*- * Copyright (c) 2012 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Pawel Jakub Dawidek under sponsorship from * the FreeBSD Foundation. diff --git a/tools/test/popss/popss.c b/tools/test/popss/popss.c index 004ccb29c546..bb66f050beb1 100644 --- a/tools/test/popss/popss.c +++ b/tools/test/popss/popss.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2018 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/tools/test/vm86/vm86_test.c b/tools/test/vm86/vm86_test.c index 1057fc5c83d6..cbdb2c68a6df 100644 --- a/tools/test/vm86/vm86_test.c +++ b/tools/test/vm86/vm86_test.c @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2018 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/tools/test/vm86/vm86_test_asm.s b/tools/test/vm86/vm86_test_asm.s index 22e5cf70b7f7..0d76d2e77b1e 100644 --- a/tools/test/vm86/vm86_test_asm.s +++ b/tools/test/vm86/vm86_test_asm.s @@ -2,7 +2,6 @@ * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2018 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. diff --git a/tools/tools/vt/mkkfont/mkkfont.c b/tools/tools/vt/mkkfont/mkkfont.c index 3f92f926c029..ec4675cfcf1b 100644 --- a/tools/tools/vt/mkkfont/mkkfont.c +++ b/tools/tools/vt/mkkfont/mkkfont.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2009 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Ed Schouten under sponsorship from the * FreeBSD Foundation. diff --git a/usr.bin/proccontrol/proccontrol.1 b/usr.bin/proccontrol/proccontrol.1 index 6bef355a54c9..8ab63d079bbe 100644 --- a/usr.bin/proccontrol/proccontrol.1 +++ b/usr.bin/proccontrol/proccontrol.1 @@ -1,5 +1,4 @@ .\" Copyright (c) 2019 The FreeBSD Foundation, Inc. -.\" All rights reserved. .\" .\" This documentation was written by .\" Konstantin Belousov under sponsorship diff --git a/usr.bin/proccontrol/proccontrol.c b/usr.bin/proccontrol/proccontrol.c index 5b48ef2916f8..4b7543d63793 100644 --- a/usr.bin/proccontrol/proccontrol.c +++ b/usr.bin/proccontrol/proccontrol.c @@ -1,6 +1,5 @@ /*- * Copyright (c) 2016 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Konstantin Belousov * under sponsorship from the FreeBSD Foundation. From nobody Sun Sep 8 07:54:19 2024 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 4X1j0W5D4nz5WHtb; Sun, 08 Sep 2024 07:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j0W3yK6z4QSh; Sun, 8 Sep 2024 07:54:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Pf5EeLHcw0N41n2EvapfnmGf1Zau1cP+ADzagubWKo=; b=pqyoiGqZO89e9ZdE7PpeBy02Fcj83iMqQPjcZpfvd9dZWwx5CPRkvkBQDcl/+V/eecIUUj vQzU4RB8zG3iY42bw05aPTmyNolKvVR+QmR0EW5vbaWU8ZbG+AyguvBWuy+jYDakxdT1jD ouwultmloymkr6TuHdzbK1xzlx5UXOSn5uJe4BUMqMTCRj3zFLtWThOjQXf+PisgMOeCWn 0DaCv9B+PiAjRMOtdMapEioH8wOatb3vEBtxa+g8IHgEwQoSOWHAE3o7XjTYLbs4ek0t4C wNnhN4qYlkb/X1aiIIYLROJ5uJHyCIGGv2pkRElVOalgoc8lBal8MRdMf40rbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782059; a=rsa-sha256; cv=none; b=K0+D3Cfy3wFCHByRkQU0eOtzoynZaU4XGzO0d629w38aTP0RgHxy5qbeE7kUyn2wYDU/bZ 3nxyCwBeuTDBx8WoflUmXWOz8yl/GgHbBhGjOO4NK/fzKIHMok6Dcb4VntpYHvhWH2QmFQ 2jGZzKdNogWhe2U+qKqlk7duphY+zh5a9FL/4BZNHmtc95wN2r0YhupWJx/I0SO2DEfGVP Yni6qbE74IjXKV66fHYwmd1sAyF0R7PqBa0tLUooXjmmz56unmMVccBQbEWot8v4qydmgI An/MX6W2PIz6bIitmAHlEB0HVRvlzvZsm0BGxAR/YOph+9Rd38L/Mhy9ck5Twg== 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=1725782059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Pf5EeLHcw0N41n2EvapfnmGf1Zau1cP+ADzagubWKo=; b=XXRf1Of9xlhqqlKOVswGpaXeEhBYl363rIY+puVX0QkW6MfXsK7T31JLf5PejdJyvqjQlS 7lxMrNiUcVhJXu+9N9JSldBtScQEXNxm4PIbBIED0gYEpvsipQpx25/RAWwzgo6Fdmc11B K6E3ReX6QOCzdC/fALMXolGb22ZFRK/XAbmgYW/0V4/y/9vMJuUBpHZp556TJLvuPucv6v PPSTy/h2hm7ZKxEhdVC/ReoJhUjOtDZx1+bgbTRtbOhwab1abmG5XdZqbZraSZaDZhl0Om zEcXqVVHqCWHEbE9uH5H9ossYQFmYbmWImwVVtyWhWVOf4oQab0Ezw9waaOjXA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j0W3Fqhz19fP; Sun, 8 Sep 2024 07:54:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887sJSf023989; Sun, 8 Sep 2024 07:54:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887sJhU023986; Sun, 8 Sep 2024 07:54:19 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:54:19 GMT Message-Id: <202409080754.4887sJhU023986@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 33c82f11c267 - stable/14 - Improve accuracy of asinf(3) and acosf(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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 33c82f11c2674beb50304b14248ff46372def520 Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=33c82f11c2674beb50304b14248ff46372def520 commit 33c82f11c2674beb50304b14248ff46372def520 Author: Steve Kargl AuthorDate: 2024-08-29 19:44:48 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:37:52 +0000 Improve accuracy of asinf(3) and acosf(3) This uses a better rational approximation to improve the accuracy of both functions. For exhaustive testing of asinf(3) in the interval, the current libm gives: % ./tlibm asin -fPED -x 0x1p-12f -X 1 Interval tested for asinf: [0.000244141,1] ulp <= 0.5: 97.916% 98564994 | 97.916% 98564994 0.5 < ulp < 0.6: 2.038% 2051023 | 99.953% 100616017 0.6 < ulp < 0.7: 0.047% 47254 | 100.000% 100663271 0.7 < ulp < 0.8: 0.000% 25 | 100.000% 100663296 Max ulp: 0.729891 at 5.00732839e-01 which isn't too bad given that much of the computation is actually done in double floating point. With the new rational approximation, exhaustive testing yields: % ./tlibm asin -fPED -x 0x1p-12f -X 1 Interval tested for asinf: [0.000244141,1] ulp <= 0.5: 99.711% 100372643 | 99.711% 100372643 0.5 < ulp < 0.6: 0.288% 290357 | 100.000% 100663000 0.6 < ulp < 0.7: 0.000% 296 | 100.000% 100663296 Max ulp: 0.636344 at 5.09706438e-01 Similarly, for exhaustive testing of asinf(3) in the interval, the current libm gives: % ./tlibm acos -fPED -x -1 -X -0x1p-12f Interval tested for acosf: [-1,-0.000244141] ulp <= 0.5: 97.008% 97651921 | 97.008% 97651921 0.5 < ulp < 0.6: 2.441% 2457242 | 99.450% 100109163 0.6 < ulp < 0.7: 0.472% 475503 | 99.922% 100584666 0.7 < ulp < 0.8: 0.071% 71309 | 99.993% 100655975 0.8 < ulp < 0.9: 0.007% 7319 | 100.000% 100663294 0.9 < ulp < 1.0: 0.000% 2 | 100.000% 100663296 Max ulp: 0.914007 at -5.01484931e-01 % ./tlibm acos -fPED -x 0x1p-12f -X 1 Interval tested for acosf: [0.000244141,1] ulp <= 0.5: 97.317% 97962530 | 97.317% 97962530 0.5 < ulp < 0.6: 2.340% 2355182 | 99.657% 100317712 0.6 < ulp < 0.7: 0.314% 316134 | 99.971% 100633846 0.7 < ulp < 0.8: 0.029% 29450 | 100.000% 100663296 Max ulp: 0.796035 at 4.99814630e-01 With the new rational approximation, exhaustive testing yields: % ./tlibm acos -fPED -x -1 -X -0x1p-12f Interval tested for acosf: [-1,-0.000244141] ulp <= 0.5: 97.010% 97653245 | 97.010% 97653245 0.5 < ulp < 0.6: 2.442% 2458373 | 99.452% 100111618 0.6 < ulp < 0.7: 0.473% 476012 | 99.925% 100587630 0.7 < ulp < 0.8: 0.068% 68603 | 99.993% 100656233 0.8 < ulp < 0.9: 0.007% 7063 | 100.000% 100663296 Max ulp: 0.896189 at -5.04511118e-01 % ./tlibm acos -fPED -x 0x1p-12f -X 1 Interval tested for acosf: [0.000244141,1] ulp <= 0.5: 97.650% 98298175 | 97.650% 98298175 0.5 < ulp < 0.6: 2.028% 2041709 | 99.679% 100339884 0.6 < ulp < 0.7: 0.292% 293555 | 99.970% 100633439 0.7 < ulp < 0.8: 0.030% 29857 | 100.000% 100663296 Max ulp: 0.775875 at 4.91849005e-01 PR: 281001 MFC after: 1 week (cherry picked from commit 41e016289f77deb88b0ef1ec3f7b2ab3515ac7c8) --- lib/msun/src/e_acosf.c | 20 +++++++++++++------- lib/msun/src/e_asinf.c | 22 ++++++++++++++-------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c index 42ba126d1baa..ede552e7055a 100644 --- a/lib/msun/src/e_acosf.c +++ b/lib/msun/src/e_acosf.c @@ -22,11 +22,17 @@ pi = 3.1415925026e+00, /* 0x40490fda */ pio2_hi = 1.5707962513e+00; /* 0x3fc90fda */ static volatile float pio2_lo = 7.5497894159e-08; /* 0x33a22168 */ + +/* + * The coefficients for the rational approximation were generated over + * 0x1p-12f <= x <= 0.5f. The maximum error satisfies log2(e) < -30.084. + */ static const float -pS0 = 1.6666586697e-01, -pS1 = -4.2743422091e-02, -pS2 = -8.6563630030e-03, -qS1 = -7.0662963390e-01; +pS0 = 1.66666672e-01f, /* 0x3e2aaaab */ +pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */ +pS2 = 5.47002675e-03f, /* 0x3bb33de9 */ +qS1 = -1.16706085e+00f, /* 0xbf956240 */ +qS2 = 2.90115148e-01f; /* 0x3e9489f9 */ float acosf(float x) @@ -46,13 +52,13 @@ acosf(float x) if(ix<=0x32800000) return pio2_hi+pio2_lo;/*if|x|<2**-26*/ z = x*x; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); r = p/q; return pio2_hi - (x - (pio2_lo-x*r)); } else if (hx<0) { /* x < -0.5 */ z = (one+x)*(float)0.5; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); s = sqrtf(z); r = p/q; w = r*s-pio2_lo; @@ -66,7 +72,7 @@ acosf(float x) SET_FLOAT_WORD(df,idf&0xfffff000); c = (z-df*df)/(s+df); p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); r = p/q; w = r*s+c; return (float)2.0*(df+w); diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c index a2ee1a166f03..8d1aca27df83 100644 --- a/lib/msun/src/e_asinf.c +++ b/lib/msun/src/e_asinf.c @@ -18,12 +18,18 @@ static const float one = 1.0000000000e+00, /* 0x3F800000 */ -huge = 1.000e+30, - /* coefficient for R(x^2) */ -pS0 = 1.6666586697e-01, -pS1 = -4.2743422091e-02, -pS2 = -8.6563630030e-03, -qS1 = -7.0662963390e-01; +huge = 1.000e+30; + +/* + * The coefficients for the rational approximation were generated over + * 0x1p-12f <= x <= 0.5f. The maximum error satisfies log2(e) < -30.084. + */ +static const float +pS0 = 1.66666672e-01f, /* 0x3e2aaaab */ +pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */ +pS2 = 5.47002675e-03f, /* 0x3bb33de9 */ +qS1 = -1.16706085e+00f, /* 0xbf956240 */ +qS2 = 2.90115148e-01f; /* 0x3e9489f9 */ static const double pio2 = 1.570796326794896558e+00; @@ -46,7 +52,7 @@ asinf(float x) } t = x*x; p = t*(pS0+t*(pS1+t*pS2)); - q = one+t*qS1; + q = one+t*(qS1+t*qS2); w = p/q; return x+x*w; } @@ -54,7 +60,7 @@ asinf(float x) w = one-fabsf(x); t = w*(float)0.5; p = t*(pS0+t*(pS1+t*pS2)); - q = one+t*qS1; + q = one+t*(qS1+t*qS2); s = sqrt(t); w = p/q; t = pio2-2.0*(s+s*w); From nobody Sun Sep 8 07:54:20 2024 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 4X1j0X5C4Dz5WHnh; Sun, 08 Sep 2024 07:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j0X4SbQz4QBy; Sun, 8 Sep 2024 07:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1iPHrA3irqp3WMiJ1ATdolaCf/2hHTjS8bDue2Sbaw0=; b=Yt5EF4o/WIVyAWXCbO+QRDQQ6JXzFxuTuLrxSQHiFU7jQ1V3RCMA333j7qQwIexkBiRObR iDl4hGDpMmAVQauRZzPKhtiTwkJJsHCpAXrfijWS/0CEBwg7fFcWdZLTBKxJyulA3b59gF vgL37ZbRope+BN5yVyhgYDlarg60c4myZfmXuZ5AXjxd2qJ6Mv0c0Vmqs6r/WIR1JTL0Tp GNX114ankYmnyKdTFtvlhlVcXlvlFGj0bwNd4RsNgU/BzoB4Crrmze0dy0vvnF91EQiHUm 3dKMt6bFsmT42Sb3DnxizlUzxHgFpX2PD/Vqi4mzL/PzvW8kZwi8IRozFZb+SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782060; a=rsa-sha256; cv=none; b=hIffG8Gy0IGfX9JTl7UXqO+XGJaNpw9+MgfrGw5S7WLkqj7DhLpMa7eiA7ROLmcuhtC1Pu +3T8T7mxowbCxFTJ5GILpJM/ByPuowm7T8rY6aqRuBYYbK07hJQF6GsfOV+lXgZOZAgk6l rRkhnS9i7mPxkNP8dq2tiw3hWPWOBi/iB30b01dEmv9D0cA9jgzoqd9POw0FbeGiU0fv07 ko9RVygiqUhhKkl/JGt+wgWZ7A/Ig/uvOg5ZhI5hwzo8Y3gDtUtNqp6hDdiT0AnYxNV25x KxqrjMYi+4uXnggHocXuzzOdaoVU4lnNXh2s99noTytGzmn35p5hFFa1N30gmg== 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=1725782060; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1iPHrA3irqp3WMiJ1ATdolaCf/2hHTjS8bDue2Sbaw0=; b=LcW9vjQjWkjJIxzrW+fHw4LDfTyTo1K8iNKkO2iEmJVQad03+o+1Rfk5ReshCoPfyYM3QB 6T+XdoTp4gLfrCY1WpBo3Py3miSVbfgabnN/Wv2F6DwSCGxClJtqrSg6d9G5nkRrdYO0ZI hkQvEL6TYO1u7rIS9pRAoF430HGPcyNrIULCTsKXy83tKnisDOQQGKleUtNTGfDKYFZCCi CsnozWFaXdvga5NsWYWSIvVBM6UqYOHGAQz+D8GBCAQQ4tSsMR5LtQghF0vLKBuCM/BcUs l+NgXxpGFBQCyYyeXCSQ5eEc+8xMj6+j7Rn+Gn0qAvkxRCF7qGkBAWvKz6WutQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j0X43jlz19s3; Sun, 8 Sep 2024 07:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887sKh0024034; Sun, 8 Sep 2024 07:54:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887sKoJ024031; Sun, 8 Sep 2024 07:54:20 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:54:20 GMT Message-Id: <202409080754.4887sKoJ024031@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: cc32cfab5c0d - stable/14 - UPDATING: keep sorted by date. 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cc32cfab5c0dc07d124fa6df942f76adbc15f8ef Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=cc32cfab5c0dc07d124fa6df942f76adbc15f8ef commit cc32cfab5c0dc07d124fa6df942f76adbc15f8ef Author: Dimitry Andric AuthorDate: 2024-09-08 07:47:32 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:47:32 +0000 UPDATING: keep sorted by date. --- UPDATING | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/UPDATING b/UPDATING index 83b0d8b27cda..d6c2a930255a 100644 --- a/UPDATING +++ b/UPDATING @@ -12,27 +12,6 @@ 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. -20240202: - Loader now also read configuration files listed in local_loader_conf_files. - Files listed here are the last ones read. And /boot/loader.conf.local was - moved from loader_conf_files to local_loader_conf_files leaving only - loader.conf and device.hints in loader_conf_files by default. - - The following sequencing is applied: - - 1. Bootstrap: - /boot/defaults/loader.conf - - 2. Read loader_conf_files files: - /boot/device.hints - /boot/loader.conf - - 3. Read loader_conf_dirs files: - /boot/loader.conf.d/*.conf - - 4. And finally, rread local_loader_conf_files files: - /boot/loader.conf.local - 20240415: MFC e0f3dc82727f: If you have an arm64 system that uses ACPI, you will need to update your loader.efi in the ESP when you update past this @@ -53,9 +32,26 @@ and/or ports. non-compliant MTAs; please see the first 8.18.1 release note in contrib/sendmail/RELEASE_NOTES for mitigations. -20231113: - The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled - it is always installed as /usr/bin/ld. +20240202: + Loader now also read configuration files listed in local_loader_conf_files. + Files listed here are the last ones read. And /boot/loader.conf.local was + moved from loader_conf_files to local_loader_conf_files leaving only + loader.conf and device.hints in loader_conf_files by default. + + The following sequencing is applied: + + 1. Bootstrap: + /boot/defaults/loader.conf + + 2. Read loader_conf_files files: + /boot/device.hints + /boot/loader.conf + + 3. Read loader_conf_dirs files: + /boot/loader.conf.d/*.conf + + 4. And finally, rread local_loader_conf_files files: + /boot/loader.conf.local 20240119: Commit d34f4baaf138 changed the internal interface between @@ -77,6 +73,10 @@ and/or ports. sources. As such, __FreeBSD_version has been bumped to 1400502. +20231113: + The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled + it is always installed as /usr/bin/ld. + 20230924: Enable splitting out pkgbase manpages into separate packages by default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. @@ -311,6 +311,10 @@ and/or ports. belongs. Consequently, users may experience surprising results with such names when roaming to different homenets. +20211118: + Mips has been removed from universe builds. It will be removed from the + tree shortly. + 20211110: Commit b8d60729deef changed the TCP congestion control framework so that any of the included congestion control modules could be @@ -324,10 +328,6 @@ and/or ports. kernel and you are including networking, the kernel compile will fail. Also if no default is declared the kernel compile will fail. -20211118: - Mips has been removed from universe builds. It will be removed from the - tree shortly. - 20211106: Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE. The NFS modules must be rebuilt from sources and any out From nobody Sun Sep 8 07:54:21 2024 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 4X1j0Y5zJkz5WHT8; Sun, 08 Sep 2024 07:54: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j0Y57Ljz4Q8P; Sun, 8 Sep 2024 07:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IkE53rlfMUqFb4g7eW6NIsYdVzyV5sBUa4Vv+JsyMw8=; b=fWcP2WYPHFfQDKFyPXIWQQoXVMTtPTibwxv1yyprDZpYGnNSJ+a5BaSY2qGcvfGO/7bfoX AvOMoBwEAuZYyt0QdJv2i5NHwnuS2rt/XrCDtLD9PnPZF4BMdPcYk4Rm1IJdI6OaJSso40 qSrRNm4l90f2mYNkhJ4KP0NqdWBx2z7Ojnc49SFA9ICSANPfBL5P6wt6syYtWvcgJdkcaw vh9oSgxwyYZJ2irR0RxBZgmQeO5QBtuls5W2OYOyyF3RQNFaL1V2qtntHxxGb2QMfpM3WM VAlIo8xmq63rSyG49w0AoR4kKnRpAg8ttVlCUFJiiAAPN1bkS2IwK7X8oaZ+0g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782061; a=rsa-sha256; cv=none; b=VvfOvk6de2Oj6+Wj+kXeUwidaVdujlT8OWxoN8s6WFMx9k1eRJ4dQK2dxupA7CNr8tZTpW VdPMtQvMLzeW7AwC4iM5eEw7ICNIEYiKOcENBXb1GoDbFUG6rk4GGIdxaemmTMf1Qmradw a89qpfyBgX/EaczuIIVmdhcR43eFRW2sJePXOsWpl8hymkPMd/2x8U9GjbMD6XvA+3BAs6 iFQrxicI3ameeRGRf5OpNRbVP8aKUhP+Udz5dswwxK+PXkYklVnHL1G1iAQbZ37iyecdqK LY+pM01/wbHxzQdc8dfsatLEvIy5z7T/S3hEvk2NqRKhXw2vaEM3s7ZeayU/6A== 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=1725782061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IkE53rlfMUqFb4g7eW6NIsYdVzyV5sBUa4Vv+JsyMw8=; b=DmXeh7umvnHvk1q9delsaG7uI1YdM5AVBNXTMDeoFyzKS9jLEz8GheMugM6bj43p6D3ogS M1JsmiQYCGnCJ0UJLM0U4YnFrvaWWLKklUog1KgLg1a7ebqbtu8WMhKoKA+JfwyZflJKW5 jGJobcYq5R6Jo9EQ6WLKB07LtppY4vHutatdsj2fPqwfq/2uD1pABLT/aVk1rqYIlXVNz0 f+NfamgiXMcE0X4DmKoO6LGQV8gr+7vK44zWp3XmCPTr57gEYpx3Tqu/V+8HaTaLi4gJn+ +hVa+Up71aWf6IC+SnOXyEQxeiTQLXe24CLOFbFAnETVhnQ1k+AHV/aTGrUGrQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j0Y4j7Xz19xd; Sun, 8 Sep 2024 07:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887sL0h024099; Sun, 8 Sep 2024 07:54:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887sLjk024096; Sun, 8 Sep 2024 07:54:21 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:54:21 GMT Message-Id: <202409080754.4887sLjk024096@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 28ff3ab2ab06 - stable/14 - Add UPDATING note about running make delete-old after libc++ 18 upgrade 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28ff3ab2ab064224cd1fc0885040c3c47ed5ef4d Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=28ff3ab2ab064224cd1fc0885040c3c47ed5ef4d commit 28ff3ab2ab064224cd1fc0885040c3c47ed5ef4d Author: Dimitry Andric AuthorDate: 2024-09-05 19:55:44 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:48:57 +0000 Add UPDATING note about running make delete-old after libc++ 18 upgrade PR: 279692 MFC after: 3 days (cherry picked from commit 157802238b5aa7722aff40317fe6d05f5c975d71) --- UPDATING | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UPDATING b/UPDATING index d6c2a930255a..d9804dce33e1 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,13 @@ 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. +20240419: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 18.1.6. It is important that you run `make delete-old` + as described in the COMMON ITEMS section, otherwise several libc++ + headers that are obsolete and need to be removed can cause compilation + errors in C++ programs. + 20240415: MFC e0f3dc82727f: If you have an arm64 system that uses ACPI, you will need to update your loader.efi in the ESP when you update past this From nobody Sun Sep 8 07:55:48 2024 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 4X1j2D5hcFz5WHyW; Sun, 08 Sep 2024 07:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j2D4tZNz4RZq; Sun, 8 Sep 2024 07:55:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H4+i9m4mi3OLoDSM8N/7lIXluP8/NQyXcos8ldF2doE=; b=tDD2MroQ0rD8uMehRN+GAN20j1xdrDxiKvGK1unVWD4utsZQjJNMPN6K/MMWW57yjnpDy4 adZ0rOEWOkKvlH5H01Rm7CpOAQChMrAdE+34CYmXto2nNZ89xdKYHWK9V8iwMnksbeekah RcPGtc3yMPKpCcqAXEnSMjG6h5tgpkQIGCF2OcbCZfHXa48fHF9HTPlJG8ASJ4WpELLJcO ScLhi8bai4tU1nhZiWPv9imdRxvego4/KLw+/B1aNjTlNQCNkCLJu010YMv9sTzrvZYEta xgrhVrgAJ5VzKW6Eu5/BKcZjJHeJMoVtPvnc3bIXYxp7Zz6Vqn553fiQY2RoIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782148; a=rsa-sha256; cv=none; b=cgIciXNZqfcE4Y8UgLoLVWgpobiPB1rTVUWdfv/kddI7po2rOZV4fiblQgrvnZv1iPtoEw Vp8vILWkOLgM+uhPvjeF7j8ZQFAoiyv/JhWJMIPRUgR8CE734MvxCmJMBdK4kZkFVi/Dsn qVCfqQdAIGemz9678wcZFK3x2eGbJMX0dgGebFCH7AC1Ywqw87Z2lJbX/GgIwrOZXNKrLP q1gSOD7CFhWQkXvqcvVASPJlRxosKBRzZFyH0sHltLHPkdFJ0Vf8dyNrZ8nJ9C7ib56hj5 TDDwUxkUcglSgdAts2oUjl4epRYE7V+jds+PTVkpGs9Xe7bZYjLp9YDeEXlMRA== 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=1725782148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H4+i9m4mi3OLoDSM8N/7lIXluP8/NQyXcos8ldF2doE=; b=OXz960dVi07SzZLR/CCe9+0YUhFwX1vahHF5jOx6h0so4DcxjmQxNvb1Wb0CvMOXdzA2oT Ws/ybwdAS6o9rWvannTQktyHLX+q8e2cYWOB7Fi9n6v8XDnyvQmvmJGgJyaTBwonJ8bG0e QPJjjhPSAAa0MICkF8KUWdsnEWvVseTP9Im2H+1sJZxJZqBAQOmSrpJi7mzw3Qj5y44Jip 5MZAznZd7iGkK9YRoPGFXA6+z3HQS3CF5M2fEegiY0utUIz+17cbImkKfic57d3w4XFfgO 93tK6bD6wntJ1at2Gb8C6oXTkUhjNkM2SUf7HWfs5XVYJJ0ax76iHRwE1Yhz0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j2D4KV3z1914; Sun, 8 Sep 2024 07:55:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887tmpL024638; Sun, 8 Sep 2024 07:55:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887tmHM024635; Sun, 8 Sep 2024 07:55:48 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:55:48 GMT Message-Id: <202409080755.4887tmHM024635@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 75bca9e7553c - stable/13 - Improve accuracy of asinf(3) and acosf(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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 75bca9e7553c70d97b36df30ab05bbbbacb8a499 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=75bca9e7553c70d97b36df30ab05bbbbacb8a499 commit 75bca9e7553c70d97b36df30ab05bbbbacb8a499 Author: Steve Kargl AuthorDate: 2024-08-29 19:44:48 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:37:57 +0000 Improve accuracy of asinf(3) and acosf(3) This uses a better rational approximation to improve the accuracy of both functions. For exhaustive testing of asinf(3) in the interval, the current libm gives: % ./tlibm asin -fPED -x 0x1p-12f -X 1 Interval tested for asinf: [0.000244141,1] ulp <= 0.5: 97.916% 98564994 | 97.916% 98564994 0.5 < ulp < 0.6: 2.038% 2051023 | 99.953% 100616017 0.6 < ulp < 0.7: 0.047% 47254 | 100.000% 100663271 0.7 < ulp < 0.8: 0.000% 25 | 100.000% 100663296 Max ulp: 0.729891 at 5.00732839e-01 which isn't too bad given that much of the computation is actually done in double floating point. With the new rational approximation, exhaustive testing yields: % ./tlibm asin -fPED -x 0x1p-12f -X 1 Interval tested for asinf: [0.000244141,1] ulp <= 0.5: 99.711% 100372643 | 99.711% 100372643 0.5 < ulp < 0.6: 0.288% 290357 | 100.000% 100663000 0.6 < ulp < 0.7: 0.000% 296 | 100.000% 100663296 Max ulp: 0.636344 at 5.09706438e-01 Similarly, for exhaustive testing of asinf(3) in the interval, the current libm gives: % ./tlibm acos -fPED -x -1 -X -0x1p-12f Interval tested for acosf: [-1,-0.000244141] ulp <= 0.5: 97.008% 97651921 | 97.008% 97651921 0.5 < ulp < 0.6: 2.441% 2457242 | 99.450% 100109163 0.6 < ulp < 0.7: 0.472% 475503 | 99.922% 100584666 0.7 < ulp < 0.8: 0.071% 71309 | 99.993% 100655975 0.8 < ulp < 0.9: 0.007% 7319 | 100.000% 100663294 0.9 < ulp < 1.0: 0.000% 2 | 100.000% 100663296 Max ulp: 0.914007 at -5.01484931e-01 % ./tlibm acos -fPED -x 0x1p-12f -X 1 Interval tested for acosf: [0.000244141,1] ulp <= 0.5: 97.317% 97962530 | 97.317% 97962530 0.5 < ulp < 0.6: 2.340% 2355182 | 99.657% 100317712 0.6 < ulp < 0.7: 0.314% 316134 | 99.971% 100633846 0.7 < ulp < 0.8: 0.029% 29450 | 100.000% 100663296 Max ulp: 0.796035 at 4.99814630e-01 With the new rational approximation, exhaustive testing yields: % ./tlibm acos -fPED -x -1 -X -0x1p-12f Interval tested for acosf: [-1,-0.000244141] ulp <= 0.5: 97.010% 97653245 | 97.010% 97653245 0.5 < ulp < 0.6: 2.442% 2458373 | 99.452% 100111618 0.6 < ulp < 0.7: 0.473% 476012 | 99.925% 100587630 0.7 < ulp < 0.8: 0.068% 68603 | 99.993% 100656233 0.8 < ulp < 0.9: 0.007% 7063 | 100.000% 100663296 Max ulp: 0.896189 at -5.04511118e-01 % ./tlibm acos -fPED -x 0x1p-12f -X 1 Interval tested for acosf: [0.000244141,1] ulp <= 0.5: 97.650% 98298175 | 97.650% 98298175 0.5 < ulp < 0.6: 2.028% 2041709 | 99.679% 100339884 0.6 < ulp < 0.7: 0.292% 293555 | 99.970% 100633439 0.7 < ulp < 0.8: 0.030% 29857 | 100.000% 100663296 Max ulp: 0.775875 at 4.91849005e-01 PR: 281001 MFC after: 1 week (cherry picked from commit 41e016289f77deb88b0ef1ec3f7b2ab3515ac7c8) --- lib/msun/src/e_acosf.c | 20 +++++++++++++------- lib/msun/src/e_asinf.c | 22 ++++++++++++++-------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c index 29f6d4a78495..4c8bb05ef0a5 100644 --- a/lib/msun/src/e_acosf.c +++ b/lib/msun/src/e_acosf.c @@ -23,11 +23,17 @@ pi = 3.1415925026e+00, /* 0x40490fda */ pio2_hi = 1.5707962513e+00; /* 0x3fc90fda */ static volatile float pio2_lo = 7.5497894159e-08; /* 0x33a22168 */ + +/* + * The coefficients for the rational approximation were generated over + * 0x1p-12f <= x <= 0.5f. The maximum error satisfies log2(e) < -30.084. + */ static const float -pS0 = 1.6666586697e-01, -pS1 = -4.2743422091e-02, -pS2 = -8.6563630030e-03, -qS1 = -7.0662963390e-01; +pS0 = 1.66666672e-01f, /* 0x3e2aaaab */ +pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */ +pS2 = 5.47002675e-03f, /* 0x3bb33de9 */ +qS1 = -1.16706085e+00f, /* 0xbf956240 */ +qS2 = 2.90115148e-01f; /* 0x3e9489f9 */ float acosf(float x) @@ -47,13 +53,13 @@ acosf(float x) if(ix<=0x32800000) return pio2_hi+pio2_lo;/*if|x|<2**-26*/ z = x*x; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); r = p/q; return pio2_hi - (x - (pio2_lo-x*r)); } else if (hx<0) { /* x < -0.5 */ z = (one+x)*(float)0.5; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); s = sqrtf(z); r = p/q; w = r*s-pio2_lo; @@ -67,7 +73,7 @@ acosf(float x) SET_FLOAT_WORD(df,idf&0xfffff000); c = (z-df*df)/(s+df); p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = one+z*(qS1+z*qS2); r = p/q; w = r*s+c; return (float)2.0*(df+w); diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c index 391c15870f84..c8b0eb68c744 100644 --- a/lib/msun/src/e_asinf.c +++ b/lib/msun/src/e_asinf.c @@ -19,12 +19,18 @@ static const float one = 1.0000000000e+00, /* 0x3F800000 */ -huge = 1.000e+30, - /* coefficient for R(x^2) */ -pS0 = 1.6666586697e-01, -pS1 = -4.2743422091e-02, -pS2 = -8.6563630030e-03, -qS1 = -7.0662963390e-01; +huge = 1.000e+30; + +/* + * The coefficients for the rational approximation were generated over + * 0x1p-12f <= x <= 0.5f. The maximum error satisfies log2(e) < -30.084. + */ +static const float +pS0 = 1.66666672e-01f, /* 0x3e2aaaab */ +pS1 = -1.19510300e-01f, /* 0xbdf4c1d1 */ +pS2 = 5.47002675e-03f, /* 0x3bb33de9 */ +qS1 = -1.16706085e+00f, /* 0xbf956240 */ +qS2 = 2.90115148e-01f; /* 0x3e9489f9 */ static const double pio2 = 1.570796326794896558e+00; @@ -47,7 +53,7 @@ asinf(float x) } t = x*x; p = t*(pS0+t*(pS1+t*pS2)); - q = one+t*qS1; + q = one+t*(qS1+t*qS2); w = p/q; return x+x*w; } @@ -55,7 +61,7 @@ asinf(float x) w = one-fabsf(x); t = w*(float)0.5; p = t*(pS0+t*(pS1+t*pS2)); - q = one+t*qS1; + q = one+t*(qS1+t*qS2); s = sqrt(t); w = p/q; t = pio2-2.0*(s+s*w); From nobody Sun Sep 8 07:55:49 2024 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 4X1j2F5bc8z5WJBv; Sun, 08 Sep 2024 07:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j2F59S2z4RXT; Sun, 8 Sep 2024 07:55:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jzv80dq1oArdIHgcZDR1oKteUPuyOjB1ZiMtbrJENwI=; b=werqT8yyJ6JmvQWEPvJLh1RhKSesSSZHNUQzntGbF1F1wiarDoMAQOZGMGCWHu8K3uUZ00 DXgxBj+IShOTFomcRWC3Yja9dPHA8kkVEmQkfOEyu4ilMijTWd/BtblMkeAYcTh+Qo29DB YkkRZnI8A2JRZiQ41or1L2S1N26JiKtSCGnK8kTKl84w09aUGGHjIzPm4U+arIG50GPho3 DG5VtNlq1IXEj/kCoLDv1HmZk6T5gY5t6p4EyX/ZHQVd483X/SivwT4wRvyShoyKlQj/d6 MxNObiU3YMMUSp4TZQ0Kx8uXstUuxxCh+DgOvwUtwzTp09gBxGyC9f+BR9n1kg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782149; a=rsa-sha256; cv=none; b=oF6dQNES5Ph5mrzY7u90YmdOSUr3iDLcO1rVnjyOXxm8R40KeTKte4X4X+r80I8QwnI9DG VkP4eI4lL405qRyp4MPShDULEZp6Kn+6ANg0A3mnvirUXvGYU8E+d/eRK2fLewV1NcR0LI 3DAsEzACag01Dual39LwAFx1QI2EhVhEW35j96hG2bwjB+IUEgwEY67TDQetewhmgLu3nx YwYZsfDjZ9nUUhM2Wm8PTVohVRLT+tdNWknlzo9qiorT45NGuqZ14Jz4TbaGCnC18P+P3V tLo/bFoICQ0mQy/H8md2bBxV+3xmDxR60CbwBTf4Pa5hmNwKIwGeZcHkJp10RA== 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=1725782149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jzv80dq1oArdIHgcZDR1oKteUPuyOjB1ZiMtbrJENwI=; b=gsXR/r6k59HTztI/7LheYOJkb+rVB3KaSXzVOn9AOiXLeMBnzi9bfcxwMxMtx8g61d+M+8 udxJbxWOtK+iGl9U2JFbN5JsJqXhg9BllFbX+J10YwoN43QrY0lvbsoZNMKFYPGh+UOCtv 96OixYzkB99nRUKSCHyXnWzLZN3hKtAj2zmHiclUtYZVuspYHTzXq2c8Bv5dZlMYkRv+1R hVYMC5NpBSlkntwGHiGGPUM2J8g0KrvabCS05RZyXz8o3UbY3ZCpftJuKk9hgzNzlNbOpf CzhxEfwG3f9iPmN/pmr8jGJtZlc4y0Wo5y+GDPPrnmI388e3uUrbbRaF41Peqg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j2F4mZ8z19k4; Sun, 8 Sep 2024 07:55:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887tnEr024684; Sun, 8 Sep 2024 07:55:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887tnqf024681; Sun, 8 Sep 2024 07:55:49 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:55:49 GMT Message-Id: <202409080755.4887tnqf024681@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 837d998a6024 - stable/13 - UPDATING: keep sorted by date. 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 837d998a602452ce9dc0b5b08f124c5e65bef4b0 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=837d998a602452ce9dc0b5b08f124c5e65bef4b0 commit 837d998a602452ce9dc0b5b08f124c5e65bef4b0 Author: Dimitry Andric AuthorDate: 2024-09-08 07:49:43 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:49:43 +0000 UPDATING: keep sorted by date. --- UPDATING | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/UPDATING b/UPDATING index 974b0dbd30c2..75f04569de82 100644 --- a/UPDATING +++ b/UPDATING @@ -1952,15 +1952,15 @@ and/or ports. chmod, chflags, chown and chgrp now affect symlinks in -R mode as defined in symlink(7); previously symlinks were silently ignored. -20150415: - The const qualifier has been removed from iconv(3) to comply with - POSIX. The ports tree is aware of this from r384038 onwards. - 20150416: Libraries specified by LIBADD in Makefiles must have a corresponding DPADD_ variable to ensure correct dependencies. This is now enforced in src.libnames.mk. +20150415: + The const qualifier has been removed from iconv(3) to comply with + POSIX. The ports tree is aware of this from r384038 onwards. + 20150324: From legacy ata(4) driver was removed support for SATA controllers supported by more functional drivers ahci(4), siis(4) and mvs(4). From nobody Sun Sep 8 07:55:50 2024 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 4X1j2H2BWZz5WJ7S; Sun, 08 Sep 2024 07:55: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1j2H0J9Bz4RHX; Sun, 8 Sep 2024 07:55:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725782151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pJAdRsJXLR9xpROFm92zq3bZ5jtxQhzKomajqicL2ec=; b=bBUgSfAphfo/1HcS5NRCotTyC8k2UYoA0QFIRt0ucEN9cIwTv1IFgAbvruziqiwAxgjEIK 682JNWqkHgzUaC/38Oz8vgdYcFsPlN+iLrnNFbL+xJFvKGAU2TSkSLGa0dBwBmn98nizVh Ya6+nRh2g6NdeH/57IYm6uFRnaJTWkgiNYIp5SgdCOPsPz2pNx1ZwDIg4u86bwKucKSeTe TVnh+9b3EhBPjh+PlQzliIZ9HrUFOlQlzSiG2i3E1lz1437nYc494gOj1wAMdbrlGpJ3Q+ mONISWugzKoipFILQwsdnOJpx55iwYUfQrucQVkTNxmSRtkJ5PcFlANsuKBZXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725782151; a=rsa-sha256; cv=none; b=mfW0DeHk6AFIWxngk95wBLaHtC8dzGusYwO+yZTn7QG/7jbHjlTNUDzxnNiqS2Py4PFDJ9 1ZufuUNr5/nglJ821yM6529JqkmkiHmkLFv6N4o+WtGwNhcrXewCxlTdyN/GsnWnDKdvi9 jmo9O/QejMmmgRZBEZefWL6ov6sBNAiwpWYxNLgDanlQT+uOW9KIJmV1zWKpHiwnhpTNgl c/wBZgFTiEF0gy9hsD61OY7Tc0/DPD2G45OiEsobzODkii3WjCwHMrgY0A/3uF5eZTv9HN e4b4WDQQJ3M8631MAXNWtnt+oF5IqwuGycalbyYc/lIXV3ilzaI530nJArWVYA== 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=1725782151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pJAdRsJXLR9xpROFm92zq3bZ5jtxQhzKomajqicL2ec=; b=dhQ7fgJsPTEfV46bHYk2err9nOWq/fyVzpUf2pmqxcQc/jgqxcD/eksES5FQIB/dmq3iTS 5pYrm0XhzdQ7uQQn3UvsvoQCnQDr352FcW6idvFx87yWwcmK0advLzMKdsVeM7rUgmt2/D CXKCRMi6uPiPZM1Bmg3vah1mRdmhiBM+O+CmxSUG/uY1xWDh7SPMqhSgxAxVm4GqTtcfXJ ayLCNwnBhqr3Vvudba33/DK/yA9zQyPo0HfDR43m4A55Xay/KYKnpQsuKQ/DevMrXVLTbN Z02lq3SzyTgPJVdPUFKEY5xsXaImowhs6BDSMJCrsMtSWHbGDvYs1+umd/GU7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1j2G6p0tz19k5; Sun, 8 Sep 2024 07:55:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4887toOD024744; Sun, 8 Sep 2024 07:55:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4887toiD024741; Sun, 8 Sep 2024 07:55:50 GMT (envelope-from git) Date: Sun, 8 Sep 2024 07:55:50 GMT Message-Id: <202409080755.4887toiD024741@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 6b147f693b91 - stable/13 - Add UPDATING note about running make delete-old after libc++ 18 upgrade 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6b147f693b91f16db7ba6193611f6f4d2ed762a5 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=6b147f693b91f16db7ba6193611f6f4d2ed762a5 commit 6b147f693b91f16db7ba6193611f6f4d2ed762a5 Author: Dimitry Andric AuthorDate: 2024-09-05 19:55:44 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 07:51:37 +0000 Add UPDATING note about running make delete-old after libc++ 18 upgrade PR: 279692 MFC after: 3 days (cherry picked from commit 157802238b5aa7722aff40317fe6d05f5c975d71) --- UPDATING | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UPDATING b/UPDATING index 75f04569de82..6331b1bb0da8 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,13 @@ 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. +20240419: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 18.1.6. It is important that you run `make delete-old` + as described in the COMMON ITEMS section, otherwise several libc++ + headers that are obsolete and need to be removed can cause compilation + errors in C++ programs. + 20240218: MFC of 713db49d06de changed 'struct ieee80211vap' internals in net80211. Given we do not have enough spares and the struct is allocated by From nobody Sun Sep 8 12:05:02 2024 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 4X1pYp6t2nz5TfCc; Sun, 08 Sep 2024 12:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1pYp55b2z4yx2; Sun, 8 Sep 2024 12:05:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725797102; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=djplIO87MtsGF9e+Gex2nyEagtQIuzt8w2Qzx+bvgQM=; b=p828z0XXfF7Z7XM36HK1WriflEe15jCFVRYdshZXQ6JimJoMp3MALTr+QpBgW8CZd3R0iZ jvoJ93lUhaCIj92R7yOIM29UazQCARsiWLeOIINcUmdbbdKUDhi7auwhPdtBdeV9UO39Vn 9rRNanccAg3vVWYfaHmYqHYWHpFsN+w2I0Ysnx+5V4suPSXRWEA3i4dlkv4jylDMB7mVE/ U2p25vXnId3gjExH1fmogWnhoUU+Idn9gBzPn5ks86iU0DdRl6dBsdZhZMZxnRswRMIQZL AvemZu25YTMyDz8sEfXUlKj17ISpfKTmrUWAYOvTiwGLHzp50AmXzJSEmf6mqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725797102; a=rsa-sha256; cv=none; b=q5xyzCXuVvalK9vieP4CTxWYnXQIOgkA8eDA8JuALiaoAWUdqmRC/HIxneYeZsw69mLVoX HavIP9ocWeKjim+8opjzq0YRglom7PHV9hL5R6hRfp6qF1zu1+RKUk9DcNmXsL5LpagFg2 Bi9jm58Rp/+TQCi8wy690I7e0ATDQSiYWwCXch0OWB2x6/dx2Oe5r9EUz+DkozPCaFJrD6 //fEzKN/r5oRlYZEzsWGQX5x+L3fQ+Is4GqPqpObMU7X09KmSFzDZ4lHHCubQ/BWytkOC+ K869saEX8rBIbguQYn/qyxmnMjdBLObpKE8XKTMe3aVPILHLqI00O9rMFS6fMQ== 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=1725797102; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=djplIO87MtsGF9e+Gex2nyEagtQIuzt8w2Qzx+bvgQM=; b=ctkJmtGW5ktwTU4UsNJWBMa1YgX+VSTQGlUEe0oheDvCQrH8pQQk/4rSczTmoOXDnm5FkF jO7xEbfNV8QHUePWK8tVdVbn/i2FfHKXM/Oxm6KS/jKhk+dz/6oDIXCGqdweT60BVF2FeT wL6DHtSrXmadzakAckF69m+DE6afhtGqLIB1lpm6G1uv6qCKXlgEGvKX94TZGTO7/BLru4 zx9uqEMUyEBbBEloT0RSVnhX8j+Uo6O13XogBaehqIClgZ9aF4PQY+i3wmvB3nhlxfM+mD wNcROJjGLA5HLObQiUMkWvUU3BGBCODINEQ5CTbb1cbJh+RdoGVL4hCgVcCN/A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1pYp3xf5zJJn; Sun, 8 Sep 2024 12:05:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 488C52VL047753; Sun, 8 Sep 2024 12:05:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 488C52mW047750; Sun, 8 Sep 2024 12:05:02 GMT (envelope-from git) Date: Sun, 8 Sep 2024 12:05:02 GMT Message-Id: <202409081205.488C52mW047750@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 1dfb2690ccee - stable/14 - libcbor: Ignore errors for unknown #pragmas 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1dfb2690ccee42c6af6320a2eb10875ae1c4bb0d Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=1dfb2690ccee42c6af6320a2eb10875ae1c4bb0d commit 1dfb2690ccee42c6af6320a2eb10875ae1c4bb0d Author: John Baldwin AuthorDate: 2024-05-07 18:44:52 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 12:03:17 +0000 libcbor: Ignore errors for unknown #pragmas libcbor embeds clang-specific #pragmas that GCC then warns about. Reviewed by: emaste (cherry picked from commit 6ca0468a2f23c82d6cdde2af1a42b62af3664766) --- lib/libcbor/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libcbor/Makefile b/lib/libcbor/Makefile index 5ae2c34a5963..c9d86c0b95ad 100644 --- a/lib/libcbor/Makefile +++ b/lib/libcbor/Makefile @@ -30,6 +30,7 @@ SRCS+= cbor/internal/unicode.c CFLAGS+= -I${DIST}/src -I${.CURDIR} WARNS?= 2 +IGNORE_PRAGMA= MAN= .include From nobody Sun Sep 8 12:05:46 2024 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 4X1pZg0WMMz5Tdx7; Sun, 08 Sep 2024 12:05: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4X1pZg012gz50Qq; Sun, 8 Sep 2024 12:05:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725797147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kECdeh9bQC5BxV6l4WIl29jss2iJ0vbFEm/Z8xnLigg=; b=fBPGax5EGkDwI10z6hCNS6Xoug/hkgpU2UmwjCVO+rcbDJfEopO27f6f0L0uaffeHz5WKv 5QFu+UvlZAZDWzjyDGjib/BzxejWrFxlsHFDIEdDAvxBmjwDHMdSyD0Z4YXIgUfr7hSOBK NYKhn+sbsM8cEw8wbKO4sxQDdlIGGZiGoceXX+Gcc5fvUNRkNaClMjQkVlE2chfwSGnrLo +JUE6BIHMK4FEVFqnKiiS5FOk6paezN6Mn7psL6iyRzGBsGdQ52JsSncqZOX+wKFj2+EGv msCqAwBA974gW6zDwgr2q8e5IvDpgtfuVq8LJKVeS13VTEWgLk2a+t1gZ/FEWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725797147; a=rsa-sha256; cv=none; b=lw/q1TIXCkDImCiaIYhtngc7+lFVWHMxOPVGffbzs2SH9flqIH+BrdVPBHsIyP1BvinG0O M5PJRESs+IX/dpj7BqEarRR3AKCzgPRm8Ew6nbDvMlvcHaJEN4YnsY6PZQVBDtAyxFWSn6 HqYbP/24jdaTljpqNWp+0TLFCap0HGUojXmpP5Uv9YJhXmyBTpG27T96p5ypNFuSyWmiKd ttJBEmAyVVUhH8+JD0va4G5LwXgfvtwG7TG7ghAoGx2RDAWVw2JOnFVPBphC9WisXaHHvf Szx8zvSeA6hIRJR2aQFkek9zgxQZVLHBxU4ghimcYyJnSuYWQDzrr1041z03Lw== 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=1725797147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kECdeh9bQC5BxV6l4WIl29jss2iJ0vbFEm/Z8xnLigg=; b=utigZ1kD81vFpyioucbje7AYa3hcZxCgVPWQGQ5S6yJDSmCw+vYIah70WI4IlPZKjlJTLc gq/LoywP5UvNnnEfAGgkGuBytllnyklAZhMxSsE281UPLJdvI7QmEw1uC/BqUJ/z9Z5gDr zwWi9CHw7F3GqVq9SddwtzmhrtPzFYaR/V8xIIJtwh5fbyFnnCw/l3aVx7/RRvKLG6SXPU x5no/kmHoHQOcZvknt2vgTJ4yX/7HJp+L4MYAKCoX6O26nE+iL/anH9O95gCH7h+SNVU9+ f6uAhXXJWn0Pr906dwNlVuNHOOYpYgegMz/b4apUEDusVUXoyssuycXq9eq9kw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4X1pZf6dS7zJRX; Sun, 8 Sep 2024 12:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 488C5kpP048006; Sun, 8 Sep 2024 12:05:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 488C5kDf048003; Sun, 8 Sep 2024 12:05:46 GMT (envelope-from git) Date: Sun, 8 Sep 2024 12:05:46 GMT Message-Id: <202409081205.488C5kDf048003@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: b07e847dd98f - stable/13 - libcbor: Ignore errors for unknown #pragmas 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b07e847dd98f60433310a2380d6be2e7b23c42ae Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=b07e847dd98f60433310a2380d6be2e7b23c42ae commit b07e847dd98f60433310a2380d6be2e7b23c42ae Author: John Baldwin AuthorDate: 2024-05-07 18:44:52 +0000 Commit: Dimitry Andric CommitDate: 2024-09-08 12:04:02 +0000 libcbor: Ignore errors for unknown #pragmas libcbor embeds clang-specific #pragmas that GCC then warns about. Reviewed by: emaste (cherry picked from commit 6ca0468a2f23c82d6cdde2af1a42b62af3664766) --- lib/libcbor/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libcbor/Makefile b/lib/libcbor/Makefile index 5ae2c34a5963..c9d86c0b95ad 100644 --- a/lib/libcbor/Makefile +++ b/lib/libcbor/Makefile @@ -30,6 +30,7 @@ SRCS+= cbor/internal/unicode.c CFLAGS+= -I${DIST}/src -I${.CURDIR} WARNS?= 2 +IGNORE_PRAGMA= MAN= .include