From nobody Mon Nov 6 02:43:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SNwdt17N4z50kCZ; Mon, 6 Nov 2023 02:43: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SNwds5zL3z4KSt; Mon, 6 Nov 2023 02:43:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699238625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=imagOhhcoalM1BIXXonGglA2Ki+cwQf5BggDBxFj2uw=; b=DZAVj5+lxIHssRXmvNG4KhByQUcNMCzpKY0vgDSCqtJVX53ItWfnEJrpK908sjMSql4BYD Cv7R6l41Ecxlm0EMAr/uyMFX82i9xlF8U3mBxzH8m6shpemw14PMUABO1SRFYVQ5iclnC/ llY5RMjQ7cTtoikoxh1UlVIVsdwnCl7vX/nD8aJvg7m3Z+vX4bT7PC6ZLG7UOM9SUU154Z Pzp3A1Kdo8zUec0gHyh4NPmAN2XbtDXpsyRtOyYssntO0+uY2/CPCGvCokhSksYEMqVPbL I5xZYP/yIHlEDgpg88u9vLbox3JMWOIfjlKxo1R7FZWdeXEiPNu6gwyVAIoq0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699238625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=imagOhhcoalM1BIXXonGglA2Ki+cwQf5BggDBxFj2uw=; b=u8Mw0XqZC2wgX1iVhjix08Y4URvm/4zCh2Y/Ia6YChGOZWiEscfs8d/p9+ZBOVDJJeiwqD i87K5N+y1mc34iLxiz07YEgm6RSFS7hnmlsBQOOX13Eclz8YVF3M+evzCmSG26ZzCZ9whS hRVRPAdEldkxXL0jqjp8ZJEq0NxTQNscEbPFKmLXgFOltH5Ec2na25mSDSHVtdVRWJk2N5 qcGpZheq1SA81b9PWh8WWqv6MV/oeKPJL9GfLcgIb5DYbLsB99jfzNfQB4XxlPKmXkVs/p LS9WphI0JbuqJsYLlvKCpJ4WMbC4sqxSp7V1lZULB+C6uD3XE8VxLEvAyT/2kA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699238625; a=rsa-sha256; cv=none; b=o44l+2dQdBzyyjhTKymnN+EFhgvT3fFkD3xdAIBqV5GtUw7nAp8jHz0u+Owqdy+e+BAtEx g66DuQYCNrup7e97HdqZR0lKlre2MoKJ7Vqrb1v+D09YZG1jMvJjTL8a7mCGs5FxiwHSm+ U8e3Ybbdsa7pBXCKtrdRO56NAhOiwE48H++hs3agzVv++QQ8Ib6ahg8/ykeedt7/jEFycz A2vBVUGcU0mC3ehA26MA+wQsExH5PVBLn3djdBtHAujETo1VuVAH9IpbhrHXvaoAamQmuK VZnPcUfEjrbMblm5A9LFT/xXUhzZfxJPKyMh5na23iaghd6qpyLZPFSAPR0cAA== 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 4SNwds53vdzqkh; Mon, 6 Nov 2023 02:43:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A62hjSO053949; Mon, 6 Nov 2023 02:43:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A62hjAI053946; Mon, 6 Nov 2023 02:43:45 GMT (envelope-from git) Date: Mon, 6 Nov 2023 02:43:45 GMT Message-Id: <202311060243.3A62hjAI053946@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Li-Wen Hsu Subject: git: d98193f093ea - stable/14 - ASan: Add asan_static to build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d98193f093ea4c4b44d22228f6ddd2abd80b339b Auto-Submitted: auto-generated The branch stable/14 has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=d98193f093ea4c4b44d22228f6ddd2abd80b339b commit d98193f093ea4c4b44d22228f6ddd2abd80b339b Author: SHENG-YI HONG AuthorDate: 2023-11-03 07:02:26 +0000 Commit: Li-Wen Hsu CommitDate: 2023-11-06 02:43:18 +0000 ASan: Add asan_static to build This is a partial fix for building with -DWITH_ASAN. Reviewed by: Fangrui Song, dim, emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42388 (cherry picked from commit 5c783a0b2826d1c6bbaa7d4b01a46d1dcdb39e8c) --- Makefile.inc1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.inc1 b/Makefile.inc1 index 01d3328726bd..4f564547bc84 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2994,6 +2994,7 @@ _prereq_libs+= lib/libssp_nonshared _prereq_libs+= lib/libclang_rt/asan _prereq_libs+= lib/libclang_rt/asan-preinit _prereq_libs+= lib/libclang_rt/asan_cxx +_prereq_libs+= lib/libclang_rt/asan_static .endif .if ${MK_UBSAN} != "no" _prereq_libs+= lib/libclang_rt/ubsan_minimal From nobody Mon Nov 6 13:54:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPCX43cyBz50tcJ; Mon, 6 Nov 2023 13:54: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPCX437Xzz4v0K; Mon, 6 Nov 2023 13:54:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699278884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V7OTzTRAth0poxuYwyEQyTiBBNvAtHNhwLJnaY14VOg=; b=uEdzPPQi1tB7ifudLjTS36IC16BJ52AqCfxsLaw7izLwwoG8S0ZWaAO2ne5dZsLNbQFr7q VFENnn1m4Zyezt8htt/jj8Kw67f5+BXggpsyq8lxbjsH5stkTkI2Mc/nycSOiMNTr0+5mq cbV/CtIq6R+Xfnkh6WSU5GPTltJh2K0/3bM9ML7ebPXaQeIER75Ik/nKa7UkxuP+yxaGcJ MtTUWKx6dP/mNyT+EezRyYZBXjZGtB9tcPPUoT03r1daCbCwHwKMzDVy5tz+wow7KY1sv0 As0pRsTdlwAw20rbznF4NxLgzcXQDVtxuTD2nnDLcY/LbXSshtwyu4K+DiALGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699278884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V7OTzTRAth0poxuYwyEQyTiBBNvAtHNhwLJnaY14VOg=; b=w5rFVU67Rd2S4A/86z1q44LPB9SJDfq1zVVoknQcKyzk3WSapqTkyXEwrCqgliW2pwk3dZ qp9HUSpeh5xQuqbbuSvB6ee1xAD/R/DpPF8mvU7Dtdlc55GnSFpn9AzrKxK2N3b+sjeIgA cLj87q3hXSKS94f7nt3qdDz/yZ9b/CjUuKILBXJWidFiegamQ8+NKVxwikJ7VH2V9U8i6r m0W1Uj2yABqYgidv/51uLVVcmZgY2aUrjMYNmeXYsTqMvlD96VuJ9ox8JqoPmUSJghv9Mt 72N3ERXqzWquDNTeVu+qu3wSV6VFec6UDeowa5Z+AhZ/OEatbrFRvsPfP5PC4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699278884; a=rsa-sha256; cv=none; b=CRPvYLPK9T8bEqeW5+gXzjof4yNPV621+7GNP3ah1VgZ2ZDkWuc9kMVUo5YrOmssRkQnGm YLDlTr6XCx0380BiX2RmxewdhpJyDu/KuvNV+qreJ0hHF7bfLrzZI2CEL2kaBJkcpWgKa9 ZW7c/1rTJmNQKGEveoDVHZt2tc34oOnLUtFVhhljMUKXxUHg80jVdLjClyalkljMqkj3qw LZ+LeAdWqaAZreW8PU9JWc5zeKUPIY48mLTTSNt24a+2+FAnN96RtbMqijbFjoGBVlK21k 4KENCn6gRv5HHSFbd4/X0PvmuPtT4YoBcz+0P4Mbw65GGuyCuunteLR3SuQUAw== 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 4SPCX4250Wz18hQ; Mon, 6 Nov 2023 13:54:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6DsiQO072513; Mon, 6 Nov 2023 13:54:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6DsixI072510; Mon, 6 Nov 2023 13:54:44 GMT (envelope-from git) Date: Mon, 6 Nov 2023 13:54:44 GMT Message-Id: <202311061354.3A6DsixI072510@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: 52415bfc0adf - stable/14 - bhyve(8): fix manpage 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 52415bfc0adf29a4d600a5a55b5f6b7c5f93fa4a Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=52415bfc0adf29a4d600a5a55b5f6b7c5f93fa4a commit 52415bfc0adf29a4d600a5a55b5f6b7c5f93fa4a Author: Dan McGregor AuthorDate: 2023-11-02 14:50:10 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 13:54:14 +0000 bhyve(8): fix manpage formatting In commit 67c26eb2a57 a stray ".El" was introduced, breaking formatting of options. Reviewed by: corvink, markj Fixes: 67c26eb2a57c ("bhyve: add cmdline option for TPM emulation") MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42434 (cherry picked from commit d7f9a421dfb250e016e3d29b17e2b6a6ae3bc40c) --- usr.sbin/bhyve/bhyve.8 | 1 - 1 file changed, 1 deletion(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 21313e0fcad4..6afe37bcd58e 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -563,7 +563,6 @@ Version of the TPM device according to the TCG specification. Defaults to .Cm 2.0 .El -.El .Pp Boot ROM device backends: .Bl -tag -width 10n From nobody Mon Nov 6 14:42:11 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPDZq6KqTz4yqjv; Mon, 6 Nov 2023 14:42: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPDZq5q7mz3Ld3; Mon, 6 Nov 2023 14:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281731; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I1oGjSvpVWvKAW0O7OjuEJ7s+70t0ODqg5jlvVC6JO8=; b=dxpjmDFkSa6IrWi4XSCCb6h1LApNkhULkpjvSvo/E2HDzf6oM9h+uek9CF6vTYMQ8JP94t F/tFu9rvgEmkOtAkh6h24GCO9qwn94mnHOqh0QyrthbVHz/4nevEgRI+/znOKjNNZQpXdU E3I0KWBE6AoipEnl0YkhoBzNQ+Xji4v3fSTqQ1C7jDVxorx8DQfglHVuXkx//pUX+R85t9 X3DHu7haTnLy4VvUKoGWmDHCQLW0ts2VCwcmSBGv9c7q4UNSZpHxfIF9tu6AlljaICpks5 2LqFboAloS/jJ+ehLJZd9VBIDRKFaC3sQbz0n/xIZhHU8IjfPudfuBWfSCWsEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281731; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I1oGjSvpVWvKAW0O7OjuEJ7s+70t0ODqg5jlvVC6JO8=; b=cCRBcJ8kx0JZlt81hzorrnFysf5pXgy5fsYKANCBDcbMFKg6H6QENhjMU4LSbovA/ui1zi YM45Pc4q+KKdBu/pflnJAuDB0PT2Q6KG9xqV5ez2+M7fXlxBwu33kGMVDaF1B1WdwKCcBv AkivwZ7LLjcCwxiRMz+jEgECg5K0JVxEC5C6MYmexZMFlxqIuiV1ee4a6BCL0N0cC45GIk 35l0MYrNhD9DZkBk47YOsxVT0/6AztVJzRni1jx+fRNxe1+CLd1HXeYWfCRhqqJXyhP3VR CioVFZEVhf5iV0cDOV8j56RwSmLB1cOjL2Ag8Qaiz9e1gEmwXm2PrTBuF+k4eQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699281731; a=rsa-sha256; cv=none; b=K6FAund9HGMwuYpsFmB/sRSOT1Vy2HdqvAo56/GG9AWmzEblOG0SaniolK1WWRBpzLyAqm d0CWjR6rKdsmdHCkr0S/FU8GLD4MpXT8nkPF+RlohqL8P/6m6e6fYXcqCC3hfNkfM5lBSf AylIcc6FSv78qtuItw9iqg3o5NJs/28hz9Ip4wcSk+TNuq5icRB2x0vgPOwCFKrhMGvf+R zL+nD93U1M0uuy3AMzeFTSVJuJB3JOc8SAhNZGblBbl1qAyDju8cUqZU0zgXZhdUJflncQ 1L1ipBmTbfPZ8SfnX5rt79D22b7a1fEYq9PLRUNgbOPm1OBUp2Ungmzge3rRDg== 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 4SPDZq4tPZz19Rr; Mon, 6 Nov 2023 14:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6EgB4d055762; Mon, 6 Nov 2023 14:42:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6EgBKk055759; Mon, 6 Nov 2023 14:42:11 GMT (envelope-from git) Date: Mon, 6 Nov 2023 14:42:11 GMT Message-Id: <202311061442.3A6EgBKk055759@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: 1e99535be2ea - stable/14 - fflush: Split a temporary variable in two. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-06 14:41:54 +0000 fflush: Split a temporary variable in two. It is clearer to avoid reusing temporary variables for different purposes. Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) --- lib/libc/stdio/fflush.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index a7f9348def50..7ad6adedf53f 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -104,10 +104,10 @@ int __sflush(FILE *fp) { unsigned char *p, *old_p; - int n, t, old_w; + int n, f, t, old_w; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -122,7 +122,7 @@ __sflush(FILE *fp) old_p = fp->_p; fp->_p = p; old_w = fp->_w; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); From nobody Mon Nov 6 14:44:26 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPDdR1vCGz4yrPn; Mon, 6 Nov 2023 14:44: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPDdR17Xmz3MKH; Mon, 6 Nov 2023 14:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zSsVDjN7I0NxkBz6ziQfbWJ9knUwJ/fQMUl5o9MjSlI=; b=VlMXxziCWiOkdOHS2n3lgkMRs80CSKWc9OsmoG1BurXudeIPOLkC4uaqq5SduLSqNWs4Z4 WGUw8vdyXislngSWr+ClNyRSrfim7NWA1oG8YxVz8QAYb954Hqulq1bp8tjMMArVcBWQ+C b2gbH4l7vrCYBnFPKO6Q1hZpv2tqr/+KQ57+Q1x5bpjPXJXsoxQxeCg/apNQD5GMoEBxWf EF3Gdt5t2hk5b5Om6z9E0KQVzaHi6wGKigO7CqQXK/N58ddxS9bJmYrREAFxoLvjThLJHs mqxDGXKON37qzS5J9YKJPLKRZzdX3aXGgvgU436whYBj+zZ86NiG9edx1lfDxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281867; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zSsVDjN7I0NxkBz6ziQfbWJ9knUwJ/fQMUl5o9MjSlI=; b=TiGcH2i4G/NCvg1fndJI6+higbbMgTvE65TBNmdlGF6WABjfRi70mMuD05NH+83EE4itgg C5v0Agf/b2o2Y98RkdP62/3iBpqfr+bhJM5dEhMD3o2QQ9eJxwWLWQq3HGDAHtooeVbeHn j+itMrUcjeEEuNtc8/A1CQqlIyPnrShAYaMpA8a1JJcrnPiLJEylWw0geH9DC+Vxvqo+ZS tA6RAqI46y31n5Tg4Gz7mYGAcgVjF3cfIw47KErUBUXsKXDDGCCPuacXK72W3vAoR/dOFA IWtRwrHiyCBsme+8w9SAMHx1YTCmKLHS1HgyyUw97+E7mR4UtAZgDfRllwtaIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699281867; a=rsa-sha256; cv=none; b=M9IUCQTSP5el19dPs6VnrZDzgnZo+HRd714Jq5dgwtgSspABESrCBzPkVpiXdy8iG7sWJW LCO8uK3a9YCaE6eo2OdyD4duthRgONDE78fVnfN6X/iZr76njZMpeBiGHZv+B1tuI4hPiR jd72iglxpkN6wkW4jRvvcoSZxSW0dSegV9Xtn7w+Pg7LIqTiwm0D1JpSk1zXKuvECFQzrs VPQeU/IT5gDJhdaCUyEdCe+NJ2J6b0+qwzyhDblvP2J6cc/CjD3/XsbjQ1IKU/hSMKRcmz wq711nSdZicSFHKnNCOD9NNrjfHAJFK3HCXwJofX2J+oKY/lWcHEQ6HD8aPyrg== 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 4SPDdR0BZDz19xx; Mon, 6 Nov 2023 14:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6EiQXp057403; Mon, 6 Nov 2023 14:44:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6EiQqi057400; Mon, 6 Nov 2023 14:44:26 GMT (envelope-from git) Date: Mon, 6 Nov 2023 14:44:26 GMT Message-Id: <202311061444.3A6EiQqi057400@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: ccdd8337f9cb - stable/13 - fflush: Split a temporary variable in two. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4 commit ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-06 14:43:41 +0000 fflush: Split a temporary variable in two. It is clearer to avoid reusing temporary variables for different purposes. Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) (cherry picked from commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd) --- lib/libc/stdio/fflush.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index a7f9348def50..7ad6adedf53f 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -104,10 +104,10 @@ int __sflush(FILE *fp) { unsigned char *p, *old_p; - int n, t, old_w; + int n, f, t, old_w; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -122,7 +122,7 @@ __sflush(FILE *fp) old_p = fp->_p; fp->_p = p; old_w = fp->_w; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); From nobody Mon Nov 6 14:45:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPDfP401vz4yrbq; Mon, 6 Nov 2023 14:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPDfP3S18z3MhL; Mon, 6 Nov 2023 14:45:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zNu1eEb6i85voRuXWx7FH4lTpT7jkwa43/Fl9+jL4WE=; b=xDHyPrE1xH8Dgj0wn3AyghuPA32Tp2oCO/KLzPwKvuXBsudwxa1omQ3JXt4W4rSFm9o/Rr q6JKtUlQRa+Xvl6xCoe5998hCkoxXeaxGoXacK+cYu9MIFT63TWzhf3rE5SoNKVf7ArJf7 HLDhTa2medz8xglLaJsw/u5joJz3M5aKXKkQhOqlCCSAhVsKydqBfmHtw7PjB5MeFcqBXy PTOWCKeL5A1rClyS6rTitlfReQJbmCpSv+0TBBsRjjrwXEaTsRDDVMcln859Jxib+DZ27w ygLErYNofwulLxBGMRL1fqWi6ZER+7lvXNR9tZZazuxmD79v4EIwZUYePB3vNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699281917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zNu1eEb6i85voRuXWx7FH4lTpT7jkwa43/Fl9+jL4WE=; b=gCvfmvqZ5BDyLc/N09N4MzheJDvGdjtpgzGMex6sz0i52rmM7wymf7WZZjr6tnhvALzGKT uiWbyClgkXL4znCFegacVTnDNYFPoHMjNr3KPRYQMZtscU7VqLkW72t+1VKK9YvEjUtyL8 tNiL34abplrEooFnRExd2LEfJzjsLuB4b/LTQtj4HTF3IgjlYCe36i4RxcgNLyqkX0hB7j ND0ZfC4PzpWklJEjIYn7ii1PKveNQUBFrV7/JVPtjBS0NLfRBiANdwjpf9GgQGLm47lTji 4YTOGYJq2N5E2KVrjCsyODWZeGXGsgwLOo0ChkuBmPjseNGdJqNcEx6tCx1LeQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699281917; a=rsa-sha256; cv=none; b=o1+S82wXhpI5Vc7nKuQTyzBbdidIy+MAJyguBFYShD2dOpJ4an1i7TupnDzGWF8PY+6YEl bqRUoL8Qpu37KHrnB1KZaTkZvSgm9/SPhyzMkixsCKFmWJwa/r6LmGKv1Hltgug3IoS8Lm ++IJcrtpn8uWV+u8TXrC40fweZiBQaiwlewr8N4pxcNQdANNRrm15vKrws6bHaiFrW1UDA 95JRXiGabvtQ8pkmWki94umncW98Hi/KQ/3JPbDKnuCYpM0WmtA/E5lqNe4OLW1pL6UEOg CJXlKyTI8HMSh57aOXfXH0JSi4Zm/4KpNKahxvCtD483e+HkXQi0VFNEy/g8MA== 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 4SPDfP2Xfpz19xy; Mon, 6 Nov 2023 14:45:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6EjH3M057778; Mon, 6 Nov 2023 14:45:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6EjHrq057775; Mon, 6 Nov 2023 14:45:17 GMT (envelope-from git) Date: Mon, 6 Nov 2023 14:45:17 GMT Message-Id: <202311061445.3A6EjHrq057775@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: 95fbce59c9f4 - stable/12 - fflush: Split a temporary variable in two. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 95fbce59c9f4ed4015b19a88491a37dac9d4e7d5 Auto-Submitted: auto-generated The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=95fbce59c9f4ed4015b19a88491a37dac9d4e7d5 commit 95fbce59c9f4ed4015b19a88491a37dac9d4e7d5 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-06 14:43:45 +0000 fflush: Split a temporary variable in two. It is clearer to avoid reusing temporary variables for different purposes. Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) (cherry picked from commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd) (cherry picked from commit ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4) --- lib/libc/stdio/fflush.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index f7d2fbdc28e5..05e587ecec66 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -106,10 +106,10 @@ int __sflush(FILE *fp) { unsigned char *p; - int n, t; + int n, f, t; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -122,7 +122,7 @@ __sflush(FILE *fp) * exchange buffering (via setvbuf) in user write function. */ fp->_p = p; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); From nobody Mon Nov 6 15:13:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPFHJ4H17z4yxxR; Mon, 6 Nov 2023 15:13:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPFHJ3nRsz3Snc; Mon, 6 Nov 2023 15:13:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699283628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DOBwfdzAImlMBMSSlhBxQraoWr++HuX58ycr52dvPgs=; b=Ap/dbk4L3r4xWCPAWhOYohUvL524KxgfW/Iiin/v7Sq9I6zakITLioejc1KbtyhdRSb2oE yEVpAU/6S/R/7MTgFdW/PJzqgmCMGoXBtw/Q8TsniPhSIiDkX+/UziheMBToWZ2AjSoykl mj45x/jChj5RpThx9PYJeXGnDv+kFQ62iWegTzlghbA1SA50PYBOCAGKtZcYUKPCaxlhxH DspwT2gCJGDO1wHvUJ4OCxcHpznMnZ9APKC7V2VsSsSsB5YVkz3vgbgDC2NJuDjBp0Pha8 6eSMpaywDcpOkFylaWWCO8v92FrV2K2kiYSwBVXYGk0cf6rv28LaBvghBt6tIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699283628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DOBwfdzAImlMBMSSlhBxQraoWr++HuX58ycr52dvPgs=; b=U6S35sO+1Q5b8o79jCjn6zmYq0Ea7lrsZj6a3DqPEWFYlKyurLNVQAKYUzo/I7NEKU61Xp 8tvndyfmyw1Uy04WHA0aEnU1HvtR2YKgxnilFLXiR3gD7eOh9lLXtc2tp2rh7vkaN433E0 F0TO7PmggTWZC8KJKhUtmiJDzqkubO+GG3/A9K0nlk/dNTRHiaNsoJyMyVg4Z7wmMQxb6n aioL9aGByXzorZuFRzh2VkmfJ4YCEnyXbqDrBKoKf+ICdub5yVdbx06P8FEGorPXTDZW7J Kh68mtmGpQoN19+oO3xv/0369sQ+hVYYTilVk6/ljrupdBFOLbsqHMYGnn5Rzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699283628; a=rsa-sha256; cv=none; b=KddoGfD96lVkHup2/G+3qynFn0OXXdUyrb1jgowe7g3tHvcXCRzUa+/+O+1lH2mWX5UQ4C 9ZMQR/WY0eZLtIu865zYwq6okgpUK7cyN2y/ag3Cto864d89Uas4svyhlu92UXVUaRvz3V 1lMuX+26sFq2a/rhui2nk0DsktKnh2gq2SgQ70jeJrveKg4FuZgfpv+Ql+YC6GoE/0evr/ r2zmOM8Hak2OX5TBUc45Mu05v4pe6gSSjGI1Go9CdPMujZokh5eyiFvjE4c+QZRKCZSV6N MrQCi1+C/fQoYwah5OX1V+X8tSEJl2EKUifPfmSEdlqcgM+PzrOq2eEEHuDDCQ== 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 4SPFHJ2rPpz1Bnd; Mon, 6 Nov 2023 15:13:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6FDmf3007731; Mon, 6 Nov 2023 15:13:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6FDmAZ007728; Mon, 6 Nov 2023 15:13:48 GMT (envelope-from git) Date: Mon, 6 Nov 2023 15:13:48 GMT Message-Id: <202311061513.3A6FDmAZ007728@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dmitry Chagin Subject: git: c21038f55230 - stable/14 - arm64: Use the Linux sigframe to restore registers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c21038f55230693b46cef0d900ff4fa90c05fcf6 Auto-Submitted: auto-generated The branch stable/14 has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=c21038f55230693b46cef0d900ff4fa90c05fcf6 commit c21038f55230693b46cef0d900ff4fa90c05fcf6 Author: Andrew Turner AuthorDate: 2023-10-25 09:50:11 +0000 Commit: Dmitry Chagin CommitDate: 2023-11-06 15:12:23 +0000 arm64: Use the Linux sigframe to restore registers When returning from a Linux signal use the Linux sigframe to find the register values to restore. Remove the FreeBSD ucontext from the stack as it's now unneeded. PR: 270250 Reviewed by: dchagin, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42360 (cherry picked from commit 070a4ff82a34652d533f9315ae9ad0aa8f1fdeb2) --- sys/arm64/linux/linux_sigframe.h | 1 - sys/arm64/linux/linux_sysvec.c | 96 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 88 insertions(+), 9 deletions(-) diff --git a/sys/arm64/linux/linux_sigframe.h b/sys/arm64/linux/linux_sigframe.h index e903fea295dc..2a004f4db74d 100644 --- a/sys/arm64/linux/linux_sigframe.h +++ b/sys/arm64/linux/linux_sigframe.h @@ -76,7 +76,6 @@ struct l_sigframe { /* frame_record */ uint64_t fp; uint64_t lr; - ucontext_t uc; }; #define LINUX_MINSIGSTKSZ roundup(sizeof(struct l_sigframe), 16) diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c index a850d5e34bc0..4b5544841313 100644 --- a/sys/arm64/linux/linux_sysvec.c +++ b/sys/arm64/linux/linux_sysvec.c @@ -187,28 +187,109 @@ linux_exec_setregs(struct thread *td, struct image_params *imgp, bzero(&pcb->pcb_dbg_regs, sizeof(pcb->pcb_dbg_regs)); } +static bool +linux_parse_sigreturn_ctx(struct thread *td, struct l_sigcontext *sc) +{ + struct l_fpsimd_context *fpsimd; + struct _l_aarch64_ctx *ctx; + int offset; + + offset = 0; + while (1) { + /* The offset must be 16 byte aligned */ + if ((offset & 15) != 0) + return (false); + + /* Check for buffer overflow of the ctx */ + if ((offset + sizeof(*ctx)) > + sizeof(sc->__reserved)) + return (false); + + ctx = (struct _l_aarch64_ctx *)&sc->__reserved[offset]; + + /* Check for buffer overflow of the data */ + if ((offset + ctx->size) > sizeof(sc->__reserved)) + return (false); + + switch(ctx->magic) { + case 0: + if (ctx->size != 0) + return (false); + return (true); + case L_ESR_MAGIC: + /* Ignore */ + break; +#ifdef VFP + case L_FPSIMD_MAGIC: + fpsimd = (struct l_fpsimd_context *)ctx; + + /* + * Discard any vfp state for the current thread, we + * are about to override it. + */ + critical_enter(); + vfp_discard(td); + critical_exit(); + + td->td_pcb->pcb_fpustate.vfp_fpcr = fpsimd->fpcr; + td->td_pcb->pcb_fpustate.vfp_fpsr = fpsimd->fpsr; + memcpy(td->td_pcb->pcb_fpustate.vfp_regs, + fpsimd->vregs, sizeof(fpsimd->vregs)); + + break; +#endif + default: + return (false); + } + + offset += ctx->size; + } + +} + int linux_rt_sigreturn(struct thread *td, struct linux_rt_sigreturn_args *args) { + struct l_rt_sigframe *sf; struct l_sigframe *frame; - ucontext_t uc; struct trapframe *tf; + sigset_t bmask; int error; + sf = malloc(sizeof(*sf), M_LINUX, M_WAITOK | M_ZERO); + tf = td->td_frame; frame = (struct l_sigframe *)tf->tf_sp; + error = copyin((void *)&frame->sf, sf, sizeof(*sf)); + if (error != 0) { + free(sf, M_LINUX); + return (error); + } - if (copyin((void *)&frame->uc, &uc, sizeof(uc))) - return (EFAULT); + memcpy(tf->tf_x, sf->sf_uc.uc_sc.regs, sizeof(tf->tf_x)); + tf->tf_lr = sf->sf_uc.uc_sc.regs[30]; + tf->tf_sp = sf->sf_uc.uc_sc.sp; + tf->tf_elr = sf->sf_uc.uc_sc.pc; - error = set_mcontext(td, &uc.uc_mcontext); - if (error != 0) - return (error); + if ((sf->sf_uc.uc_sc.pstate & PSR_M_MASK) != PSR_M_EL0t || + (sf->sf_uc.uc_sc.pstate & PSR_AARCH32) != 0 || + (sf->sf_uc.uc_sc.pstate & PSR_DAIF) != + (td->td_frame->tf_spsr & PSR_DAIF)) + goto einval; + tf->tf_spsr = sf->sf_uc.uc_sc.pstate; + + if (!linux_parse_sigreturn_ctx(td, &sf->sf_uc.uc_sc)) + goto einval; /* Restore signal mask. */ - kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); + linux_to_bsd_sigset(&sf->sf_uc.uc_sigmask, &bmask); + kern_sigprocmask(td, SIG_SETMASK, &bmask, NULL, 0); + free(sf, M_LINUX); return (EJUSTRETURN); +einval: + free(sf, M_LINUX); + return (EINVAL); } static void @@ -310,7 +391,6 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) } memcpy(&frame->sf.sf_uc.uc_stack, &uc_stack, sizeof(uc_stack)); - memcpy(&frame->uc, &uc, sizeof(uc)); /* Copy the sigframe out to the user's stack. */ if (copyout(frame, fp, sizeof(*fp)) != 0) { From nobody Mon Nov 6 16:45:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKT3fDdz50F60; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKT37yHz4GQd; Mon, 6 Nov 2023 16:45:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jqM7GSTuuV5e6f4c4GCaHX3UaDcDxVy4mNKJmWwsY+g=; b=ViatHiFr7MffzAsgh5aLRE+TS+Ao1zsdNgQxp5jmJgU6u9a5hF6ygo46YjkUjKlU77x+8P eLVxTfjswNvJMP4LHvnAiaT2rLZ6A42M+y2qytwRkbXtRX8EY2ks44V1Azll4TQthlKHGo XDYg0k9iniKP2482C9YLDXAiMvEHXr24pN4ER0R4uHjDtWAsM17ly2nd4Pfxmc1FKjBgqx tWn/VAdp+hH6EBbHY3K//uvukMRZ/Y8nAK68M+XpEN2riaoEpO5fS/GsKBVVNMPj08UgcB aElKua23BcKNe3aq2px3himiZYE6X7GSv1xVE9MYukGa8jNTvMX3hRiKS7ryow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jqM7GSTuuV5e6f4c4GCaHX3UaDcDxVy4mNKJmWwsY+g=; b=kwIzjLmBhd8UKIOkGLk+aiBv8ToNZYV+Wc4IOAFGwKfEbICIx6Z5mntxtFhXixI9rda3Ya Y5s2fn8IbqUbK3JVU3NPev4dw/UFGU/S2e5VsO34hQfy0+vJmF4YNj4dpFbAFsesFmmpib emt55NHXuxFAFuYQhn+aPakX37fbWhZSw9R8aKp/ZdxadZlA+apDLpQnIoMH6jrzGAy6k9 l5OOMZUKZ98wTf2Cnml9wYfKfI99oFWyAtrOVFudWyfwRRAAN1dBaC2pRaBfOXRLa1H5b9 Bn69s/1ldAKWcIx9g7+azKxkxBjrCvZ2rhXqdApgHS/i3AM2Wgs1C6FWZP1Ldw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289149; a=rsa-sha256; cv=none; b=nokZTUCwOWrXn8Ube+83dlBsCxBLRwTlfr4ccfrDqGeaGxX03Rpu/m8gPFNcJSfSzPlLkD Y6/NCwvkejvmgrcIYqLDZMdjHZN9ak4JydYok8/ZMGqJUyXihrEskBuIQRgZUZ9iI4d5sA D3cNFTdUn5VcmR/lPoZRdBUGluIhwf7Sv8e8l3Lg4nTZnLeD7epNsihBISVJd/XdnUlDrb yNeMitd89gc230ffVN6U32jGdOFUFkgcdMh1GshmcXAAFf2Aept07jzL0RmfVPTNqaBG5a NncZV7ICRBtKWOWMLn98b86U6S5Qlluyms25RYCWVtCydG5s5vX2DeNh1EAo6g== 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 4SPHKT2BlFzqV; Mon, 6 Nov 2023 16:45:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6Gjnd7058234; Mon, 6 Nov 2023 16:45:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6Gjn8T058231; Mon, 6 Nov 2023 16:45:49 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:49 GMT Message-Id: <202311061645.3A6Gjn8T058231@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: bf7f8a4e60ce - stable/14 - ping: Avoid reporting NaNs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: bf7f8a4e60ce450bf31e6ae110e6e37c85ee5eb0 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bf7f8a4e60ce450bf31e6ae110e6e37c85ee5eb0 commit bf7f8a4e60ce450bf31e6ae110e6e37c85ee5eb0 Author: Jose Luis Duran AuthorDate: 2023-10-06 17:55:06 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:43 +0000 ping: Avoid reporting NaNs Avoid calculating the square root of negative zero, which can easily happen on certain architectures when calculating the population standard deviation with a sample size of one, e.g., 0.01 - (0.1 * 0.1) = -0.000000. Avoid returning a NaN by capping the minimum possible variance value to zero (positive). In the future, maybe skip reporting statistics at all for a single sample. Reported by: Jenkins Reviewed by: asomers MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D42114 (cherry picked from commit 4d348e83b738347f6aaf2b110459a01c5402d04e) --- sbin/ping/ping.c | 4 ++-- sbin/ping/ping6.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index 072d4607f745..f67d85f30a5d 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -1522,10 +1522,10 @@ finish(void) if (nreceived && timing) { double n = nreceived + nrepeats; double avg = tsum / n; - double vari = tsumsq / n - avg * avg; + double stddev = sqrt(fmax(0, tsumsq / n - avg * avg)); (void)printf( "round-trip min/avg/max/stddev = %.3f/%.3f/%.3f/%.3f ms\n", - tmin, avg, tmax, sqrt(vari)); + tmin, avg, tmax, stddev); } if (nreceived) diff --git a/sbin/ping/ping6.c b/sbin/ping/ping6.c index bd1658f9500a..d14da9c67a52 100644 --- a/sbin/ping/ping6.c +++ b/sbin/ping/ping6.c @@ -2349,10 +2349,10 @@ summary(void) /* Only display average to microseconds */ double num = nreceived + nrepeats; double avg = tsum / num; - double dev = sqrt(tsumsq / num - avg * avg); + double stddev = sqrt(fmax(0, tsumsq / num - avg * avg)); (void)printf( "round-trip min/avg/max/std-dev = %.3f/%.3f/%.3f/%.3f ms\n", - tmin, avg, tmax, dev); + tmin, avg, tmax, stddev); (void)fflush(stdout); } (void)fflush(stdout); From nobody Mon Nov 6 16:45:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKW2nJsz50DqM; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKV4JFJz4GqF; Mon, 6 Nov 2023 16:45:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WcUPUKeXmR+qcTjA1FZcJKefty9biovp69tz49DFcQI=; b=GLSK3ejeuMYYoBIzk5HiDiQaOmeRgKOQ7fEF8BV3Lkpw4Zr5OsxJDFDpVDgOdI3gDS13V+ F5Xnn52bBdsO9CY02IBBJuWRDyUIRmPFOVT3WHIzZBZoch010lp2Jo1mYvzalgGa5XCCGe nf4DpZHPVjOAstR8zzeUSVDJJ68qKfwaHsblTBfoi9JMxUG6BWZfljfz4Ense1ocbad4wz 2UBwXBYKPi/mzKJT/wjO4TadJ3xvGTASr0p1Quv4LZkXpIeTG9VxZrc0FF5sY54W7YKB8R 99Qa7SYLwc225QAVP/2fCxEKPyrkMqywP99uIvKfHGdvf3nSA3qLQmPU9nSSmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WcUPUKeXmR+qcTjA1FZcJKefty9biovp69tz49DFcQI=; b=ypYJblOEvfnLgTgYhE8GD56neB4TOaYwmXIWD+kc1XI+HK/xPN+xy6Qc24KAtR2I+f6/5L iRxc2C2zzovVOUJVVOFYAO1maVSXAoo46SCcLdTM4SQCS92ya8LR+quRSCC8Sy/3fKz00b d5SkH4NcdxxWXBEQVuzqwQVyNen4XexMwiNUr9lKRAOzcMRWZuGYjzah0P56Zc1HDaSWx5 5iMTW+TgqJt2mJpNtY26OJBEGSCywXkWvgc+aD+fN1VPjfBjuMWSVS/9HLmbV7Fz4NAd1i g4UCDLzV9BJCVOSldiWmDtVBAsI5yzZ4VY715Ek4koGde46NQRCjLevY3WTNOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289150; a=rsa-sha256; cv=none; b=DGlAR6jZcPNiIsj30lLuxG/3y44C8xBsUaLpsSfdkDzEQTzfnytq62cV63Y6V64oGBd2kr 8wt0GSeFGp+pfF+O4btmpzDWPF0q2jNFwnAv8NqzS/Tmb4tLyf8CVuOAaf1+PjZUmIb/1/ YjZKZ99BMAZzsTjee2cEgsTVCAwqr3l+qggNfFPlIK6AXp6Q78KD+oy0zyixAQhUGCqoIz TVdxar4+d36OYpPnhjeKe6x9/2Tr8VodxewI9xLCB3hfnsVR5P1GlC4Jh/4OwOMr+BH460 DcoIT+UV9Yyp0Rg1Hw5fnDnPtSP9RH5lTlPtDXBmftDTPODG+SFM8+Dq8MG0Vw== 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 4SPHKV3BxJz14s; Mon, 6 Nov 2023 16:45:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6GjoBc058286; Mon, 6 Nov 2023 16:45:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjoN3058284; Mon, 6 Nov 2023 16:45:50 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:50 GMT Message-Id: <202311061645.3A6GjoN3058284@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: b9e2bb1d6e41 - stable/14 - ping tests: Test IHL/quoted data/inner packet paths List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: b9e2bb1d6e414137aa3a980dddc6559fe52393e9 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b9e2bb1d6e414137aa3a980dddc6559fe52393e9 commit b9e2bb1d6e414137aa3a980dddc6559fe52393e9 Author: Jose Luis Duran AuthorDate: 2023-02-11 14:17:46 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:43 +0000 ping tests: Test IHL/quoted data/inner packet paths Commit 46d7b45a267b3d78c5054b210ff7b6c55bfca42b introduced these code paths. Test and document them. - Add inner packet too short test - Add inner IHL too short test - Add quoted data too short test - Add IHL too short test - Add max inner packet IHL without payload test Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D38528 (cherry picked from commit 20012a3a1a045bfe02bb64063cf0aba4d82471cb) --- sbin/ping/tests/test_ping.py | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index b501b8a606bf..93d45a1e3d7b 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -1030,6 +1030,118 @@ round-trip min/avg/max/stddev = /// ms }, id="_0_0_opts_NOP", ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 3, + "icmp_code": 1, + "ihl": 0x4, + }, + { + "returncode": 2, + "stdout": """\ +PING 192.0.2.2 (192.0.2.2): 56 data bytes + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 0 packets received, 100.0% packet loss +""", + "stderr": "", # "IHL too short" message not shown + "redacted": False, + }, + id="_IHL_too_short", + ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 3, + "icmp_code": 1, + "special": "no-payload", + }, + { + "returncode": 2, + "stdout": """\ +PATTERN: 0x01 +PING 192.0.2.2 (192.0.2.2): 56 data bytes + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 0 packets received, 100.0% packet loss +""", + "stderr": """\ +ping: quoted data too short (28 bytes) from 192.0.2.2 +""", + "redacted": False, + }, + id="_quoted_data_too_short", + ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 3, + "icmp_code": 1, + "oip_ihl": 0x4, + }, + { + "returncode": 2, + "stdout": """\ +PING 192.0.2.2 (192.0.2.2): 56 data bytes + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 0 packets received, 100.0% packet loss +""", + "stderr": "", # "inner IHL too short" message not shown + "redacted": False, + }, + id="_inner_IHL_too_short", + ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 3, + "icmp_code": 1, + "oip_ihl": 0xF, + }, + { + "returncode": 2, + "stdout": """\ +PING 192.0.2.2 (192.0.2.2): 56 data bytes + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 0 packets received, 100.0% packet loss +""", + "stderr": """\ +ping: inner packet too short (84 bytes) from 192.0.2.2 +""", + "redacted": False, + }, + id="_inner_packet_too_short", + ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 3, + "icmp_code": 1, + "oip_ihl": 0xF, + "special": "no-payload", + }, + { + "returncode": 2, + "stdout": """\ +PATTERN: 0x01 +PING 192.0.2.2 (192.0.2.2): 56 data bytes + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 0 packets received, 100.0% packet loss +""", + "stderr": "", + "redacted": False, + }, + id="_max_inner_packet_ihl_without_payload", + ), pytest.param( { "src": "192.0.2.1", From nobody Mon Nov 6 16:45:51 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKW6kW7z50F41; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKW55zKz4Glp; Mon, 6 Nov 2023 16:45:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BE2fUnWw8v/FROjPz3YJNOLYkAUrlN97dCSx7zfykbc=; b=M0vAJWcUrDi40vzRs6QF1LGQY9BaIGA33GFpO1x9VYNqf4nxk0JJJWNY8Q/tvR9YgrExPl lU0vl7NzQwz49Krwr4sx7R9RG/6u/jY/FVQk1nVDVK0e2d2LFBFXOzja5T0Je2itriL/L5 ruZPoUAgaPq8DCXUq5OlXeEMAjkp2NRC4bxblTOTrnn3byD2zmJY77BnKW6bmtFeKJxZL0 E1ecetIQbchLHjLOhuhnifJVIsTDdxrm61MBVgXmt6fbpRfYoe1lyDfzA/SimN8yKZI3oc 9IMaWPCKyc06DH4wHHEZLQ47rvTI8T0LucUhQuttD+UpT4mAu/rOu6q0Tz1x2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BE2fUnWw8v/FROjPz3YJNOLYkAUrlN97dCSx7zfykbc=; b=W1zeGoEW1nLIfRtxU9VgSK5MCHN/W41EYHRymcjGPmQnCd+aOKS5EBdI48B7bSZfmcLjSO uRFvMCwB31Mj2TxMRdYZco8coMuSkOQ3L2Wg2uARtFM7t6eHySYXjChmhy8M1sSJCcwZTt U4nyJkMDIlWu1HSG6L/Fm8gIiTupeI+XcupSLlUNPL3xzpStVE47h8ivEvzYydEQTLsXtm 1HR7GkJfTGuOMGuTgGNMtO3cFadTP6KtQPmoP2urLSYdIrbz6vQDKK4zcVXM3kzmnkV53S wS0dM/jSpBVsaRsRgH742s4vlHYuwUVcykDvOIiq6YdDPDMAq4vgjAej81dLfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289151; a=rsa-sha256; cv=none; b=wUSondDxeDABLu8N4KZcb8l8VztrYY3vFhWvptO0ReBTsyk9LNncmKjHFGHLucvoQ+v+UH cyhj/kaRPQWRVQ0Q9bNhoBBD+ltJBto207Cxs8pUHNcyujPQkPb7Q1ciSzpKzJ2KspHaov gp8aev51KWQhemfFxcTK3EeaXMZsAUG5RMt/r/gA2Zj8ZwoycFRgTMGTwW8CIqNQAkCVXP aghQUIX/WsRIIC/oas2dQh+OsbCwRHp2walS1XADpIYBjJw4Gix2eS/acGP1GuT0UFLVGO I+vNcK1FwOXuhoiFsVSQW0ynZyaDspeK6xW1BMPa3EBB+1HKUJu5hofgMe9iNw== 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 4SPHKW4CqJzVp; Mon, 6 Nov 2023 16:45:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6GjpNb058334; Mon, 6 Nov 2023 16:45:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjpWP058331; Mon, 6 Nov 2023 16:45:51 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:51 GMT Message-Id: <202311061645.3A6GjpWP058331@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: b0da2a3fa145 - stable/14 - ping: Remove an extra new line character List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: b0da2a3fa1458b5cf404edc868b3014bd8825ed7 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b0da2a3fa1458b5cf404edc868b3014bd8825ed7 commit b0da2a3fa1458b5cf404edc868b3014bd8825ed7 Author: Jose Luis Duran AuthorDate: 2023-02-09 18:16:39 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:43 +0000 ping: Remove an extra new line character This matches the behavior when an RR truncated route is printed. Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D39485 (cherry picked from commit d2c9a140547acf1bfe3a233ef15cf971be93e14d) --- sbin/ping/ping.c | 2 +- sbin/ping/tests/test_ping.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index f67d85f30a5d..848ffbbb7c76 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -1406,7 +1406,7 @@ pr_pack(char *buf, ssize_t cc, struct sockaddr_in *from, struct timespec *tv) (void)putchar('\n'); } } else - (void)printf("\t(truncated route)\n"); + (void)printf("\t(truncated route)"); break; case IPOPT_RR: j = cp[IPOPT_OLEN]; /* get length */ diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 93d45a1e3d7b..8d3bd115e2a6 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -859,7 +859,6 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes 64 bytes from: icmp_seq=0 ttl= time= ms LSRR: (truncated route) - --- 192.0.2.2 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = /// ms @@ -916,7 +915,6 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes 64 bytes from: icmp_seq=0 ttl= time= ms SSRR: (truncated route) - --- 192.0.2.2 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = /// ms From nobody Mon Nov 6 16:45:52 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKX6mk1z50Dyp; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKX5yd0z4Gx1; Mon, 6 Nov 2023 16:45:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=64OhOr5mmviY7mWaRkSgTHu+8bte8wyvhg4f4qXU/is=; b=nmJno4oNr4VklQ09mqvjteLr6zIZCTRmIeF9jMFx4a/UDSuNCbXWBFPX2TE/6nzIpWHhE3 3JZderX2vMq7Wi24sXpePjNCEtqoOjldx6VH8vT9j1seuZQGZwe7zW0iTFmN5JlA1zJq+U 0sRkheFk9eI+wGRPHhHAO1W6zlvrqYNtsYl+ccMvfdvvk/ZRaTPOqoyUe0atotYyhpXG5f IHpeWqxJMS6pouWoLTYwXwi2XydAND773Re2K7JD79CiPIJHwMVwtd5IQdF/tL4vmTkdUa WLL9a9NegnNOGNwDw726t0fh4hFWIN7kPkk1chwK1Ep4L/akPihZohicS7W9ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=64OhOr5mmviY7mWaRkSgTHu+8bte8wyvhg4f4qXU/is=; b=DHzP3psunp8JZGByEye/GP44A/zLtp7DiCwOFsmuqZPOHJQ7+cSmQQSRKx78rWeAINNDcz P1+wMj23c+1KA1A9xfxD1oMYzeBpiAQD4uyE4hBZ6HDFpKnTm1dJ1UcHyA59CUmqQhxAaG Jk9ecaQb6A0TrEpHY/EmVGRQRnKSHvfgLEKOSHKWOIz3AmUb0iwUc42rEWD21T7LqzCkeE JUs8zYlbVwZAzEM5WGvZEpUq9Xv4Tn03VTWwXRQXf/+RGMglu0ymIHcQyFM3Kg3OuWMnuF Pm0YGub6luM+3kjOoE0AjihehCsyRczpkyfMjlCOMJNGDBn2UbrpyYMX6JjOKQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289152; a=rsa-sha256; cv=none; b=Me5k177ctdRu4x8g1EFLlPYiK1IezLhG8WUyJdcmsnPl1qPYr6MtsRSwzdkhvSfVAEn0aX By9JFs/DAbhm/pD7/OlDeXGWeDSv4eTV60cnC6mYh5MIJwSv/fDuHfUYZJUGPtpXBkhSgp cbE605MxWcjVVt2ervxGYH1qKwK+W7xAzLi9wvEW4wE1l0MYLFlxmaHzBzi039J7BJstCd 1UPacPC90VuPIcyeceeqpomtT02gA4aweSuDpftTmpZwRimdbMJK7s4FHyxIcHqA1UYvXw UkMRzPZ0MpF0gLyIKQd7NpnLLP786A/2kMXnxH559kpNZPRLAy+0SeQu0RiDKw== 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 4SPHKX4x9FzqW; Mon, 6 Nov 2023 16:45:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6Gjqis058376; Mon, 6 Nov 2023 16:45:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjqT2058373; Mon, 6 Nov 2023 16:45:52 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:52 GMT Message-Id: <202311061645.3A6GjqT2058373@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: 5a5ae1d16e9d - stable/14 - ping: Specify the sigaction(2) 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 5a5ae1d16e9d2cc95293802f054be926acc5cea2 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5a5ae1d16e9d2cc95293802f054be926acc5cea2 commit 5a5ae1d16e9d2cc95293802f054be926acc5cea2 Author: Jose Luis Duran AuthorDate: 2023-02-10 14:01:22 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:43 +0000 ping: Specify the sigaction(2) name After a2a008880568eaeb87d8404b39627b83df851f34, specify the signal name. Obtained from: Darwin MFC after: 1 week Reviewed by: asomers Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D38484 (cherry picked from commit 72d3e6677f477defa5b3741f42b0cca39bafeee9) --- sbin/ping/ping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index 848ffbbb7c76..ad16ff5a5ee9 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -890,7 +890,7 @@ ping(int argc, char *const *argv) si_sa.sa_handler = status; if (sigaction(SIGINFO, &si_sa, 0) == -1) { - err(EX_OSERR, "sigaction"); + err(EX_OSERR, "sigaction SIGINFO"); } if (alarmtimeout > 0) { From nobody Mon Nov 6 16:45:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKZ0XQyz50F8R; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKY6tWPz4Gxn; Mon, 6 Nov 2023 16:45:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289153; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1u4UGTL132vfsGsAiuj6C0gFsyeNChGvGxvRlceI6Kg=; b=AMveO/HAXFJUp3iwbj32fYg6diubQKTKE4a5Pn85zbq+OHwU9VM4xy6F6I2R0sJlE0wFuS Lm66S4+ByC3sOgvNjAhPXBAYilLhhfVESf2RfC0jGSHv8zE9kHUfea2EmvJN8ZWewaTk/F 8otGfq8uw2txvsPWWPAYNcIuJzqo5XtLDmUTREu+aOOplKXuXxV79SaMTpmFoRNzLiDIeD 6iqKoJnJazw7jSS5bqytY5/sdFV+ZACdDpEpZ7zH8H5N7gt6rlH1c9mjoPTZtIT+OuIzYD 7K2YE1Vm/rVc2wuFGNeKWBWc/AQxyZ5W0vFFinWh+rMmr5obnYQeLDKCiWK0OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289153; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1u4UGTL132vfsGsAiuj6C0gFsyeNChGvGxvRlceI6Kg=; b=FEGItur0wvrS2Cy6VF3CrxZNqZKk/raSa+A9GtCNzSMrSADm1ekJJnnNWV3/WHuGUrm58c UrvmhcE4kvPlofMhreQmIvChh6n59L620IocKdKiMnhpEcZSk7490Ue9FcZzx2s3EfIk1A FNw3kPDbW8EZVTZurTcgJP1CqJmmqHEMTYp5aHls9G2jFFi3nmf/q2tNJhBD7ydTyqZkiu NNhdLOYlITkZOelf7/cTXL13CffdFuXiPMcIGKCD1Bh22bH9MdphRgOr5BCeehVD+/3oey rvPx+ekGlGIpHG4P8nD8qjHSquSiWT8DCcszFOHE35YKEJ+pJOXTk6DYpGIcwA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289153; a=rsa-sha256; cv=none; b=Lt2YlAN/yFqC0uq5RTA3OZBJWny5GiLKIztqt+GBPTHsOscFfFee7bdMIwNStePj+PQPum xkuP32i8AT5bBnTi0sldwrmLNs9DaA4LhpFElHW5PnXLgK4pofGrl67x7fBn4Q/t/M9UnN XsFveFZmo0oKA4rXA56RHj+UIrXhACm89ZvvlSpZ1rv24DTaQSdf1QibrrOVUrsWmREmKx Dt/yJ/M576lZbfTGuswIeuPou+c/V3I+gZSLEtIn7WLe8Nx87QpDMpqfUlPWPOsKIn2r2r RC189he//MdndTdrERLSRil1EitUWR2i2BzrgmgIrx/g6hBCK6oi50KHt2pWgA== 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 4SPHKY5wsLzc8; Mon, 6 Nov 2023 16:45:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6Gjr9a058425; Mon, 6 Nov 2023 16:45:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjrOO058422; Mon, 6 Nov 2023 16:45:53 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:53 GMT Message-Id: <202311061645.3A6GjrOO058422@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: e2c9158f1a99 - stable/14 - ping: Unify ping/ping6 statistics section List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: e2c9158f1a993bcd410c7887b0e40ed82410dc43 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e2c9158f1a993bcd410c7887b0e40ed82410dc43 commit e2c9158f1a993bcd410c7887b0e40ed82410dc43 Author: Jose Luis Duran AuthorDate: 2022-11-21 01:18:43 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:43 +0000 ping: Unify ping/ping6 statistics section This is a first step towards a unification/simplification of ping/ping6 (internally). The end goal is to produce a standardized user-facing output. Before (ping6): PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 16 bytes from ::1, icmp_seq=0 hlim=64 time=0.168 ms 16 bytes from ::1, icmp_seq=1 hlim=64 time=0.068 ms --- 2001:db8::2 ping6 statistics --- round-trip min/avg/max/std-dev = 0.068/0.118/0.168/0.050 ms After (ping6): PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 16 bytes from ::1, icmp_seq=0 hlim=64 time=0.168 ms 16 bytes from ::1, icmp_seq=1 hlim=64 time=0.068 ms --- 2001:db8::2 ping statistics --- round-trip min/avg/max/stddev = 0.068/0.118/0.168/0.050 ms This has the nice side-effect of adding units to SIGINFO's statistics, as printing numbers without units may not be of much help. Also mentions the fact that these times are round-trip. Before (ping/ping6 SIGINFO): 2/2 packets received (100.0%) 0.068 min / 0.118 avg / 0.168 max After (ping/ping6 SIGINFO): --- ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.068/0.118/0.168/0.050 ms In the case of a SIGINFO, the output will be printed to stderr, for both ping and ping6. Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D39126 (cherry picked from commit 03d4d1c778091a08277d070185a9c60c7a6d57e0) --- sbin/ping/main.c | 83 +++++++++++++++++ sbin/ping/main.h | 25 ++++++ sbin/ping/ping.c | 169 +++++++---------------------------- sbin/ping/ping6.c | 123 +++---------------------- sbin/ping/tests/ping_6_c1_s8_t1.out | 6 +- sbin/ping/tests/ping_c1_s8_t1_S1.out | 6 +- sbin/ping/tests/test_ping.py | 72 +++++++-------- 7 files changed, 193 insertions(+), 291 deletions(-) diff --git a/sbin/ping/main.c b/sbin/ping/main.c index 6321178e1228..5b710b09e985 100644 --- a/sbin/ping/main.c +++ b/sbin/ping/main.c @@ -35,6 +35,8 @@ #include #include +#include +#include #include #include #include @@ -59,6 +61,28 @@ #error At least one of INET and INET6 is required #endif +/* various options */ +u_int options; + +char *hostname; + +/* counters */ +long nreceived; /* # of packets we got back */ +long nrepeats; /* number of duplicates */ +long ntransmitted; /* sequence # for outbound packets = #sent */ +long nrcvtimeout = 0; /* # of packets we got back after waittime */ + +/* nonzero if we've been told to finish up */ +volatile sig_atomic_t seenint; +volatile sig_atomic_t seeninfo; + +/* timing */ +int timing; /* flag to do timing */ +double tmin = 999999999.0; /* minimum round trip time */ +double tmax = 0.0; /* maximum round trip time */ +double tsum = 0.0; /* sum of all times, for doing average */ +double tsumsq = 0.0; /* sum of all times squared, for std. dev. */ + int main(int argc, char *argv[]) { @@ -170,6 +194,65 @@ main(int argc, char *argv[]) errx(1, "Unknown host"); } +/* + * onsignal -- + * Set the global bit that causes the main loop to quit. + */ +void +onsignal(int sig) +{ + switch (sig) { + case SIGALRM: + case SIGINT: + /* + * When doing reverse DNS lookups, the seenint flag might not + * be noticed for a while. Just exit if we get a second SIGINT. + */ + if (!(options & F_HOSTNAME) && seenint != 0) + _exit(nreceived ? 0 : 2); + seenint++; + break; + case SIGINFO: + seeninfo++; + break; + } +} + +/* + * pr_summary -- + * Print out summary statistics to the given output stream. + */ +void +pr_summary(FILE * restrict stream) +{ + fprintf(stream, "\n--- %s ping statistics ---\n", hostname); + fprintf(stream, "%ld packets transmitted, ", ntransmitted); + fprintf(stream, "%ld packets received, ", nreceived); + if (nrepeats) + fprintf(stream, "+%ld duplicates, ", nrepeats); + if (ntransmitted) { + if (nreceived > ntransmitted) + fprintf(stream, "-- somebody's duplicating packets!"); + else + fprintf(stream, "%.1f%% packet loss", + ((((double)ntransmitted - nreceived) * 100.0) / + ntransmitted)); + } + if (nrcvtimeout) + fprintf(stream, ", %ld packets out of wait time", nrcvtimeout); + fputc('\n', stream); + if (nreceived && timing) { + /* Only display average to microseconds */ + double num = nreceived + nrepeats; + double avg = tsum / num; + double stddev = sqrt(fmax(0, tsumsq / num - avg * avg)); + fprintf(stream, + "round-trip min/avg/max/stddev = %.3f/%.3f/%.3f/%.3f ms\n", + tmin, avg, tmax, stddev); + } + fflush(stream); +} + void usage(void) { diff --git a/sbin/ping/main.h b/sbin/ping/main.h index 7084585e6bb0..9a883b61a350 100644 --- a/sbin/ping/main.h +++ b/sbin/ping/main.h @@ -49,6 +49,31 @@ #endif #define PING6OPTS ".::6Aab:C:c:Dde:fHI:i:k:l:m:nNoOp:qS:s:t:uvyYW:z:" PING6ADDOPTS +/* various options */ +extern u_int options; +#define F_HOSTNAME 0x0004 + +extern char *hostname; + +/* counters */ +extern long nreceived; /* # of packets we got back */ +extern long nrepeats; /* number of duplicates */ +extern long ntransmitted; /* sequence # for outbound packets = #sent */ +extern long nrcvtimeout; /* # of packets we got back after waittime */ + +/* nonzero if we've been told to finish up */ +extern volatile sig_atomic_t seenint; +extern volatile sig_atomic_t seeninfo; + +/* timing */ +extern int timing; /* flag to do timing */ +extern double tmin; /* minimum round trip time */ +extern double tmax; /* maximum round trip time */ +extern double tsum; /* sum of all times, for doing average */ +extern double tsumsq; /* sum of all times squared, for std. dev. */ + +void onsignal(int); +void pr_summary(FILE * __restrict); void usage(void) __dead2; #endif diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index ad16ff5a5ee9..bbb103a7361f 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -87,7 +87,6 @@ static char sccsid[] = "@(#)ping.c 8.1 (Berkeley) 6/5/93"; #include #include #include -#include #include #include #include @@ -127,10 +126,8 @@ struct tv32 { }; /* various options */ -static int options; #define F_FLOOD 0x0001 #define F_INTERVAL 0x0002 -#define F_NUMERIC 0x0004 #define F_PINGFILLED 0x0008 #define F_QUIET 0x0010 #define F_RROUTE 0x0020 @@ -178,7 +175,6 @@ static char BSPACE = '\b'; /* characters written for flood */ static const char *DOT = "."; static size_t DOTlen = 1; static size_t DOTidx = 0; -static char *hostname; static char *shostname; static int ident; /* process id to identify our packets */ static int uid; /* cached uid for micro-optimization */ @@ -190,9 +186,6 @@ static int send_len; /* counters */ static long nmissedmax; /* max value of ntransmitted - nreceived - 1 */ static long npackets; /* max packets to transmit */ -static long nreceived; /* # of packets we got back */ -static long nrepeats; /* number of duplicates */ -static long ntransmitted; /* sequence # for outbound packets = #sent */ static long snpackets; /* max packets to transmit in one sweep */ static long sntransmitted; /* # of packets we sent in this sweep */ static int sweepmax; /* max value of payload in sweep */ @@ -200,33 +193,17 @@ static int sweepmin = 0; /* start value of payload in sweep */ static int sweepincr = 1; /* payload increment in sweep */ static int interval = 1000; /* interval between packets, ms */ static int waittime = MAXWAIT; /* timeout for each packet */ -static long nrcvtimeout = 0; /* # of packets we got back after waittime */ - -/* timing */ -static int timing; /* flag to do timing */ -static double tmin = 999999999.0; /* minimum round trip time */ -static double tmax = 0.0; /* maximum round trip time */ -static double tsum = 0.0; /* sum of all times, for doing average */ -static double tsumsq = 0.0; /* sum of all times squared, for std. dev. */ - -/* nonzero if we've been told to finish up */ -static volatile sig_atomic_t finish_up; -static volatile sig_atomic_t siginfo_p; static cap_channel_t *capdns; static void fill(char *, char *); static cap_channel_t *capdns_setup(void); -static void check_status(void); -static void finish(void) __dead2; static void pinger(void); static char *pr_addr(struct in_addr); static char *pr_ntime(n_time); static void pr_icmph(struct icmp *, struct ip *, const u_char *const); static void pr_iph(struct ip *, const u_char *); static void pr_pack(char *, ssize_t, struct sockaddr_in *, struct timespec *); -static void status(int); -static void stopit(int); int ping(int argc, char *const *argv) @@ -264,8 +241,6 @@ ping(int argc, char *const *argv) #endif cap_rights_t rights; - options |= F_NUMERIC; - /* * Do the stuff that we need root priv's for *first*, and * then drop our setuid bit. Save error reporting for @@ -379,7 +354,7 @@ ping(int argc, char *const *argv) options |= F_SWEEP; break; case 'H': - options &= ~F_NUMERIC; + options |= F_HOSTNAME; break; case 'h': /* Packet size increment for ping sweep */ ltmp = strtonum(optarg, 1, INT_MAX, &errstr); @@ -452,7 +427,7 @@ ping(int argc, char *const *argv) options |= F_TTL; break; case 'n': - options |= F_NUMERIC; + options &= ~F_HOSTNAME; break; case 'o': options |= F_ONCE; @@ -882,22 +857,17 @@ ping(int argc, char *const *argv) sigemptyset(&si_sa.sa_mask); si_sa.sa_flags = 0; - - si_sa.sa_handler = stopit; - if (sigaction(SIGINT, &si_sa, 0) == -1) { + si_sa.sa_handler = onsignal; + if (sigaction(SIGINT, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGINT"); - } - - si_sa.sa_handler = status; - if (sigaction(SIGINFO, &si_sa, 0) == -1) { + seenint = 0; + if (sigaction(SIGINFO, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGINFO"); - } - - if (alarmtimeout > 0) { - si_sa.sa_handler = stopit; + seeninfo = 0; + if (alarmtimeout > 0) { if (sigaction(SIGALRM, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGALRM"); - } + } bzero(&msg, sizeof(msg)); msg.msg_name = (caddr_t)&from; @@ -929,13 +899,18 @@ ping(int argc, char *const *argv) } almost_done = 0; - while (!finish_up) { + while (seenint == 0) { struct timespec now, timeout; fd_set rfds; int n; ssize_t cc; - check_status(); + /* signal handling */ + if (seeninfo) { + pr_summary(stderr); + seeninfo = 0; + continue; + } if ((unsigned)srecv >= FD_SETSIZE) errx(EX_OSERR, "descriptor too large"); FD_ZERO(&rfds); @@ -945,9 +920,10 @@ ping(int argc, char *const *argv) timespecsub(&timeout, &now, &timeout); if (timeout.tv_sec < 0) timespecclear(&timeout); + n = pselect(srecv + 1, &rfds, NULL, NULL, &timeout, NULL); if (n < 0) - continue; /* Must be EINTR. */ + continue; /* EINTR */ if (n == 1) { struct timespec *tv = NULL; #ifdef SO_TIMESTAMP @@ -982,7 +958,7 @@ ping(int argc, char *const *argv) (npackets && nreceived >= npackets)) break; } - if (n == 0 || options & F_FLOOD) { + if (n == 0 || (options & F_FLOOD)) { if (sweepmax && sntransmitted == snpackets) { if (datalen + sweepincr > sweepmax) break; @@ -998,14 +974,21 @@ ping(int argc, char *const *argv) if (almost_done) break; almost_done = 1; + /* + * If we're not transmitting any more packets, + * change the timer to wait two round-trip times + * if we've received any packets or (waittime) + * milliseconds if we haven't. + */ intvl.tv_nsec = 0; if (nreceived) { intvl.tv_sec = 2 * tmax / 1000; - if (!intvl.tv_sec) + if (intvl.tv_sec == 0) intvl.tv_sec = 1; } else { intvl.tv_sec = waittime / 1000; - intvl.tv_nsec = waittime % 1000 * 1000000; + intvl.tv_nsec = + waittime % 1000 * 1000000; } } (void)clock_gettime(CLOCK_MONOTONIC, &last); @@ -1016,28 +999,9 @@ ping(int argc, char *const *argv) } } } - finish(); - /* NOTREACHED */ - exit(0); /* Make the compiler happy */ -} - -/* - * stopit -- - * Set the global bit that causes the main loop to quit. - * Do NOT call finish() from here, since finish() does far too much - * to be called from a signal handler. - */ -void -stopit(int sig __unused) -{ + pr_summary(stdout); - /* - * When doing reverse DNS lookups, the finish_up flag might not - * be noticed for a while. Just exit if we get a second SIGINT. - */ - if (!(options & F_NUMERIC) && finish_up) - _exit(nreceived ? 0 : 2); - finish_up = 1; + exit(nreceived ? 0 : 2); } /* @@ -1463,77 +1427,6 @@ pr_pack(char *buf, ssize_t cc, struct sockaddr_in *from, struct timespec *tv) } } -/* - * status -- - * Print out statistics when SIGINFO is received. - */ - -static void -status(int sig __unused) -{ - - siginfo_p = 1; -} - -static void -check_status(void) -{ - - if (siginfo_p) { - siginfo_p = 0; - (void)fprintf(stderr, "\r%ld/%ld packets received (%.1f%%)", - nreceived, ntransmitted, - ntransmitted ? nreceived * 100.0 / ntransmitted : 0.0); - if (nreceived && timing) - (void)fprintf(stderr, " %.3f min / %.3f avg / %.3f max", - tmin, tsum / (nreceived + nrepeats), tmax); - (void)fprintf(stderr, "\n"); - } -} - -/* - * finish -- - * Print out statistics, and give up. - */ -static void -finish(void) -{ - - (void)signal(SIGINT, SIG_IGN); - (void)signal(SIGALRM, SIG_IGN); - (void)putchar('\n'); - (void)fflush(stdout); - (void)printf("--- %s ping statistics ---\n", hostname); - (void)printf("%ld packets transmitted, ", ntransmitted); - (void)printf("%ld packets received, ", nreceived); - if (nrepeats) - (void)printf("+%ld duplicates, ", nrepeats); - if (ntransmitted) { - if (nreceived > ntransmitted) - (void)printf("-- somebody's printing up packets!"); - else - (void)printf("%.1f%% packet loss", - ((ntransmitted - nreceived) * 100.0) / - ntransmitted); - } - if (nrcvtimeout) - (void)printf(", %ld packets out of wait time", nrcvtimeout); - (void)putchar('\n'); - if (nreceived && timing) { - double n = nreceived + nrepeats; - double avg = tsum / n; - double stddev = sqrt(fmax(0, tsumsq / n - avg * avg)); - (void)printf( - "round-trip min/avg/max/stddev = %.3f/%.3f/%.3f/%.3f ms\n", - tmin, avg, tmax, stddev); - } - - if (nreceived) - exit(0); - else - exit(2); -} - /* * pr_icmph -- * Print a descriptive string about an ICMP header. @@ -1705,7 +1598,7 @@ pr_addr(struct in_addr ina) struct hostent *hp; static char buf[16 + 3 + MAXHOSTNAMELEN]; - if (options & F_NUMERIC) + if (!(options & F_HOSTNAME)) return inet_ntoa(ina); hp = cap_gethostbyaddr(capdns, (char *)&ina, sizeof(ina), AF_INET); diff --git a/sbin/ping/ping6.c b/sbin/ping/ping6.c index d14da9c67a52..a71ef8a84aee 100644 --- a/sbin/ping/ping6.c +++ b/sbin/ping/ping6.c @@ -124,7 +124,6 @@ static char sccsid[] = "@(#)ping.c 8.1 (Berkeley) 6/5/93"; #include #include #include -#include #include #include #include @@ -188,7 +187,6 @@ struct tv32 { #define F_FQDN 0x1000 #define F_INTERFACE 0x2000 #define F_SRCADDR 0x4000 -#define F_HOSTNAME 0x10000 #define F_FQDNOLD 0x20000 #define F_NIGROUP 0x40000 #define F_SUPTYPES 0x80000 @@ -200,7 +198,6 @@ struct tv32 { #define F_NOUSERDATA (F_NODEADDR | F_FQDN | F_FQDNOLD | F_SUPTYPES) #define F_WAITTIME 0x2000000 #define F_DOT 0x4000000 -static u_int options; #define IN6LEN sizeof(struct in6_addr) #define SA6LEN sizeof(struct sockaddr_in6) @@ -229,7 +226,6 @@ static char BBELL = '\a'; /* characters written for AUDIBLE */ static const char *DOT = "."; static size_t DOTlen = 1; static size_t DOTidx = 0; -static char *hostname; static int ident; /* process id to identify our packets */ static u_int8_t nonce[8]; /* nonce field for node information */ static int hoplimit = -1; /* hoplimit */ @@ -241,20 +237,9 @@ static cap_channel_t *capdns; /* counters */ static long nmissedmax; /* max value of ntransmitted - nreceived - 1 */ static long npackets; /* max packets to transmit */ -static long nreceived; /* # of packets we got back */ -static long nrepeats; /* number of duplicates */ -static long ntransmitted; /* sequence # for outbound packets = #sent */ static long ntransmitfailures; /* number of transmit failures */ static int interval = 1000; /* interval between packets in ms */ static int waittime = MAXWAIT; /* timeout for each packet */ -static long nrcvtimeout = 0; /* # of packets we got back after waittime */ - -/* timing */ -static int timing; /* flag to do timing */ -static double tmin = 999999999.0; /* minimum round trip time */ -static double tmax = 0.0; /* maximum round trip time */ -static double tsum = 0.0; /* sum of all times, for doing average */ -static double tsumsq = 0.0; /* sum of all times squared, for std. dev. */ /* for node addresses */ static u_short naflags; @@ -264,18 +249,11 @@ static struct msghdr smsghdr; static struct iovec smsgiov; static char *scmsg = 0; -static volatile sig_atomic_t seenint; -#ifdef SIGINFO -static volatile sig_atomic_t seeninfo; -#endif - static cap_channel_t *capdns_setup(void); static void fill(char *, char *); static int get_hoplim(struct msghdr *); static int get_pathmtu(struct msghdr *); static struct in6_pktinfo *get_rcvpktinfo(struct msghdr *); -static void onsignal(int); -static void onint(int); static size_t pingerlen(void); static int pinger(void); static const char *pr_addr(struct sockaddr *, int); @@ -293,7 +271,6 @@ static void pr_ip6opt(void *, size_t); static void pr_rthdr(void *, size_t); static int pr_bitrange(u_int32_t, int, int); static void pr_retip(struct ip6_hdr *, u_char *); -static void summary(void); #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC static int setpolicy(int, char *); @@ -1142,7 +1119,7 @@ ping6(int argc, char *argv[]) if (caph_rights_limit(ssend, &rights_ssend) < 0) err(1, "caph_rights_limit ssend setsockopt"); - printf("PING6(%lu=40+8+%lu bytes) ", (unsigned long)(40 + pingerlen()), + printf("PING(%lu=40+8+%lu bytes) ", (unsigned long)(40 + pingerlen()), (unsigned long)(pingerlen() - 8)); printf("%s --> ", pr_addr((struct sockaddr *)&src, sizeof(src))); printf("%s\n", pr_addr((struct sockaddr *)&dst, sizeof(dst))); @@ -1163,11 +1140,9 @@ ping6(int argc, char *argv[]) if (sigaction(SIGINT, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGINT"); seenint = 0; -#ifdef SIGINFO if (sigaction(SIGINFO, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGINFO"); seeninfo = 0; -#endif if (alarmtimeout > 0) { if (sigaction(SIGALRM, &si_sa, 0) == -1) err(EX_OSERR, "sigaction SIGALRM"); @@ -1186,15 +1161,11 @@ ping6(int argc, char *argv[]) int n; /* signal handling */ - if (seenint) - onint(SIGINT); -#ifdef SIGINFO if (seeninfo) { - summary(); + pr_summary(stderr); seeninfo = 0; continue; } -#endif FD_ZERO(&rfds); FD_SET(srecv, &rfds); clock_gettime(CLOCK_MONOTONIC, &now); @@ -1258,12 +1229,12 @@ ping6(int argc, char *argv[]) if (almost_done) break; almost_done = 1; - /* - * If we're not transmitting any more packets, - * change the timer to wait two round-trip times - * if we've received any packets or (waittime) - * milliseconds if we haven't. - */ + /* + * If we're not transmitting any more packets, + * change the timer to wait two round-trip times + * if we've received any packets or (waittime) + * milliseconds if we haven't. + */ intvl.tv_nsec = 0; if (nreceived) { intvl.tv_sec = 2 * tmax / 1000; @@ -1272,7 +1243,7 @@ ping6(int argc, char *argv[]) } else { intvl.tv_sec = waittime / 1000; intvl.tv_nsec = - waittime % 1000 * 1000000; + waittime % 1000 * 1000000; } } clock_gettime(CLOCK_MONOTONIC, &last); @@ -1288,7 +1259,7 @@ ping6(int argc, char *argv[]) si_sa.sa_handler = SIG_IGN; sigaction(SIGINT, &si_sa, 0); sigaction(SIGALRM, &si_sa, 0); - summary(); + pr_summary(stdout); if(packet != NULL) free(packet); @@ -1301,23 +1272,6 @@ ping6(int argc, char *argv[]) exit(EX_OSERR); } -static void -onsignal(int sig) -{ - - switch (sig) { - case SIGINT: - case SIGALRM: - seenint++; - break; -#ifdef SIGINFO - case SIGINFO: - seeninfo++; - break; -#endif - } -} - /* * pinger -- * Compose and transmit an ICMP ECHO REQUEST packet. The IP packet @@ -1469,7 +1423,7 @@ pinger(void) ntransmitfailures++; warn("sendmsg"); } - (void)printf("ping6: wrote %s %d chars, ret=%d\n", + (void)printf("ping: wrote %s %d chars, ret=%d\n", hostname, cc, i); } if (!(options & F_QUIET) && options & F_DOT) @@ -2305,59 +2259,6 @@ get_pathmtu(struct msghdr *mhdr) return(0); } -/* - * onint -- - * SIGINT handler. - */ -/* ARGSUSED */ -static void -onint(int notused __unused) -{ - /* - * When doing reverse DNS lookups, the seenint flag might not - * be noticed for a while. Just exit if we get a second SIGINT. - */ - if ((options & F_HOSTNAME) && seenint != 0) - _exit(nreceived ? 0 : 2); -} - -/* - * summary -- - * Print out statistics. - */ -static void -summary(void) -{ - - (void)printf("\n--- %s ping6 statistics ---\n", hostname); - (void)printf("%ld packets transmitted, ", ntransmitted); - (void)printf("%ld packets received, ", nreceived); - if (nrepeats) - (void)printf("+%ld duplicates, ", nrepeats); - if (ntransmitted) { - if (nreceived > ntransmitted) - (void)printf("-- somebody's duplicating packets!"); - else - (void)printf("%.1f%% packet loss", - ((((double)ntransmitted - nreceived) * 100.0) / - ntransmitted)); - } - if (nrcvtimeout) - printf(", %ld packets out of wait time", nrcvtimeout); - (void)putchar('\n'); - if (nreceived && timing) { - /* Only display average to microseconds */ - double num = nreceived + nrepeats; - double avg = tsum / num; - double stddev = sqrt(fmax(0, tsumsq / num - avg * avg)); - (void)printf( - "round-trip min/avg/max/std-dev = %.3f/%.3f/%.3f/%.3f ms\n", - tmin, avg, tmax, stddev); - (void)fflush(stdout); - } - (void)fflush(stdout); -} - /*subject type*/ static const char *niqcode[] = { "IPv6 address", @@ -2640,7 +2541,7 @@ pr_addr(struct sockaddr *addr, int addrlen) static char buf[NI_MAXHOST]; int flag = 0; - if ((options & F_HOSTNAME) == 0) + if (!(options & F_HOSTNAME)) flag |= NI_NUMERICHOST; if (cap_getnameinfo(capdns, addr, addrlen, buf, sizeof(buf), NULL, 0, diff --git a/sbin/ping/tests/ping_6_c1_s8_t1.out b/sbin/ping/tests/ping_6_c1_s8_t1.out index 81c56e6cf586..0d207e74bc3e 100644 --- a/sbin/ping/tests/ping_6_c1_s8_t1.out +++ b/sbin/ping/tests/ping_6_c1_s8_t1.out @@ -1,6 +1,6 @@ -PING6(56=40+8+8 bytes) ::1 --> ::1 +PING(56=40+8+8 bytes) ::1 --> ::1 16 bytes from ::1, icmp_seq=0 hlim= time= ms ---- localhost ping6 statistics --- +--- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms diff --git a/sbin/ping/tests/ping_c1_s8_t1_S1.out b/sbin/ping/tests/ping_c1_s8_t1_S1.out index 81c56e6cf586..0d207e74bc3e 100644 --- a/sbin/ping/tests/ping_c1_s8_t1_S1.out +++ b/sbin/ping/tests/ping_c1_s8_t1_S1.out @@ -1,6 +1,6 @@ -PING6(56=40+8+8 bytes) ::1 --> ::1 +PING(56=40+8+8 bytes) ::1 --> ::1 16 bytes from ::1, icmp_seq=0 hlim= time= ms ---- localhost ping6 statistics --- +--- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 8d3bd115e2a6..52be1c7f91ae 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -311,12 +311,12 @@ round-trip min/avg/max/stddev = /// ms "args": "ping -6 -c1 -s8 -t1 localhost", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) ::1 --> ::1 +PING(56=40+8+8 bytes) ::1 --> ::1 16 bytes from ::1, icmp_seq=0 hlim= time= ms ---- localhost ping6 statistics --- +--- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -357,12 +357,12 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes "args": "ping -A -c1 2001:db8::1", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 16 bytes from 2001:db8::1, icmp_seq=0 hlim= time= ms ---- 2001:db8::1 ping6 statistics --- +--- 2001:db8::1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -373,9 +373,9 @@ round-trip min/avg/max/std-dev = /// ms "args": "ping -A -c1 2001:db8::2", "returncode": 2, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ---- 2001:db8::2 ping6 statistics --- +--- 2001:db8::2 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss """, "stderr": "", @@ -419,14 +419,14 @@ round-trip min/avg/max/stddev = /// ms "args": "ping -A -c3 2001:db8::1", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 16 bytes from 2001:db8::1, icmp_seq=0 hlim= time= ms 16 bytes from 2001:db8::1, icmp_seq=1 hlim= time= ms 16 bytes from 2001:db8::1, icmp_seq=2 hlim= time= ms ---- 2001:db8::1 ping6 statistics --- +--- 2001:db8::1 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -437,9 +437,9 @@ round-trip min/avg/max/std-dev = /// ms "args": "ping -A -c3 2001:db8::2", "returncode": 2, "stdout": """\ -\x07\x07PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 +\x07\x07PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ---- 2001:db8::2 ping6 statistics --- +--- 2001:db8::2 ping statistics --- 3 packets transmitted, 0 packets received, 100.0% packet loss """, "stderr": "", @@ -481,12 +481,12 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes "args": "ping -c1 2001:db8::1", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 16 bytes from 2001:db8::1, icmp_seq=0 hlim= time= ms ---- 2001:db8::1 ping6 statistics --- +--- 2001:db8::1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -497,9 +497,9 @@ round-trip min/avg/max/std-dev = /// ms "args": "ping -c1 2001:db8::2", "returncode": 2, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ---- 2001:db8::2 ping6 statistics --- +--- 2001:db8::2 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss """, "stderr": "", @@ -527,12 +527,12 @@ round-trip min/avg/max/stddev = /// ms "args": "ping -c1 -S::1 -s8 -t1 localhost", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) ::1 --> ::1 +PING(56=40+8+8 bytes) ::1 --> ::1 16 bytes from ::1, icmp_seq=0 hlim= time= ms ---- localhost ping6 statistics --- +--- localhost ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -575,14 +575,14 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes "args": "ping -c3 2001:db8::1", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 16 bytes from 2001:db8::1, icmp_seq=0 hlim= time= ms 16 bytes from 2001:db8::1, icmp_seq=1 hlim= time= ms 16 bytes from 2001:db8::1, icmp_seq=2 hlim= time= ms ---- 2001:db8::1 ping6 statistics --- +--- 2001:db8::1 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -593,9 +593,9 @@ round-trip min/avg/max/std-dev = /// ms "args": "ping -c3 2001:db8::2", "returncode": 2, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ---- 2001:db8::2 ping6 statistics --- +--- 2001:db8::2 ping statistics --- 3 packets transmitted, 0 packets received, 100.0% packet loss """, "stderr": "", @@ -636,11 +636,11 @@ PING 192.0.2.2 (192.0.2.2): 56 data bytes "args": "ping -q -c1 2001:db8::1", "returncode": 0, "stdout": """\ -PING6(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 +PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::1 ---- 2001:db8::1 ping6 statistics --- +--- 2001:db8::1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss -round-trip min/avg/max/std-dev = /// ms +round-trip min/avg/max/stddev = /// ms """, "stderr": "", }, @@ -651,9 +651,9 @@ round-trip min/avg/max/std-dev = /// ms "args": "ping -q -c1 2001:db8::2", "returncode": 2, *** 36 LINES SKIPPED *** From nobody Mon Nov 6 16:45:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKb1MRfz50FBf; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKb0p0Dz4GyZ; Mon, 6 Nov 2023 16:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WQFp91ljFAWg1kWp+d79Zxc/DwCLIBP6T4G74g2tELU=; b=jpl3botur9dBdmzyaIUb8R21IMMAJy0sH47L8TZKm7jqLZNc3qoUI7muqs5SD/+pWYZZkN BAG/9D0JmN/3yVxbpLX8u7H4cIa63xhGuCCjhwrVU7aI9d3zSdHXlspZ02wcfmvQZZTYLn SDHsYkGKlT7gOLl6ykoibwc3NxWI9P+qsiPryxUnZ0RKMxIpAzTYX1EI/b0R4iBf5oz7vF a8dV2ukBdNDkbv7t+JV95Mtbsg+AqOX+12nYbjJu7Uy6HAifiJtdVvBrSVW3Vk3Pw9rRhE BgSgPnaZj/VWVlGEGFNU+zloFCBgmNVWBoueJ9b2HNxlrBcFR7E/TtF2XI9qgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WQFp91ljFAWg1kWp+d79Zxc/DwCLIBP6T4G74g2tELU=; b=xoOBQyzAi9+iijDbdKExgeN6eDE/g5lkxeYhiG/JpFAq5yXsKzEfv3vzKL7iB6OvVSIRju bYfaV2jqWM+Q8aAvPQvXkSTYD0iZGXu2uXSVzGdMNjR4Sw6NgLZE8wjpWDD65z/waxiMvk Scj/4OSjchRU9iqJrQ9Zrgzaao5+T4wsu6q2FOoQS0oz39pNbPybEb8wcMk+2YUBOQGzzT OerPRu5HO5PfqsrMAdCO1jdSm7D0Si8VzvNXA9zcyeeHH8eBOksX44Gsc6iBewgCMJdZBn 7KgGFCgO+wEdJyi2UhbhH2Bnz1Vs6HGTVUnwTQduTtkuEe6+/HlYkPTzoCFNOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289155; a=rsa-sha256; cv=none; b=xHUWo59Jgn3z5f9OLMJ7IY19mH1IilaKScuZPmOZUXNSj0WISeRBX3F6mIk4KA1/+pdezV 4ujr6jSkAR9MjKs0+4hrrEaIUYzuGUJfDShlXJTM1HQPXaU+7j3JdlLy1ccxH5wrq3i6M3 uiPOaAFUmoMhqO+xkuuV26Rw0FjyyGkWIn1bZubIovifnzppZKmM1zK77r8jdQkTl8neh6 P6l0NS6NsJvaAzO4AYsZptpMsAMwODCTzCeaYCpmVNiHqIEKvr2XFPgjwzyRp12RCfqlj9 5pRpL746jMAATSQ5PFL3PvJVUWV/vl0v3lb//b6PCtdTohP/1YSCmZHWn47vkg== 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 4SPHKZ6z1nzsk; Mon, 6 Nov 2023 16:45:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6GjsUX058482; Mon, 6 Nov 2023 16:45:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjsHB058479; Mon, 6 Nov 2023 16:45:54 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:54 GMT Message-Id: <202311061645.3A6GjsHB058479@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: 0c74823f5c13 - stable/14 - ping: Fix the spacing between the time stamp and cp/dp List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 0c74823f5c135a039832f62dd50b79625f26f0fe Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0c74823f5c135a039832f62dd50b79625f26f0fe commit 0c74823f5c135a039832f62dd50b79625f26f0fe Author: Jose Luis Duran AuthorDate: 2023-04-10 16:58:42 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:44 +0000 ping: Fix the spacing between the time stamp and cp/dp When an echo reply packet is received, the data is compared with the sent data. When a wrong byte is detected the command displays a report with the differences. The first row (the first 8-bytes of data after the ICMP header) should include the time stamp (if data is at least 8-bytes), this value is not taken into consideration for the comparison. The remaining rows represent the data (padded pattern) received/sent, with each byte being compared for differences. Print the space before (not after), to add an extra space after cp:/dp: for better readability when the first time stamp octet is not zero-padded, and to remove trailing spaces in the output. Before: cp:99 0 0 c 1 5 c 0␣ ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd␣ ... After: cp: 99 0 0 c 1 5 c 0 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ... Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D39492 (cherry picked from commit 8db2c5802abe14543504e17ab5ed6325088a63f3) --- sbin/ping/ping.c | 4 ++-- sbin/ping/tests/test_ping.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index bbb103a7361f..fcc27d34ee54 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -1261,14 +1261,14 @@ pr_pack(char *buf, ssize_t cc, struct sockaddr_in *from, struct timespec *tv) for (i = 0; i < datalen; ++i, ++cp) { if ((i % 16) == 8) (void)printf("\n\t"); - (void)printf("%2x ", *cp); + (void)printf(" %2x", *cp); } (void)printf("\ndp:"); cp = &outpack[ICMP_MINLEN]; for (i = 0; i < datalen; ++i, ++cp) { if ((i % 16) == 8) (void)printf("\n\t"); - (void)printf("%2x ", *cp); + (void)printf(" %2x", *cp); } break; } diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 52be1c7f91ae..00ddbbd63723 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -275,6 +275,8 @@ def redact(output): ("hlim=[0-9]*", "hlim="), ("ttl=[0-9]*", "ttl="), ("time=[0-9.-]*", "time="), + ("cp: .*", "cp: xx xx xx xx xx xx xx xx"), + ("dp: .*", "dp: xx xx xx xx xx xx xx xx"), ("\(-[0-9\.]+[0-9]+ ms\)", "(- ms)"), ("[0-9\.]+/[0-9.]+", "/"), ] @@ -1401,6 +1403,39 @@ ping: time of day goes back (- ms), clamping time to 0 }, id="_0_0_special_warp", ), + pytest.param( + { + "src": "192.0.2.1", + "dst": "192.0.2.2", + "icmp_type": 0, + "icmp_code": 0, + "special": "wrong", + }, + { + "returncode": 0, + "stdout": """\ +PATTERN: 0x01 +PING 192.0.2.2 (192.0.2.2): 56 data bytes +64 bytes from: icmp_seq=0 ttl= time= ms +wrong data byte #55 should be 0x1 but was 0x0 +cp: xx xx xx xx xx xx xx xx + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 +dp: xx xx xx xx xx xx xx xx + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + +--- 192.0.2.2 ping statistics --- +1 packets transmitted, 1 packets received, 0.0% packet loss +round-trip min/avg/max/stddev = /// ms +""", + "stderr": "", + "redacted": True, + }, + id="_0_0_special_wrong", + ), ] @pytest.mark.parametrize("pinger_kargs, expected", pinger_testdata) From nobody Mon Nov 6 16:45:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKc3Pk4z50FBq; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKc1kFsz4GvZ; Mon, 6 Nov 2023 16:45:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fbmUCZOMWCEYUjveOC2Ggt7AQ2KP4mPlXK3G0W0r+ak=; b=XDbSJ5cPz0+RFJ0enr3lgRlTV+JqikL9Q9CQUuPCMA6YSjKuovV500SCp0KGcbi/8lnE3n K2DK1gAdMpcHKPi5FCko+0pXnUL0eoAlj9VjzPPCKqZgIuS33pxJzO5m0bV9D3nsXXHUJ3 I3ymnNHTVufynqoQyf3pTPp2lWSkYtpRkMVJZebj0tOkn7twbcVLEyAtvNJXna3FvZRP/T /ujF44F7FQgMrOnt59kDdOS+kZr5xsytsie+PWOVa6I1W+fpxZWRzCg9kc4Z4BbDn3lu2g Ku6yne7+b+bkFZnMEeTZep/sG/kCJsjw0Fx2ZzcPlgrXHnDK9Lb6H4WiiSZkgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fbmUCZOMWCEYUjveOC2Ggt7AQ2KP4mPlXK3G0W0r+ak=; b=yI9Qzyp7lCOatA005sLGHFwwG/T+spyw190OUAicgnIlyicr4iTLpxdhXnX8dxx5wuA4jo /2QB1GtIcmTPBFQ2aCgCrqGxYHoUIxRjvyZJXODzpreCPhLTGhr/g5zo7ErTDPWeCtgxiZ 6eI/ILXIJZ/d48ymMdl6csa4XtXFRt7j/BbSIKqXv2iEGEZiLbbeZ5VDqX032U6ozdkM+2 bp0XODWF8KKY2NdQQmYKkbA/Wfi5W3X6l08iLlaTbh5XqyjjXrYFQS8mDPLjI6tYx9QDN/ k5UebEghGihV7Romsj94dnoHys+uef7ooxZ82v0Q1U2Q1vyQoaxXBNlhYbEiSg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289156; a=rsa-sha256; cv=none; b=UHaAT13NE1Favup7dVoEcift9IrV9sEPG1dZE2+0RE9EgJhQbBNW7Aa8+esWRfGZabiXsA E5hd769v80xkY/yB/dfOazCcyMZIGr6WTP7An5/XfwvAcUX9EFM37Iz4rU1tzWtAkSaWUr NFNwdhDl9I1Q3UT4QRvN9JM4tRI/h48vSgMNxR7yGc2KXAzJzNtrqRX52wWwklGVN2hINp 7WRo0DDPaRlLOpR6BR0lQHiS6DiraCVDaB3n/SdOopkm1WQ9STO2SjbLNrOeS8BvlJsUfd TIRSivYh1ju+28CHwPlKHgBqNJAhaeqHvBFmjLqpi8WK4yAdsTdGPTy02A7mNQ== 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 4SPHKc0r1Xz14t; Mon, 6 Nov 2023 16:45:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6GjuSQ058519; Mon, 6 Nov 2023 16:45:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjuED058516; Mon, 6 Nov 2023 16:45:56 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:56 GMT Message-Id: <202311061645.3A6GjuED058516@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: a753d3632eaf - stable/14 - ping: pr_iph() improvements List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: a753d3632eaf8369a6fc8eff0c904b935f56dad9 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a753d3632eaf8369a6fc8eff0c904b935f56dad9 commit a753d3632eaf8369a6fc8eff0c904b935f56dad9 Author: Jose Luis Duran AuthorDate: 2023-04-13 15:30:44 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:44 +0000 ping: pr_iph() improvements Very early on, the Src/Dst IP addresses were printed in hex notation (%08x), which will always be 8-characters wide. It was later changed to use a dot-decimal notation. Depending on the IP address length, the Src and Dst headers may require a different padding. Use the source and destination IP lengths as padding for the headers. Also, print an Opts (options) header, if there are options present. It has been abbreviated to Opts to match the length of the previous Data header, removed in ef9e6dc7eebe9830511602904d3ef5218d964080. Print the header info such that no trailing spaces are produced. As some git workflows may automatically trim them, and make the tests fail (see 25b86f8559c2e7076daff56933217e95cd4398d4). Before Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2␣ After Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 And with options: Before Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01... After Vr HL TOS Len ID Flg off TTL Pro cks Src Dst Opts 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01... Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 Differential Revision: https://reviews.freebsd.org/D39561 (cherry picked from commit b86e4812cce88920cb592bd3b8571572373dbb9c) --- sbin/ping/ping.c | 25 +++++++++++++++++-------- sbin/ping/tests/test_ping.py | 12 ++++++------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index fcc27d34ee54..3b8663772e87 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -1561,13 +1561,21 @@ pr_icmph(struct icmp *icp, struct ip *oip, const u_char *const oicmp_raw) static void pr_iph(struct ip *ip, const u_char *cp) { - struct in_addr ina; + struct in_addr dst_ina, src_ina; int hlen; hlen = ip->ip_hl << 2; cp = cp + sizeof(struct ip); /* point to options */ - (void)printf("Vr HL TOS Len ID Flg off TTL Pro cks Src Dst\n"); + memcpy(&src_ina, &ip->ip_src.s_addr, sizeof(src_ina)); + memcpy(&dst_ina, &ip->ip_dst.s_addr, sizeof(dst_ina)); + + (void)printf("Vr HL TOS Len ID Flg off TTL Pro cks %*s %*s", + (int)strlen(inet_ntoa(src_ina)), "Src", + (int)strlen(inet_ntoa(dst_ina)), "Dst"); + if (hlen > (int)sizeof(struct ip)) + (void)printf(" Opts"); + (void)putchar('\n'); (void)printf(" %1x %1x %02x %04x %04x", ip->ip_v, ip->ip_hl, ip->ip_tos, ntohs(ip->ip_len), ntohs(ip->ip_id)); @@ -1576,13 +1584,14 @@ pr_iph(struct ip *ip, const u_char *cp) ntohs(ip->ip_off) & 0x1fff); (void)printf(" %02x %02x %04x", ip->ip_ttl, ip->ip_p, ntohs(ip->ip_sum)); - memcpy(&ina, &ip->ip_src.s_addr, sizeof ina); - (void)printf(" %s ", inet_ntoa(ina)); - memcpy(&ina, &ip->ip_dst.s_addr, sizeof ina); - (void)printf(" %s ", inet_ntoa(ina)); + (void)printf(" %s", inet_ntoa(src_ina)); + (void)printf(" %s", inet_ntoa(dst_ina)); /* dump any option bytes */ - while (hlen-- > (int)sizeof(struct ip)) { - (void)printf("%02x", *cp++); + if (hlen > (int)sizeof(struct ip)) { + (void)printf(" "); + while (hlen-- > (int)sizeof(struct ip)) { + (void)printf("%02x", *cp++); + } } (void)putchar('\n'); } diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 00ddbbd63723..2a052b50ce07 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -1244,8 +1244,8 @@ round-trip min/avg/max/stddev = /// ms "stdout": """\ PING 192.0.2.2 (192.0.2.2): 56 data bytes 132 bytes from 192.0.2.2: Destination Host Unreachable -Vr HL TOS Len ID Flg off TTL Pro cks Src Dst - 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01010101010101010101010101010101010101010101010101010101010101010101010101010101 +Vr HL TOS Len ID Flg off TTL Pro cks Src Dst Opts + 4 f 00 007c 0001 0 0000 40 01 d868 192.0.2.1 192.0.2.2 01010101010101010101010101010101010101010101010101010101010101010101010101010101 --- 192.0.2.2 ping statistics --- @@ -1269,8 +1269,8 @@ Vr HL TOS Len ID Flg off TTL Pro cks Src Dst "stdout": """\ PING 192.0.2.2 (192.0.2.2): 56 data bytes 92 bytes from 192.0.2.2: Destination Host Unreachable -Vr HL TOS Len ID Flg off TTL Pro cks Src Dst - 4 5 00 0054 0001 2 0000 40 01 b6a4 192.0.2.1 192.0.2.2 +Vr HL TOS Len ID Flg off TTL Pro cks Src Dst + 4 5 00 0054 0001 2 0000 40 01 b6a4 192.0.2.1 192.0.2.2 --- 192.0.2.2 ping statistics --- @@ -1342,8 +1342,8 @@ ping: quoted data too short (28 bytes) from 192.0.2.2 "stdout": """\ PING 192.0.2.2 (192.0.2.2): 56 data bytes 92 bytes from 192.0.2.2: Destination Host Unreachable -Vr HL TOS Len ID Flg off TTL Pro cks Src Dst - 4 5 00 0054 0001 0 0000 40 01 f6a4 192.0.2.1 192.0.2.2 +Vr HL TOS Len ID Flg off TTL Pro cks Src Dst + 4 5 00 0054 0001 0 0000 40 01 f6a4 192.0.2.1 192.0.2.2 --- 192.0.2.2 ping statistics --- From nobody Mon Nov 6 16:45:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPHKd4qv9z50F1q; Mon, 6 Nov 2023 16:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPHKd2lZcz4H8V; Mon, 6 Nov 2023 16:45:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tr/f74ObLhtWOshVZT+Bk3wIeSsHtZBvGzNIgAN4acI=; b=k7KIsD0Q0ScRCPtDr/iAvlJ0gDQmXcPLo2I2TYWQDbY2KJp+k4nW1udxxlWvtlP/UgMx5W bcUqDf8/qhSx/ygfqVLglnxlNp15kRJRIyjFnT3IOeKiPuuFAepqwPJRYSOdxQ559egabm rhfRhk7Xe82ksHBpqTaz8oXjr4c82djPJuifSgwsZhPJGHV9L/ahlsJ8hHWNNRElD5sKV2 VXI6eOpzQ9TKqD41BtJnV7EEHcAMM0FVVd5C8r3v3Z39Jbm0Loosjux3JeBp0VyULTCTHa QkfrLPYVAzYvHg399xfERxm3GaBfyuKUASHJXDIPc/BBbtbzcE7LubltpxczdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699289157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tr/f74ObLhtWOshVZT+Bk3wIeSsHtZBvGzNIgAN4acI=; b=ueF/CeR2lNVrIxj9jEb0oMVpUoG2DzW54ooTJS/Yv4y9zFNr7z4XyC5WmXfr2IW7yVgsbO v/hqGtrxFNb60iZt6c+efYXrsBOPJEhra2gVLfHDsBtm/8SurJ8aTysE3Qs+bjLTPD+9GF MKkXiO8AKcs+lS2pRQSVbyFXNJPgM9z4DPhFVXh0WMpDm301dVTq1Mk2ZyTYtFs52lbxyu YMbwHLGu1chI1ScXbsjfK3/hRUBxaGZMArjwE2iCjV5538EG0KzbJa2egctbU8H5EqbmVg 2OclF7cLX3X2jbZx5jxxOFWkKjVVB0yFT1vfroEVqvrGvQh9QnsQWuLu/9ut2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699289157; a=rsa-sha256; cv=none; b=FF9PpZYn+k5rBsUQuhGaFGe29Gzv4X2a8w9N//LRGKrxeAyXfoBozNAgbRiyFp/s3UyJmm AWCl5b6wZeHPknMXaE5kWHFo8eZ3Ty1wgm6zTAxiZ4NmRd2s0LSj4DzeSikuGiVZdjADUZ emd6MXMqUm7odk8qCM3oJQewEdps6dxj0xm83cY2JgreOjUT/3QBg/ozBCA2+FJvGhePYN E+7utGlHAIum6fXKEEPtmGT7niru/YhY7CE0/bxlrkdK5UvYq2B2G/EK0BJaR7PJ3WlDKu hcDjNAorY4dnStQChokI8ssexOOOTutESuEjBUpde9PD1pChulPj5Z79FJP8ow== 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 4SPHKd1s3Gz14v; Mon, 6 Nov 2023 16:45:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6GjvJR058567; Mon, 6 Nov 2023 16:45:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6GjvQT058564; Mon, 6 Nov 2023 16:45:57 GMT (envelope-from git) Date: Mon, 6 Nov 2023 16:45:57 GMT Message-Id: <202311061645.3A6GjvQT058564@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: ae6e3ea5e1fc - stable/14 - ping: Require root user for pytests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: ae6e3ea5e1fcd122f269705a90bd8709fdc6b505 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ae6e3ea5e1fcd122f269705a90bd8709fdc6b505 commit ae6e3ea5e1fcd122f269705a90bd8709fdc6b505 Author: Jose Luis Duran AuthorDate: 2023-10-11 13:57:11 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 16:45:44 +0000 ping: Require root user for pytests atf_python may use vnet jails for creating an isolated test environment. Mark these tests that require root user privileges. Reviewed by: markj MFC after: 1 week Pull Request: https://github.com/freebsd/freebsd-src/pull/863 (cherry picked from commit 4efaf43c6fa76e0daa1ed5ea535d863f15415bf4) --- sbin/ping/tests/test_ping.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbin/ping/tests/test_ping.py b/sbin/ping/tests/test_ping.py index 2a052b50ce07..3c66e6c54c4d 100644 --- a/sbin/ping/tests/test_ping.py +++ b/sbin/ping/tests/test_ping.py @@ -723,6 +723,7 @@ PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ] @pytest.mark.parametrize("expected", testdata) + @pytest.mark.require_user("root") def test_ping(self, expected): """Test ping""" ping = subprocess.run( @@ -751,6 +752,7 @@ PING(56=40+8+8 bytes) 2001:db8::1 --> 2001:db8::2 ] @pytest.mark.parametrize("expected", ping46_testdata) + @pytest.mark.require_user("root") def test_ping_46(self, expected): """Test ping -4/ping -6""" for version in [4, 6]: From nobody Mon Nov 6 19:19:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPLkm1dzjz4ylX0; Mon, 6 Nov 2023 19:19: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPLkm1Bhnz3Dtk; Mon, 6 Nov 2023 19:19:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699298368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9OZ8or32h6Ir0iMSxrZe4kRSKgbOSZv2WX5DRDP2JuY=; b=GX7uh/SiWJX1p61elendNH72pz0qT4jhteme2PH2CItsimkKeb/zwtw1Cz13GSOiEINNS4 hj5YWVNOf8+N87DArCtSo75/XnfC0oA7wf9oXhE4zktESVo+FevaRtZAme087++CHvnTNE 9qogPe9cgc+cjzMgBmDh+3SL31FJPuSaIjEJQ/5Ry1TQFMRBzqr8tOOTdTpC2iem+UFcpZ 6EI65pdMOKAdUZZyB8dluJOCYnImMGjZB2YNLuFv+ktR5HviTEAdc7HhJgpe40DAzHHXWV Mu8gZrP09dGvRsCStfTjJ93PaW9nWDtybLGdsZ9jnZyRgrAsSoUNe9fpsU8zbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699298368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9OZ8or32h6Ir0iMSxrZe4kRSKgbOSZv2WX5DRDP2JuY=; b=J7i2x3Z3lKKG4yItCCZx7EmeXarWTD4w7afKvBm/i7WXeql9wgV8M8GZFvCfGUziRPfJ57 kDVdyYKVijo9XPxwvQ8zCI18s9G8U4XUOJIEF+xQNMbrTTcQOYA4pRGwnFuXlRyostio9b 0Xpmmh8v7kiRMDlpBfo0aMI1OZ7etlO66aAbdDs7YWRSPgdPMnncM3ZAkfFsRBncRFtl7c 2nl5NWuK4/tHHkylBtI9PRUixWRuks4hg+/4LYfoaw2mCeSxr1xjvIYdHp+cNKp1MutFao vHnfqpFSmQWk+53tqKdp5zRI0/weySKPvgGndPtf/Rt3ORWNEx/i41nrDSbqNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699298368; a=rsa-sha256; cv=none; b=mu1GzxghilfmqLhfKfGNSYE5ZT8ymA44DbL6xulsaM185tdR7F+pukQVRo0tw7kuXYbVIP 2IsEKETJFuv9X8bhfyCd3a6Bl4grIsNZyvmFXvvu3glfC2hKCSt7P2oKMWym4uSN4crQfu KuDxK3qy9Co4tuUzFRIadeKhbG3vX6/cyKy3Ud4LCVPqiVKOXuMp/kKFnQYu1BWiPcxgCb Xjb5DDhDdb+MvkLelSi9RM9CCTtoiii4cc2UL1AElLZVeLsoXmpuZVFtczzxaRoFo02baR FYEQFX1qfwc9hPj7S0knzX9V0sFhWss+PcAQlDjKpN4xJ2FaQiAjJ8ytAlrWnA== 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 4SPLkm080sz4kf; Mon, 6 Nov 2023 19:19:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6JJRTD011518; Mon, 6 Nov 2023 19:19:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6JJR43011515; Mon, 6 Nov 2023 19:19:27 GMT (envelope-from git) Date: Mon, 6 Nov 2023 19:19:27 GMT Message-Id: <202311061919.3A6JJR43011515@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: 765757c6301f - stable/14 - cap_net: correct capability name from addr2name to name2addr List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 765757c6301fa41c0b59108347c600fbc9020c39 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=765757c6301fa41c0b59108347c600fbc9020c39 commit 765757c6301fa41c0b59108347c600fbc9020c39 Author: Mariusz Zaborski AuthorDate: 2023-10-23 21:03:51 +0000 Commit: Ed Maste CommitDate: 2023-11-06 19:19:04 +0000 cap_net: correct capability name from addr2name to name2addr Previously, while checking name2addr capabilities, we mistakenly used the addr2name set. This error could cause a process to inadvertently reset its limitations. Reported by: Shawn Webb (cherry picked from commit afd74c400075d94e01dd3430844bb290834660ef) --- lib/libcasper/services/cap_net/cap_net.c | 2 +- lib/libcasper/services/cap_net/tests/net_test.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index bbb2a666440f..a8f039f81843 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1232,7 +1232,7 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, oldfunclimits = NULL; if (oldlimits != NULL) { oldfunclimits = dnvlist_get_nvlist(oldlimits, - LIMIT_NV_ADDR2NAME, NULL); + LIMIT_NV_NAME2ADDR, NULL); } cookie = NULL; diff --git a/lib/libcasper/services/cap_net/tests/net_test.c b/lib/libcasper/services/cap_net/tests/net_test.c index 5522f92516eb..dcb897de467b 100644 --- a/lib/libcasper/services/cap_net/tests/net_test.c +++ b/lib/libcasper/services/cap_net/tests/net_test.c @@ -783,6 +783,18 @@ ATF_TC_BODY(capnet__limits_name2addr_hosts, tc) limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); ATF_REQUIRE(cap_net_limit(limit) != 0); + /* Try to extend the limit. */ + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_0, NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + cap_close(capnet); } From nobody Mon Nov 6 19:20:11 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPLlb2qwfz4ylbX; Mon, 6 Nov 2023 19:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPLlb2HK4z3F6f; Mon, 6 Nov 2023 19:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699298411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iApXQzCZ28/5Ch/MgYkctyWMcM7ikzP03Lm7adwLZKA=; b=mFFOmkOiYKbxhC48SzUuJOtvJERzUXuIaFmETfxJEHEr+IF0TfnE/+a7/SgmvRgkUkGHab d5ICV5lzEOok8n9rBRNmG+WaZBppca/kshWNrhPmAYPop8vkoYT35AYRzE2/nAF3i3mbro yu3VLjQegrXljMKdJUsbOzYWLV4NTFwwhhz2bOPtUM+gBcvkkoiRKm5I1d8x0S6SxKHToR 3klaoewVk1SToEcqfOam4B2GmcaHpqp323S4Tzhv/mK5hLzLap6Pqmt54us/6Qg0jkBBBU Cn/0RdOEuwtgOuS20CSgo2F+0ch9Rg3aL76DutBYAMaxFipWDRjbjL3LzBw/lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699298411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iApXQzCZ28/5Ch/MgYkctyWMcM7ikzP03Lm7adwLZKA=; b=Jz9YOBC1XS6OfEMhKo5y9p2ff6FXJ7uVRUwiZ8RueYHrPKTYpPdQwiaAMhfAaGLJwwA6Hg BrLQAoL3ilAXUGFqA/mTRiWaf2kC/HrYLsDaGllTtUyPEWA+FojHCz2+8fElAqgAPqRt+X C7bI1ZgxOCsqHrVwR9iN0jJsYF5Z9XqJwAZwO8+FLIE8GifIV9edXxx00fj3cHWO6MFD8S DAKarwddW59HWSf9FAhdJJLjAbEw4AA4te+jFEGi+/OPJizmr1HCS9pwLhkvt4nzX9M6Fo ZPaUVMpTIM70pCL5c2V9JpXzYqUvDPE9Qk6WORPepp4NftAcBYKBwfMKMoE04g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699298411; a=rsa-sha256; cv=none; b=bP4n+JeE1Y6fmhoxJND4gqnaKCINYIHAvcjCeK+MQgcNx+A8dlDUBOu1BJJyoHbmJ1l2Tq 6MOm33ZmrSLBtdy6zMX0LN/ZwVsGAP04Qh6tER/rTqoqvQA7506HRlprWphq8doyUqUX6/ dQOl2NmKX6OkZ1roWb7noQdCPTqEF6NB0dUUBdmhHtAormm7C0O/2gf+EfemR2pB/yU3lu WbrACGX5jF+lLg2ZL9u+zWJLRNYIzbrYZdgtQc5rIYlSBHEkaXNX80brgcYMTAxX/A6WnF Ihu3GAgwd9jrmBskxWmPRQ9wA5fYthfYYcSnp2kCokmzCW6PtElCZ9hYG4O7rg== 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 4SPLlb1NtQz4lX; Mon, 6 Nov 2023 19:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6JKBIw016263; Mon, 6 Nov 2023 19:20:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6JKBTR016255; Mon, 6 Nov 2023 19:20:11 GMT (envelope-from git) Date: Mon, 6 Nov 2023 19:20:11 GMT Message-Id: <202311061920.3A6JKBTR016255@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: 114c6d9bef76 - stable/13 - cap_net: correct capability name from addr2name to name2addr List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 114c6d9bef765a47ebcb8e65d1c935cbcbe51002 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=114c6d9bef765a47ebcb8e65d1c935cbcbe51002 commit 114c6d9bef765a47ebcb8e65d1c935cbcbe51002 Author: Mariusz Zaborski AuthorDate: 2023-10-23 21:03:51 +0000 Commit: Ed Maste CommitDate: 2023-11-06 19:19:54 +0000 cap_net: correct capability name from addr2name to name2addr Previously, while checking name2addr capabilities, we mistakenly used the addr2name set. This error could cause a process to inadvertently reset its limitations. Reported by: Shawn Webb (cherry picked from commit afd74c400075d94e01dd3430844bb290834660ef) (cherry picked from commit 765757c6301fa41c0b59108347c600fbc9020c39) --- lib/libcasper/services/cap_net/cap_net.c | 2 +- lib/libcasper/services/cap_net/tests/net_test.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index 06fbc780bbce..c29bc36bf64c 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1232,7 +1232,7 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, oldfunclimits = NULL; if (oldlimits != NULL) { oldfunclimits = dnvlist_get_nvlist(oldlimits, - LIMIT_NV_ADDR2NAME, NULL); + LIMIT_NV_NAME2ADDR, NULL); } cookie = NULL; diff --git a/lib/libcasper/services/cap_net/tests/net_test.c b/lib/libcasper/services/cap_net/tests/net_test.c index 989a98f3ae22..86d771fc97d7 100644 --- a/lib/libcasper/services/cap_net/tests/net_test.c +++ b/lib/libcasper/services/cap_net/tests/net_test.c @@ -742,6 +742,18 @@ ATF_TC_BODY(capnet__limits_name2addr_hosts, tc) limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); ATF_REQUIRE(cap_net_limit(limit) != 0); + /* Try to extend the limit. */ + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_0, NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + cap_close(capnet); } From nobody Mon Nov 6 20:13:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPMxB4vrCz4yy1c; Mon, 6 Nov 2023 20:13: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPMxB4N1Kz3Pfs; Mon, 6 Nov 2023 20:13:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699301614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b9jIWGDc+tu8mWD9ZtdI2JAGbRbZObKGQGSixMAHWpg=; b=osHRwoO/OFwU0YUc/lD/ZbJ0MXUixUFZbThuSaryfrkEeic0Kvpg150NTcyB2YLn73l53G jsY/vszKWQ+NlLPnkeikFJOvpyYflFxXOMoKOd3fn9os1n52Fa0fdvja3FswoAhYwH9km2 d3ympzAJq6D7mo9MDulE0alvuaG6K0awJZOU2DfiJjJmF6c3fZ7NeONwDiNhspXREgaKgc RtKzE5i9dgSdASQxgNrtPPjqLmf38WMfLoBqJRnj/vJTq61AhzkPLsDbuL4FFnl+yInCBd jiF5I5vl/xH0gjhxNkYIXRFlgKn2RkKDmrq4RbC3H2dKLDSITvkrbMEflrFeaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699301614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b9jIWGDc+tu8mWD9ZtdI2JAGbRbZObKGQGSixMAHWpg=; b=bN1oCdnRsYjQxMqxkQX3tIAD2RAZjJL04p3tBV2mhNJaD3cYF8PEb27fVZ6Cho4jTdNUS9 DSOZsnYhhhl0nFWF5o3REw8muBQLfnIYzCCSiW40NqBLo8J6L5lYeLeGMC10lli6+z761i 2P5gGsKhovN0UF3/rtanzxpS+WzIlo80LkruNNRH5ECTk/HI47Z9kb0nnUPfWBK56ufWhf zVA9ju+/ztJOH2h4Lk+OGYAl5ey/+WwJlJ2gUwWWkHwFCEvbjiFuh1McvlT+FhUmov7ROd z5WXvPc20bZStOa4ixu3hDk9DXqOLkhSgMqgwCICRH0DzzIYR/BheGXg2w8/Dw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699301614; a=rsa-sha256; cv=none; b=Wx7mKbDiccoxKpUpNlOcceioTgoCP3nK17JDQ2j4tq5Ynk0q+YzOxTkOXeTRV/SU7J1eKU Yyg5mf3+A3X5WTJ+v+1ZpqboXqi/sG9D67PuhAutEyvzWEIvG2szgL/Hm+z3K8zZCRX1AB 5+yUSzipAn97MsX8VhpjYJa69cI1p5p8d3FlHmEGYebPbkQRDNMy+CHFANLgJwEzLiC367 EtnvgJBno3wzDSbntCJ9p8PySHAOBi0qHrzUN7sZi1AXo07dWvqmhsYWrM5Au/uVVVjFqG NYnleT0YxanrjS6+twAYRtdKc3eDuTReoCrKR8VcKjJKqUQnyTkEYn16swH3MA== 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 4SPMxB38Y6z6GV; Mon, 6 Nov 2023 20:13:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6KDYvt010429; Mon, 6 Nov 2023 20:13:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6KDYpt010426; Mon, 6 Nov 2023 20:13:34 GMT (envelope-from git) Date: Mon, 6 Nov 2023 20:13:34 GMT Message-Id: <202311062013.3A6KDYpt010426@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: 09cca16bfc26 - stable/14 - pfsync: Avoid transmitting uninitialized bytes in pfsync_sendout() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 09cca16bfc26f669a5aea2a47e9891e34c3bebeb Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=09cca16bfc26f669a5aea2a47e9891e34c3bebeb commit 09cca16bfc26f669a5aea2a47e9891e34c3bebeb Author: Mark Johnston AuthorDate: 2023-11-04 14:28:24 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 20:11:35 +0000 pfsync: Avoid transmitting uninitialized bytes in pfsync_sendout() When IPv6 support was added to pfsync, PFSYNC_MINPKT increased such that we always allocate enough space for either IPv4 or IPv6 headers. IPv6 headers are 20 bytes larger than IPv4 headers. When pfsync_sendout() does its thing, it ends up allocating enough space for either; thus when transmitting an IPv4 packet, the last 20 bytes of the buffer are left uninitialized. Fix the problem by stashing the length in a local variable and adjusting it depending on the address family in use. While here, just zero the entire buffer in one go rather than being careful to initialize each subheader. This seems simpler and less error prone. Reported by: KMSAN Reviewed by: kp Fixes: 6fc7fc2dbb2b ("pfsync: transport over IPv6") MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42461 (cherry picked from commit bd80263606d73c0391d3fa8a156fcca89a821810) --- sys/netpfil/pf/if_pfsync.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index e29c00fcb879..75c361b394e0 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -1777,6 +1777,7 @@ pfsync_sendout(int schedswi, int c) struct pf_kstate *st, *st_next; struct pfsync_upd_req_item *ur; struct pfsync_bucket *b = &sc->sc_buckets[c]; + size_t len; int aflen, offset, count = 0; enum pfsync_q_id q; @@ -1797,7 +1798,9 @@ pfsync_sendout(int schedswi, int c) return; } m->m_data += max_linkhdr; - m->m_len = m->m_pkthdr.len = b->b_len; + bzero(m->m_data, b->b_len); + + len = b->b_len; /* build the ip header */ switch (sc->sc_sync_peer.ss_family) { @@ -1810,7 +1813,8 @@ pfsync_sendout(int schedswi, int c) bcopy(&sc->sc_template.ipv4, ip, sizeof(*ip)); aflen = offset = sizeof(*ip); - ip->ip_len = htons(m->m_pkthdr.len); + len -= sizeof(union inet_template) - sizeof(struct ip); + ip->ip_len = htons(len); ip_fillid(ip); break; } @@ -1824,7 +1828,8 @@ pfsync_sendout(int schedswi, int c) bcopy(&sc->sc_template.ipv6, ip6, sizeof(*ip6)); aflen = offset = sizeof(*ip6); - ip6->ip6_plen = htons(m->m_pkthdr.len); + len -= sizeof(union inet_template) - sizeof(struct ip6_hdr); + ip6->ip6_plen = htons(len); break; } #endif @@ -1832,14 +1837,14 @@ pfsync_sendout(int schedswi, int c) m_freem(m); return; } + m->m_len = m->m_pkthdr.len = len; /* build the pfsync header */ ph = (struct pfsync_header *)(m->m_data + offset); - bzero(ph, sizeof(*ph)); offset += sizeof(*ph); ph->version = PFSYNC_VERSION; - ph->len = htons(b->b_len - aflen); + ph->len = htons(len - aflen); bcopy(V_pf_status.pf_chksum, ph->pfcksum, PF_MD5_DIGEST_LENGTH); /* walk the queues */ @@ -1867,7 +1872,6 @@ pfsync_sendout(int schedswi, int c) } TAILQ_INIT(&b->b_qs[q]); - bzero(subh, sizeof(*subh)); subh->action = pfsync_qs[q].action; subh->count = htons(count); V_pfsyncstats.pfsyncs_oacts[pfsync_qs[q].action] += count; @@ -1888,7 +1892,6 @@ pfsync_sendout(int schedswi, int c) count++; } - bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_UPD_REQ; subh->count = htons(count); V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_UPD_REQ] += count; @@ -1905,7 +1908,6 @@ pfsync_sendout(int schedswi, int c) subh = (struct pfsync_subheader *)(m->m_data + offset); offset += sizeof(*subh); - bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_EOF; subh->count = htons(1); V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_EOF]++; @@ -1913,10 +1915,10 @@ pfsync_sendout(int schedswi, int c) /* we're done, let's put it on the wire */ if (ifp->if_bpf) { m->m_data += aflen; - m->m_len = m->m_pkthdr.len = b->b_len - aflen; + m->m_len = m->m_pkthdr.len = len - aflen; BPF_MTAP(ifp, m); m->m_data -= aflen; - m->m_len = m->m_pkthdr.len = b->b_len; + m->m_len = m->m_pkthdr.len = len; } if (sc->sc_sync_if == NULL) { From nobody Mon Nov 6 23:32:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPSMG0httz50fWL; Mon, 6 Nov 2023 23:32: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPSMG0DDnz4PCF; Mon, 6 Nov 2023 23:32:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699313578; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RO4LAufepDuKdLS9Kvv7HT3Exb2gy+USFrbAG2Mghi8=; b=S0+47Axnolopp4VQMWyObigKQnbhska/xoeSwJKYDRGANWekKVyFNF6QJIMqS1AItlr2Xh GGNimPx7+5e3sWR6vFd+qNAOHxPrRQnH+VqgDKe9Fyqqe/w8zZ0xFBsUTQ/UWhjmeSybo3 okf+NM+OASG9coz8H71s7rjLD4mmygZU4THqtJCM8cXfGbuGMj35gCqPxzE2+fIyexrsvH OScpdGg8O6sUfgqD5buxl21B2ak4Ra9CaTIXstKV2wW0QNTTDHEDFms3lazydRYaJwFU4u 6X/rr+H6Uw7RGLV7/bqQF8N4963Cg/Yle+jPtB+O1XbBd9Ithshfh8iGBUYwIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699313578; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RO4LAufepDuKdLS9Kvv7HT3Exb2gy+USFrbAG2Mghi8=; b=P5Y4HnVbuPAXKG/anCgDhuT/SkuRBIgyK7HSoLFG9iRUkVs70uKqqu6hUhec+0Uc05tbAX x7ozHeNUGlz18Lg3F3fr1O9v6B68aizpLz366BSjuDQMNZLyGIEo+hM9GY0k3DCS/4XgVy cgXHZphmMtUdExcTjxuO0PKPOguXhIWaLB+yq87hblrDhrzflPRVPkbf9PZg+1jZVjyCEf p+Zx5iSftAXmRaxa4Ek+0pE0i+1mBXHIUpnZoJE7soVFcQvpKJsC0Omzm2P2f24wqC8o2f RrDp2YzG90kQN0v7+P8dPgih98uX6H1PT07eFYZLCR0TxWHEJcYzqDb7HmTLqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699313578; a=rsa-sha256; cv=none; b=g6hLVsjDm0H4ZQJEI+aehJ1pGLjDzYR9LuRAAZVb8RqRt/p+vA6MqWP44HMOMVp8nqt81N gat50xvWjZsMdKCH9/y5/sNicarG97pun8QEeei/WCRE/LkQaQSUXB6MKFQv5DRn8VUPVy nMFx1dcSGWQmMZpYhKCR8HTrv70Vr2mrK4/i9uI6K1xURyRrQJIneNwvVzBLYCg7uoEt1H PKT4mOmVfS/i6022+9R8vBAd9/pDkMZPClebaYrUjNarDsfx1t2Horv7Z0R+BgVfzb0Prj EukQRD88kqRNaxte5xy9ms7jLAXT5zJ57RfnJAN1dUUG5wMkce+Z3lZo1UL0Cw== 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 4SPSMF6PjRzCRn; Mon, 6 Nov 2023 23:32:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A6NWvO9044330; Mon, 6 Nov 2023 23:32:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A6NWvCX044327; Mon, 6 Nov 2023 23:32:57 GMT (envelope-from git) Date: Mon, 6 Nov 2023 23:32:57 GMT Message-Id: <202311062332.3A6NWvCX044327@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: 0d4c814512b4 - releng/14.0 - pfsync: Avoid transmitting uninitialized bytes in pfsync_sendout() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 0d4c814512b4e8a3fe65ad0c9fca0c18def3621e Auto-Submitted: auto-generated The branch releng/14.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0d4c814512b4e8a3fe65ad0c9fca0c18def3621e commit 0d4c814512b4e8a3fe65ad0c9fca0c18def3621e Author: Mark Johnston AuthorDate: 2023-11-04 14:28:24 +0000 Commit: Mark Johnston CommitDate: 2023-11-06 23:32:38 +0000 pfsync: Avoid transmitting uninitialized bytes in pfsync_sendout() When IPv6 support was added to pfsync, PFSYNC_MINPKT increased such that we always allocate enough space for either IPv4 or IPv6 headers. IPv6 headers are 20 bytes larger than IPv4 headers. When pfsync_sendout() does its thing, it ends up allocating enough space for either; thus when transmitting an IPv4 packet, the last 20 bytes of the buffer are left uninitialized. Fix the problem by stashing the length in a local variable and adjusting it depending on the address family in use. While here, just zero the entire buffer in one go rather than being careful to initialize each subheader. This seems simpler and less error prone. Approved by: re (gjb) Approved by: so Reported by: KMSAN Reviewed by: kp Fixes: 6fc7fc2dbb2b ("pfsync: transport over IPv6") MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42461 (cherry picked from commit bd80263606d73c0391d3fa8a156fcca89a821810) (cherry picked from commit 09cca16bfc26f669a5aea2a47e9891e34c3bebeb) --- sys/netpfil/pf/if_pfsync.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index e29c00fcb879..75c361b394e0 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -1777,6 +1777,7 @@ pfsync_sendout(int schedswi, int c) struct pf_kstate *st, *st_next; struct pfsync_upd_req_item *ur; struct pfsync_bucket *b = &sc->sc_buckets[c]; + size_t len; int aflen, offset, count = 0; enum pfsync_q_id q; @@ -1797,7 +1798,9 @@ pfsync_sendout(int schedswi, int c) return; } m->m_data += max_linkhdr; - m->m_len = m->m_pkthdr.len = b->b_len; + bzero(m->m_data, b->b_len); + + len = b->b_len; /* build the ip header */ switch (sc->sc_sync_peer.ss_family) { @@ -1810,7 +1813,8 @@ pfsync_sendout(int schedswi, int c) bcopy(&sc->sc_template.ipv4, ip, sizeof(*ip)); aflen = offset = sizeof(*ip); - ip->ip_len = htons(m->m_pkthdr.len); + len -= sizeof(union inet_template) - sizeof(struct ip); + ip->ip_len = htons(len); ip_fillid(ip); break; } @@ -1824,7 +1828,8 @@ pfsync_sendout(int schedswi, int c) bcopy(&sc->sc_template.ipv6, ip6, sizeof(*ip6)); aflen = offset = sizeof(*ip6); - ip6->ip6_plen = htons(m->m_pkthdr.len); + len -= sizeof(union inet_template) - sizeof(struct ip6_hdr); + ip6->ip6_plen = htons(len); break; } #endif @@ -1832,14 +1837,14 @@ pfsync_sendout(int schedswi, int c) m_freem(m); return; } + m->m_len = m->m_pkthdr.len = len; /* build the pfsync header */ ph = (struct pfsync_header *)(m->m_data + offset); - bzero(ph, sizeof(*ph)); offset += sizeof(*ph); ph->version = PFSYNC_VERSION; - ph->len = htons(b->b_len - aflen); + ph->len = htons(len - aflen); bcopy(V_pf_status.pf_chksum, ph->pfcksum, PF_MD5_DIGEST_LENGTH); /* walk the queues */ @@ -1867,7 +1872,6 @@ pfsync_sendout(int schedswi, int c) } TAILQ_INIT(&b->b_qs[q]); - bzero(subh, sizeof(*subh)); subh->action = pfsync_qs[q].action; subh->count = htons(count); V_pfsyncstats.pfsyncs_oacts[pfsync_qs[q].action] += count; @@ -1888,7 +1892,6 @@ pfsync_sendout(int schedswi, int c) count++; } - bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_UPD_REQ; subh->count = htons(count); V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_UPD_REQ] += count; @@ -1905,7 +1908,6 @@ pfsync_sendout(int schedswi, int c) subh = (struct pfsync_subheader *)(m->m_data + offset); offset += sizeof(*subh); - bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_EOF; subh->count = htons(1); V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_EOF]++; @@ -1913,10 +1915,10 @@ pfsync_sendout(int schedswi, int c) /* we're done, let's put it on the wire */ if (ifp->if_bpf) { m->m_data += aflen; - m->m_len = m->m_pkthdr.len = b->b_len - aflen; + m->m_len = m->m_pkthdr.len = len - aflen; BPF_MTAP(ifp, m); m->m_data -= aflen; - m->m_len = m->m_pkthdr.len = b->b_len; + m->m_len = m->m_pkthdr.len = len; } if (sc->sc_sync_if == NULL) { From nobody Tue Nov 7 00:23:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPTTy3hhdz50q82; Tue, 7 Nov 2023 00:23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPTTy3Dkcz4cwF; Tue, 7 Nov 2023 00:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699316630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ew2nJJy0OeftcfI8TUZh0rEKe69VinhCv+BsuWolGfc=; b=O2STUbZbKNdIE0hyotfPNQH5BK9tRbuT1BrlnmVuqFE9b/7kU0kigSo52OnY65tMwUmnGi ApWnltETwfY4hZkvZlgmGePKnWOuvW7kUmUWx0W8j8EGtW21645powo7s3Yh5QNcVoc1tB X3FRq8XKwA4n1q/J37rpgRoVwqck0jcWCW3imbSZDFU+SKUSpqC+m1IW7MlRkObezvXcO9 48qsBcZnGczxl6TJbhR/6CwTfA3yW243EoGXQg5BC1c4OcTSKBKhn2RjlEjfoJ+hWRH21D nOcB2unQPDANdx9PXtfE7CkpPEAG+HgYEIEn1Ckr09ogyZwaJGW8RLzZit3xFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699316630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ew2nJJy0OeftcfI8TUZh0rEKe69VinhCv+BsuWolGfc=; b=upwLi9mjKvhOEXZrrWezcmKmpthUhyNp9V0MTf+o4u7nP9njZtQGMyeXS899yYZeWRv7O5 RjEmOeEu03XWdhGlUJbwCzN4a+YbmW488+PxXE9dO7I5adoJPyEMdZHB3oU4ddiRhKXbIv S+cJ8VD6q8V+9X7SOehXpsMLxU6WfRXUZtIocBWlS9PZtSvRggKPEZHQKV+7kNlIGhOFlf iHmq0q7tu1ruXc6NSYMzebINeXnXhN5wQ4FXbtIvOrFUEQhOIFFLNUPhNuBKL6huxJpkaB 5TzhCWvMRBYGc5T5gCqKNGW7C1Z5VItue8TneL33NE1MS5ppROGEiTO/+3JikA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699316630; a=rsa-sha256; cv=none; b=lu0eULppOc74c2nzUrOMQap/IhIn1+2EHjdBAp2GXpcrHhWFDR6OAtsMjp37xArVZhqI2T ZreDZyR0bsKbw0vFASE96SE/0EW6yCKYcxW6QPjxLsO2YrQOff16fFZVZYiN4uDqn4377u V7w+okqvukhaBlkgezRf5fzHh+WCPlrzFTjRoOt8c4kIVPpV1Dcl95Ep+eRnl1jUm0F3RV fD76DQ9NiAK366ituu44T74uGcKkAUb454/9eyB8ZPeAKAsb5ITA6TLburOSocVjFHHycX hXr18qjMYnJKlUEWA1Z7ewfUqP02IFvt7dB8p3RRqsgBudHWivjK9+vGUfHmiA== 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 4SPTTy2KctzTgW; Tue, 7 Nov 2023 00:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A70No8B032988; Tue, 7 Nov 2023 00:23:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A70NoLo032985; Tue, 7 Nov 2023 00:23:50 GMT (envelope-from git) Date: Tue, 7 Nov 2023 00:23:50 GMT Message-Id: <202311070023.3A70NoLo032985@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: 8da1c3715139 - stable/14 - reboot: Avoid unlocking Giant if the scheduler is stopped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 8da1c3715139ecfbda9159c766507e0f80212e92 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8da1c3715139ecfbda9159c766507e0f80212e92 commit 8da1c3715139ecfbda9159c766507e0f80212e92 Author: Mark Johnston AuthorDate: 2023-11-04 14:48:58 +0000 Commit: Mark Johnston CommitDate: 2023-11-07 00:23:38 +0000 reboot: Avoid unlocking Giant if the scheduler is stopped When the scheduler is stopped, mtx_unlock() turns into a no-op, so the loop while (mtx_owned(&Giant)) mtx_unlock(&Giant); runs forever if the calling thread has Giant locked. Reviewed by: mhorne MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42460 (cherry picked from commit deacab756026f86515781944a9e0271e8db9f86b) --- sys/kern/kern_shutdown.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c index e0eff6dbec01..19920d30357f 100644 --- a/sys/kern/kern_shutdown.c +++ b/sys/kern/kern_shutdown.c @@ -471,7 +471,7 @@ kern_reboot(int howto) * deadlock than to lock against code that won't ever * continue. */ - while (mtx_owned(&Giant)) + while (!SCHEDULER_STOPPED() && mtx_owned(&Giant)) mtx_unlock(&Giant); #if defined(SMP) From nobody Tue Nov 7 10:43:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPlDy4jc7z50nLW; Tue, 7 Nov 2023 10:43: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPlDy4HF9z3Vrv; Tue, 7 Nov 2023 10:43:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699353810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xoi09Hf9ABrdR3T2FEaX3EVlTcD4uDNw/9sT8bH42+U=; b=Bsw+HDQtzAhWeoGPb0zdPiejUQ7DtToCreJWPFV41OqkKlQjke/OE/abbjc+MplvkQwoOF k2+jkfE5sSHyxcsuuoNVVi8zEOTxZOdiUBgIJpbfIxF1Iq+uuco6ZrUe6j9XebdP2ETc/O xovYbueatnEsG45ocCx/13+I7glb+hxWgdFNkSSuCzMW2vDepCEzvXdxJ6beJF2uR3+hex B6nAWxNSg+oECeT+tuzzAHFXgAXZowICK7MlenCEwcxsy4T3BG88xQV2roe3tfVREQ4BWp a8hb8GBb1rChmK3vLxxW2rmUkw5okHtFjXpokAGx9p+VImF9s0LnHtKDRnpW4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699353810; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xoi09Hf9ABrdR3T2FEaX3EVlTcD4uDNw/9sT8bH42+U=; b=L/ZHrTrDJx3SKgC9b+m9ku9REWN9vIcdrB5XId5rPqOBzKmoQAAp1mkQwiOBvEPjzA11Nz W2ezOH1nkJAwdirwoZg4U25WGBOHPtx3+D+rKeTEOrB5NuAAgxcEcNOOAWds3DcoMYuW2L EbNOANy7tUYoMlbiosBTA92BAT4ICQ1yzWFPhbSJsZ6NKwFlOpV7UmE/La/KGg9at/Znfr vHKxeeC+Qekp1XmVBPp0ppowfJTO3O+H9w9SL0eGSF/mMs/fOZZutVSnQOP+TcB2jLh4Uw sCCu7RzF4DZEz8bWYr6Q5l9w8tiueDESmdi1lX98V50l5nLx5DUPydVFu06rHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699353810; a=rsa-sha256; cv=none; b=N/rLYc4geAJw4lBx2WRcNnWYRjEO+HLFaWo2CJmEOQIh/2ViP0U/nkSt6mQTER+8nhKKkg s2G6ImWg7Eay7F2clwIQt6kCKNCFTbDJIEjcldPgjSNtdenp7DkV2Ce/lC0s8dbzR7AS0G myZcSdSiK2oiBdcC/fiho/kzSaDiIakQbPg4V/fWH+Up54lyTgoRLUIOOVQjCJI4ZYJzWe wBmxva+bQywn9IUSKWlTafI0XX1pkNeJz6oEb+I1aQQIV89Tp6eY2MU0tC542VUqXGIDJm 1f9wsK/qe3ASXv8lBSERIrw8RXsW1EF5pMk3EUWx7d/vQK04ZidacYlDYRnpFA== 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 4SPlDy3M5vzmjB; Tue, 7 Nov 2023 10:43:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7AhU0s066964; Tue, 7 Nov 2023 10:43:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7AhUBP066961; Tue, 7 Nov 2023 10:43:30 GMT (envelope-from git) Date: Tue, 7 Nov 2023 10:43:30 GMT Message-Id: <202311071043.3A7AhUBP066961@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 51224d6d2e1d - stable/14 - setkey(8): make the policy specification more readable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 51224d6d2e1dfca2a7c20b8b10423e4a6d0ad819 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=51224d6d2e1dfca2a7c20b8b10423e4a6d0ad819 commit 51224d6d2e1dfca2a7c20b8b10423e4a6d0ad819 Author: Konstantin Belousov AuthorDate: 2023-10-31 04:07:10 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-07 10:42:58 +0000 setkey(8): make the policy specification more readable (cherry picked from commit 224fc33f603884e7eb9ed219afdd4c57ddec3cb9) --- sbin/setkey/setkey.8 | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/sbin/setkey/setkey.8 b/sbin/setkey/setkey.8 index 7dab0f622efd..8eece16030e5 100644 --- a/sbin/setkey/setkey.8 +++ b/sbin/setkey/setkey.8 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 27, 2023 +.Dd October 31, 2023 .Dt SETKEY 8 .Os .\" @@ -472,27 +472,43 @@ is expressed in one of the following three formats: .Xc .El .Pp -The direction of a policy must be specified as -one of: +.Bl -tag -compact -width "policy level" +.It Ar direction +The +.Ar direction +of a policy must be specified as one of: .Li out or .Li in . +.It Ar policy level The direction is followed by one of the following policy levels: .Li discard , .Li none , or .Li ipsec . +.Bl -compact -bullet +.It The .Li discard -policylevel means that packets matching the supplied indices will -be discarded while +policy level means that packets matching the supplied indices will +be discarded. +.It +The .Li none -means that IPsec operations will not take place on the packet and +policy level means that IPsec operations will not take place on +the packet. +.It +The .Li ipsec -means that IPsec operation will take place onto the packet. +policy level means that IPsec operation will take place onto +the packet. +.El +.It Ar protocol/mode/src-dst/level The .Ar protocol/mode/src-dst/level statement gives the rule for how to process the packet. +.Bl -compact -bullet +.It The .Ar protocol is specified as @@ -500,12 +516,15 @@ is specified as .Li esp or .Li ipcomp . +.It The .Ar mode is either .Li transport or .Li tunnel . +.El +.Pp If .Ar mode is @@ -517,6 +536,7 @@ and with a dash, .Sq - , between the addresses. +.Pp If .Ar mode is @@ -526,6 +546,7 @@ both and .Ar dst can be omitted. +.Pp The .Ar level is one of the following: @@ -534,25 +555,32 @@ or .Li unique . If the SA is not available in every level, the kernel will request the SA from the key exchange daemon. +.Pp +.Bl -compact -bullet +.It A value of .Li default tells the kernel to use the system wide default protocol e.g.,\& the one from the .Li esp_trans_deflev sysctl variable, when the kernel processes the packet. +.It A value of .Li use means that the kernel will use an SA if it is available, otherwise the kernel will pass the packet as it would normally. +.It A value of .Li require means that an SA is required whenever the kernel sends a packet matched that matches the policy. +.It The .Li unique level is the same as .Li require but, in addition, it allows the policy to bind with the unique out-bound SA. +.Pp For example, if you specify the policy level .Li unique , .Xr racoon 8 Pq Pa ports/security/ipsec-tools @@ -570,6 +598,8 @@ must be between 1 and 32767, which corresponds to .Ar extensions Fl u of manual SA configuration. +.El +.El .Pp When you want to use an SA bundle, you can define multiple rules. For From nobody Tue Nov 7 10:44:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPlFY5SB9z50n2d; Tue, 7 Nov 2023 10:44: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPlFY4lrWz3VrB; Tue, 7 Nov 2023 10:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699353841; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56zyX6D0me/5ao+GTdfvhxhWgyF0SEl9tliXIlS5sRY=; b=YZBUeBHbXodiw3b/yQZQbdgO05JBnN/q91FJOtSaYUrFmhbYSn+dyPI4uYRX0MIIgz2QBl AwIhZ5utZY7cFURVgZyhRXWknPtAjA0OZlZ7hJf8PPS/LNgaJmi34Yy2l4FKPFhsFfXrgi yoFPLD7ypJKogv+rYchN8Ur8F70w0bq2IsazvjrJthS/YnsTC8tignUMDYm4TZFlqtLL49 xkBdNbAwNzAp3xySgAYIf0c9wLWmjgNVbyojTj1iFJI3nx30owrwMONgrQkngSXBrKb2Ki eFi811GD7VSb5rismNFQQxiC+sxaH3YOINUYLYb6Vdo/LmXLDGeVWE/5tQ0hzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699353841; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56zyX6D0me/5ao+GTdfvhxhWgyF0SEl9tliXIlS5sRY=; b=kS+irAln37UbuSzPszuhRSNyjdE3SZH6auv5GpYvcSRG7bZmfBnWg2xrW30e5cBBBoUhkO xlq985/uFiKGJ+5IES8R96ayWUjUuLXZOREecGi6yUMPOrmQxNS+HyJ4DOEWTemHE/F6be F6uGrn67D4tTbQP7wOi04qyN8YW3pqytX43fjf8vgVpR6VKC+YbcXPEtH10tK6EaQzMGuh 0r42fxiyaMhHMKeIzjBX6j1scznK/HKeiwxpJsiq4mqtK2pKRaDJI2rFYpcwy9TvvqF7/W JDyKxrVqJnRrd9tk0UzvThiiGKzUnAGBn0i1bwwwRASxj9t5sBTPRMdAzMyNsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699353841; a=rsa-sha256; cv=none; b=UvWgsFbmSdGuXSQ8mMJXRcWKZ+KzPqJKen/Xgf+tMhQYWidEXYggneYTHpFTkL+afpvQKv Yr7v2TEtSeEPe7hLibxTsrR9SC/wYtF6vQhzZY868JiNOX9aYLCcHll6K0P3IqeC6CdJx7 MN3NU+R4i2c3HbUkJgtmi4JNIC1mkF1+jsV5pHy8B9/vn4VHmDKQsroila+dUNthcEi0Dy HTgCCRLbYwIRXnH6wyr11PfJh8GHpgnCHBnBlak23Oo1M8FlnwbWjTTFOfNTYRVfo1Xuxs WPXRzuz9SSGskNp+l7rpY4YyL9XoT7/AEehfJr4b+hpH1hHYXYklYn91w34jMg== 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 4SPlFY3q6CznDR; Tue, 7 Nov 2023 10:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7Ai1Sv067178; Tue, 7 Nov 2023 10:44:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Ai1Y2067175; Tue, 7 Nov 2023 10:44:01 GMT (envelope-from git) Date: Tue, 7 Nov 2023 10:44:01 GMT Message-Id: <202311071044.3A7Ai1Y2067175@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 342bf5645f8d - stable/13 - setkey(8): make the policy specification more readable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 342bf5645f8df8c631a93a3b35a8708310ecce6a Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=342bf5645f8df8c631a93a3b35a8708310ecce6a commit 342bf5645f8df8c631a93a3b35a8708310ecce6a Author: Konstantin Belousov AuthorDate: 2023-10-31 04:07:10 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-07 10:43:37 +0000 setkey(8): make the policy specification more readable (cherry picked from commit 224fc33f603884e7eb9ed219afdd4c57ddec3cb9) --- sbin/setkey/setkey.8 | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/sbin/setkey/setkey.8 b/sbin/setkey/setkey.8 index 8a0a999a7567..c99b21e53dcd 100644 --- a/sbin/setkey/setkey.8 +++ b/sbin/setkey/setkey.8 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 27, 2023 +.Dd October 31, 2023 .Dt SETKEY 8 .Os .\" @@ -472,27 +472,43 @@ is expressed in one of the following three formats: .Xc .El .Pp -The direction of a policy must be specified as -one of: +.Bl -tag -compact -width "policy level" +.It Ar direction +The +.Ar direction +of a policy must be specified as one of: .Li out or .Li in . +.It Ar policy level The direction is followed by one of the following policy levels: .Li discard , .Li none , or .Li ipsec . +.Bl -compact -bullet +.It The .Li discard -policylevel means that packets matching the supplied indices will -be discarded while +policy level means that packets matching the supplied indices will +be discarded. +.It +The .Li none -means that IPsec operations will not take place on the packet and +policy level means that IPsec operations will not take place on +the packet. +.It +The .Li ipsec -means that IPsec operation will take place onto the packet. +policy level means that IPsec operation will take place onto +the packet. +.El +.It Ar protocol/mode/src-dst/level The .Ar protocol/mode/src-dst/level statement gives the rule for how to process the packet. +.Bl -compact -bullet +.It The .Ar protocol is specified as @@ -500,12 +516,15 @@ is specified as .Li esp or .Li ipcomp . +.It The .Ar mode is either .Li transport or .Li tunnel . +.El +.Pp If .Ar mode is @@ -517,6 +536,7 @@ and with a dash, .Sq - , between the addresses. +.Pp If .Ar mode is @@ -526,6 +546,7 @@ both and .Ar dst can be omitted. +.Pp The .Ar level is one of the following: @@ -534,25 +555,32 @@ or .Li unique . If the SA is not available in every level, the kernel will request the SA from the key exchange daemon. +.Pp +.Bl -compact -bullet +.It A value of .Li default tells the kernel to use the system wide default protocol e.g.,\& the one from the .Li esp_trans_deflev sysctl variable, when the kernel processes the packet. +.It A value of .Li use means that the kernel will use an SA if it is available, otherwise the kernel will pass the packet as it would normally. +.It A value of .Li require means that an SA is required whenever the kernel sends a packet matched that matches the policy. +.It The .Li unique level is the same as .Li require but, in addition, it allows the policy to bind with the unique out-bound SA. +.Pp For example, if you specify the policy level .Li unique , .Xr racoon 8 @@ -570,6 +598,8 @@ must be between 1 and 32767, which corresponds to .Ar extensions Fl u of manual SA configuration. +.El +.El .Pp When you want to use an SA bundle, you can define multiple rules. For From nobody Tue Nov 7 13:39:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPq7S2sTpz506l9; Tue, 7 Nov 2023 13:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPq7S2Ll3z4Sjt; Tue, 7 Nov 2023 13:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699364340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L8kgXhOFPXmV0rVK7yHJ2+SvmMDRyBmoKDnpZc2cJX8=; b=YUVzGK1dJND4T87/sjtrGndUtVJIyK2ZYgPJnUO7NnNgFd9o6DjK74oyorMIQX6dTUtzQu 7aL1JTnPE2DmzYpoflJv6deGAAbdq8LwdCi7T68/KwN0idf92Kl413dA0M7w9OZcdlS8VJ cOSCfOxKvGi1bbhOQ5PmjDJS/mtXa2oWn+Pgu1Q7HBV3jutmAMWJgy8TL9Trf/LUm+xwug Xl/hH3mS/r7mFuwoc7bsSurbmElu9TZvIgVpqGX+LaaGhqTVyBjrIwMRGrFlIu8UHInEA4 5kd7HDKH++f9qFqcXCSG33fx/ibA6IaOicW5tdOB0+UOtwTHu5Y46FLszy2KZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699364340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L8kgXhOFPXmV0rVK7yHJ2+SvmMDRyBmoKDnpZc2cJX8=; b=YutfQt8//QJHeFmhYyxNakMlB1+MSY+MDvaXVxyAsnoDIyxifyWyEjc/hQHzubLTVQGBcl DASbqVPCl/a+rU3pIFXcYh7rGVhoqO//8O99sTi+AnSmYkwVgUS/Eib3zd8WgTizRnsrYG FaXP3da7OR3/pCFP+6ntSS90m8qEY72ic/SAqJheAqxOSL288vdQrPTH1v9fO2vTY8V8vS mLeW/AGX0hnOef/9K9N8PLAYkKLdzXn4wpNNjZxCg4Lg30vNEU3C1YM86ZtYalyXQshCXJ /g7wuERqiJOIaENQxhxKmkR4FVmGU2TbLCucLx+J2ajn5FrId5aRYFe1larkmQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699364340; a=rsa-sha256; cv=none; b=sMWKUntAEIrQgF1zPeF0UWX+ji9GE/N9vS6mli0IMdGxAo8krf8lmzsqSzNVRvZSUCbj5l eetOwfoLIzC3R11jrAb21HftWtt4We42WdcUs/1kXXcbfNJfc8aidFfsrP9THyyKbpTeVZ HWL+d/lRcchjsMqh2wmW4oORGlllSitUFFWZeFA+RlboqnX/JqgK/svFBoXiXp67Gi9HwK 5aKuWqjDiR+jkrSOVAJM9CM1ty/ongpQMLAbDviHkDiOujLJl6F7v4pmvFmsVQe3Zbn92q bmuCPwcHRThwFHvq67Pw2PLHSrVsFLlcekxocSYJTpdWmXNG1rfoBpigr5F0yQ== 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 4SPq7S1SBBzrnm; Tue, 7 Nov 2023 13:39:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7Dd0db052154; Tue, 7 Nov 2023 13:39:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Dd0lg052151; Tue, 7 Nov 2023 13:39:00 GMT (envelope-from git) Date: Tue, 7 Nov 2023 13:39:00 GMT Message-Id: <202311071339.3A7Dd0lg052151@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: 92709431b14d - stable/14 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 92709431b14df6c0687446247ac57cfc189ee827 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=92709431b14df6c0687446247ac57cfc189ee827 commit 92709431b14df6c0687446247ac57cfc189ee827 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 13:38:24 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) Approved by: so --- lib/libc/stdio/fflush.c | 21 +++++++-------------- lib/libc/stdio/fvwrite.c | 4 ++-- lib/libc/stdio/wbuf.c | 2 +- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index 7ad6adedf53f..61f23335106f 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -103,8 +103,8 @@ __weak_reference(__fflush, fflush_unlocked); int __sflush(FILE *fp) { - unsigned char *p, *old_p; - int n, f, t, old_w; + unsigned char *p; + int n, f, t; f = fp->_flags; if ((f & __SWR) == 0) @@ -119,26 +119,19 @@ __sflush(FILE *fp) * Set these immediately to avoid problems with longjmp and to allow * exchange buffering (via setvbuf) in user write function. */ - old_p = fp->_p; fp->_p = p; - old_w = fp->_w; fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - /* conditional to handle setvbuf */ - } else if (p == fp->_p && errno == EINTR) { - fp->_p = old_p; - fp->_w = old_w; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index 81e7ba89a644..26245acca1c9 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -139,7 +139,7 @@ __sfvwrite(FILE *fp, struct __suio *uio) fp->_p += w; old_p = fp->_p; if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) + if (old_p == fp->_p) fp->_p -= w; goto err; } @@ -183,7 +183,7 @@ __sfvwrite(FILE *fp, struct __suio *uio) fp->_p += w; old_p = fp->_p; if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) + if (old_p == fp->_p) fp->_p -= w; goto err; } diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index acbe379ad90e..808cfa588cfb 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -89,7 +89,7 @@ __swbuf(int c, FILE *fp) old_p = fp->_p; if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { if (__fflush(fp) != 0) { - if (fp->_p == old_p && errno == EINTR) { + if (fp->_p == old_p) { fp->_p--; fp->_w++; } From nobody Tue Nov 7 13:39:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPq7T4gmxz506g2; Tue, 7 Nov 2023 13:39: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPq7T3hTLz4SYn; Tue, 7 Nov 2023 13:39:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699364341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B4yuHi9zA7JCnYczfMA6R5NFg4FjjaDNY3mrzHk4i8M=; b=W06Xz/Gk+B7YmkzhOY4f/GTF0bV1ZsOymF88v0bUdZ2K7Ine2RcKAmnkjsj45it5suoouW 33NXSRIAqpss2RADu6FJ0XbWVFYdQDuV3Xizyy7mYIZpbKcULY7Gu9q97SFCnymC6oIpRg qwGmaTAb+4BNyJQla4VG/WZRd85zhXQ8kH7Rfo7oZdDZWIoyQY6BkLyvoHgqS6m7AZCnqO DFAtS9eUyOFJk2cCFkHUWvCc8nwwx3/dyHMNmr9SRrvif6ly3/PWElhWzpYccKlbigDSmI 6Eu/LEs4tqz8bI8gHz+dSEaLu9RvczelWkNT2QBUMN9FxT4qurYz0RSwmZ6HnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699364341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B4yuHi9zA7JCnYczfMA6R5NFg4FjjaDNY3mrzHk4i8M=; b=KrFDlDC1ZivnoJV4Xw1BAGpCRB2WKu2auyIQivr14Mu9unhu2GSVIJvgBZ1elHSUIfwaEc NniRByI0BV42OvsPzbq5tDlec6AwatOwkWbRrdEMf8p0X9884fgf1pdj7AtBxae3bSiQxU MfhOI/cleApFtKJPEMlH9lIDr9MYhqSDEkMnZxK3cn/3SlWkmoDQefE5TcrqyLvURXiPLz 0CI0zDS4mMeG3RW0KKrQtIW8XaokMyOIrBXtg5w4xn1kTfbjp+0WAiCI1rDwYr2ciMQKjv wLkKSQU5KhugUXqxwBqPt0EhsR6EBcTnBAOt1JZzIykNwACZ3OMoXJxtq7I+gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699364341; a=rsa-sha256; cv=none; b=D5t7pwtNF92rMR3p9/DbcRm7Xhywtfo+9qLBf7R2yV/SyXWK9cDzeuelGvsxQgQaOrPqAb a56MWbrVO4RzvTJsFZR/QN8V41GGsKsgnlEzznVf3okT+GqOOMhMA8YPYtTbwE0DH/RLnW Hf9FK0Mb94E3J3XkTOuFE7KpUo7u4G0uzdwRCL4PI9IEk2EzSNs+4DXdIdn/Ibm6aVbyCK drj5pkaPoPSTT9feCSrASvM/6edReKnhAscFWktqw5JJFCRTEYHsU0xtHufDCBYZcKDH3Q tc4UY2bIn6/8OC7dNT5Je3kY3ueIQUJOQLueiZM2VXsgEEGCyq5YTriurkMmdQ== 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 4SPq7T2lrqzrbj; Tue, 7 Nov 2023 13:39:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7Dd179052211; Tue, 7 Nov 2023 13:39:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Dd15c052208; Tue, 7 Nov 2023 13:39:01 GMT (envelope-from git) Date: Tue, 7 Nov 2023 13:39:01 GMT Message-Id: <202311071339.3A7Dd15c052208@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: ba490dfc95e0 - stable/14 - fflush: Add test for buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: ba490dfc95e0941216420a2003757b3c4b5b2ec2 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ba490dfc95e0941216420a2003757b3c4b5b2ec2 commit ba490dfc95e0941216420a2003757b3c4b5b2ec2 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 13:38:35 +0000 fflush: Add test for buffer handling in __sflush Sponsored by: Klara, Inc. (cherry picked from commit b8dbfb0a6c181a9aeab0b793deb0813d06052df9) Approved by: so --- lib/libc/tests/stdio/Makefile | 1 + lib/libc/tests/stdio/flushlbuf_test.c | 155 ++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) diff --git a/lib/libc/tests/stdio/Makefile b/lib/libc/tests/stdio/Makefile index 7716a60c0e6b..f0822601e34b 100644 --- a/lib/libc/tests/stdio/Makefile +++ b/lib/libc/tests/stdio/Makefile @@ -3,6 +3,7 @@ ATF_TESTS_C+= eintr_test ATF_TESTS_C+= fdopen_test +ATF_TESTS_C+= flushlbuf_test ATF_TESTS_C+= fmemopen2_test ATF_TESTS_C+= fopen2_test ATF_TESTS_C+= freopen_test diff --git a/lib/libc/tests/stdio/flushlbuf_test.c b/lib/libc/tests/stdio/flushlbuf_test.c new file mode 100644 index 000000000000..11d9ea4ecc6c --- /dev/null +++ b/lib/libc/tests/stdio/flushlbuf_test.c @@ -0,0 +1,155 @@ +/*- + * Copyright (c) 2023 Klara, Inc. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +#include + +#define BUFSIZE 16 + +static const char seq[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +struct stream { + char buf[BUFSIZE]; + unsigned int len; + unsigned int pos; +}; + +static int writefn(void *cookie, const char *buf, int len) +{ + struct stream *s = cookie; + int written = 0; + + if (len <= 0) + return 0; + while (len > 0 && s->pos < s->len) { + s->buf[s->pos++] = *buf++; + written++; + len--; + } + if (written > 0) + return written; + errno = EAGAIN; + return -1; +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_partial); +ATF_TC_BODY(flushlbuf_partial, tc) +{ + static struct stream s; + static char buf[BUFSIZE + 1]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = BUFSIZE / 2; // write will fail after this amount + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will consume s.len characters before + * returning EAGAIN, causing fprintf() to fail without having + * written anything (which is why we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * We have consumed s.len characters from the buffer, so continue + * printing until it is full again and check that no overflow has + * occurred yet. + */ + while (i < BUFSIZE + s.len) + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(BUFSIZE + s.len, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); + + /* + * The straw that breaks the camel's back: libc fails to recognize + * that the buffer is full and continues to write beyond its end. + */ + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_full); +ATF_TC_BODY(flushlbuf_full, tc) +{ + static struct stream s; + static char buf[BUFSIZE]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = 0; // any attempt to write will fail + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will immediately return EAGAIN, causing + * fprintf() to fail without having written anything (which is why + * we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * Now make our stream writeable. + */ + s.len = sizeof(s.buf); + + /* + * Flush the stream again. The data we failed to write previously + * should still be in the buffer and will now be written to the + * stream. + */ + ATF_CHECK_EQ(0, fflush(f)); + ATF_CHECK_EQ(seq[0], s.buf[0]); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, flushlbuf_partial); + ATF_TP_ADD_TC(tp, flushlbuf_full); + + return (atf_no_error()); +} From nobody Tue Nov 7 14:10:12 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPqqT0mR7z50C16; Tue, 7 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPqqT0F4bz4Xm3; Tue, 7 Nov 2023 14:10:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699366213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXUbZlQl6fCsL37VeiL12o0wqrEBkUQKyggDt3e8nHs=; b=J3UCF/tPBU4WmkKHpHGoSCo2UJetZUSiFIA4zGDmSRTI543aLMYvvFD2OcyZovB+nIPyrd EM2FabqaoEJjfoHgRwiUecZE1nM6k5k5+nwSu+z5w0tcVEoQrOcKxLYW457ukUEUhaVzND be8cKK7x2hw7IMbSGsw50mUoclZw7mo7qXJZATgy4dvZnF+GAMMWSx+/xGO6VMg9LXC/0e itCLG0KcJH3kRQbzc1vFjgg61jLA/FuBg04jYM0fmcYWDq9Lw1c51lHOPq5qo7jyP+1vwi zMCEfbtbpqJ35/BADg4H7ZIupXJUDL99xdwspuFRHc09cpa5C70wN7WVNxzWgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699366213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXUbZlQl6fCsL37VeiL12o0wqrEBkUQKyggDt3e8nHs=; b=dHM71C6uyYXlla9JH05FrMkYgZ8efAzqSqXWTF+wIomFnz9BZ/104IZOEUhgYdBOL5FU1L kmVOnAkJcTHfGHKH+zxwsYr9+o/KY3cPFmN/krOQZv+QMYBkqw6E3mURqL3eH5M35IReAx 7j9VHMRBBxnkusmjQygwYnwiZz0JemU8Y3tOkuOLOhda8NBjXV43p5sc57uxtorHVvk9Xl 7NiGqebF1073Z18cSCKBJwhmPmyNo9P5iVqmtlh3JCGxwGvpP/wa+vPE2wLscBdxUKA1V4 PAIVZD8d9uNqEL+/tY3RSTCiY2LG3IdAJgHInLvK5YUrLCmSOxpX8NN6rHrwbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699366213; a=rsa-sha256; cv=none; b=mb2VDTiYE6ZEpidKSpLeGMQXGX1HFzlgkfXsGiOdK2RARnsvSNQ7rWOexX1s69Eh4kypZ+ XnRwwgC76hLK+JgC/ZMgAuf9FQ02dIvr28q00xNT1cC8kKmBi37bKH+ab5BOfZYQ2TIGTk 2l/z8Ls/9yJ7zh2KNQe7jHjO4nduQEfV1TKaPnCywtwhqEI0RE0//WhGD1He0efQ48wThV VlwWLZWpepc7zF6bcqzJEkJ8uN61IbCJk/006K7NkYNfUNZpF7P02fdLwXa4jGtRWAAs09 a7Ohndahm53f6qrDC1rKuscxkcHPQvEV0pf93iQjIqcsDVvfGvdBk61mMRQ09A== 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 4SPqqS6RLVzsvH; Tue, 7 Nov 2023 14:10:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7EACxe008795; Tue, 7 Nov 2023 14:10:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7EAC7f008783; Tue, 7 Nov 2023 14:10:12 GMT (envelope-from git) Date: Tue, 7 Nov 2023 14:10:12 GMT Message-Id: <202311071410.3A7EAC7f008783@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: 6cb5690b3495 - stable/13 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 6cb5690b3495741e9ece6f42ba4a85732932aa83 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6cb5690b3495741e9ece6f42ba4a85732932aa83 commit 6cb5690b3495741e9ece6f42ba4a85732932aa83 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 13:39:48 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) (cherry picked from commit 92709431b14df6c0687446247ac57cfc189ee827) Approved by: so --- lib/libc/stdio/fflush.c | 21 +++++++-------------- lib/libc/stdio/fvwrite.c | 4 ++-- lib/libc/stdio/wbuf.c | 2 +- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index 7ad6adedf53f..61f23335106f 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -103,8 +103,8 @@ __weak_reference(__fflush, fflush_unlocked); int __sflush(FILE *fp) { - unsigned char *p, *old_p; - int n, f, t, old_w; + unsigned char *p; + int n, f, t; f = fp->_flags; if ((f & __SWR) == 0) @@ -119,26 +119,19 @@ __sflush(FILE *fp) * Set these immediately to avoid problems with longjmp and to allow * exchange buffering (via setvbuf) in user write function. */ - old_p = fp->_p; fp->_p = p; - old_w = fp->_w; fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - /* conditional to handle setvbuf */ - } else if (p == fp->_p && errno == EINTR) { - fp->_p = old_p; - fp->_w = old_w; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index 81e7ba89a644..26245acca1c9 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -139,7 +139,7 @@ __sfvwrite(FILE *fp, struct __suio *uio) fp->_p += w; old_p = fp->_p; if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) + if (old_p == fp->_p) fp->_p -= w; goto err; } @@ -183,7 +183,7 @@ __sfvwrite(FILE *fp, struct __suio *uio) fp->_p += w; old_p = fp->_p; if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) + if (old_p == fp->_p) fp->_p -= w; goto err; } diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index acbe379ad90e..808cfa588cfb 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -89,7 +89,7 @@ __swbuf(int c, FILE *fp) old_p = fp->_p; if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { if (__fflush(fp) != 0) { - if (fp->_p == old_p && errno == EINTR) { + if (fp->_p == old_p) { fp->_p--; fp->_w++; } From nobody Tue Nov 7 14:10:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPqqV20FNz50C89; Tue, 7 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPqqV11GWz4Xs0; Tue, 7 Nov 2023 14:10:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699366214; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UyNiwCSxC79pYfmPa/0xbHJkqSUnn58zLszBgimI0t0=; b=kcovV2sCisS9asOD2uvrVxXrQ/MRYsK5+G5t0l4RxfngynEpSqWdZ9f4c6aSw3aZs12kTO 5ujD+eOhVrSPB98QkGtLH9HLexQHprfcj80pBFW39TOrz75rC0EF0uDZrkLi/zLZ3MnVn5 vN/12nGjp6/Sf24PbmdkdMiIsI2OsRzoAjQyONoTIrfBsOK9TnmSORX1TPjj2PCknyWl1W Dii1UUlFGWAptl/6Nm98byd0qZDhumH/16Ci5Zj1/YhP2cOanifpCCL611grcX5DQ6r3As D8tMSZGaVHUNXJSlFvv7Fza7uwb6j08wpek3UD6Wr9dybNA5iQlJ7y3FzM+WRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699366214; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UyNiwCSxC79pYfmPa/0xbHJkqSUnn58zLszBgimI0t0=; b=heQ1rEv6+1QgVO6//fX7eQ2/oIR4hBdyrbWScjl+tmOjfn5+2IXq2pkS3pIGolZ8ZHisti g7g6Y7HvCluTR6+T4Iv1MjNsCsseLxpVQKlSMDKErpAqtjx3QuWZGYTkhoUfgpMirxS+d2 FAkT/CvYBdvlSIRlUjWrbK9OKdlin/zfm2d+VnPY5UxLLFvGU+A03rskSx28Iy95+joGiy ry6+haCyb+NQz9kU9VrGvuDR56IcfuZKTqbCN7U94llTzPr+JwOq/ELevS+c7+P4ftDMFA 5PBmn4Gh1yLd+EL2SJVyyZqxN9Nm5X9wvP7ckhcCNxTe2N9k3oBBnbl23H3URA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699366214; a=rsa-sha256; cv=none; b=S8WcqsYLnxHeVRREJlm2nvfNuMMvue0Qd4WFa86vmzIncpjxTXxyzTWXP2E3zHpzXRSTfA pDcqMo1uwdyB36EithUZbUiH/iIDJ+u+wxZM/sRjJGJeuY6FiWl0PE3wirqIWfVp2g5eaO /Bqprjn/dwMzzo+tlVpdjxa7FQ9jMKNNQzhPbfWfYqF/BgJb3KPG/VU3E9a3crzp4E7a0M EknvCjbTFMh0U6IMJEPqY/u9DUDxnqW0v99sT9K8/ESe3S5xzAX9b2RwisPrwXyTexyAsx ctskRVohjU2UQyqll8xvYQbDs5BgAHTtMRxIRCZTWKlZsZJeicNHfKg7n0r+hQ== 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 4SPqqT75W3zsvJ; Tue, 7 Nov 2023 14:10:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7EADlw009500; Tue, 7 Nov 2023 14:10:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7EAD7D009497; Tue, 7 Nov 2023 14:10:13 GMT (envelope-from git) Date: Tue, 7 Nov 2023 14:10:13 GMT Message-Id: <202311071410.3A7EAD7D009497@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: 66d84f1362f6 - stable/13 - fflush: Add test for buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 66d84f1362f63c23f6f451490e153e0703a7cda6 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=66d84f1362f63c23f6f451490e153e0703a7cda6 commit 66d84f1362f63c23f6f451490e153e0703a7cda6 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 13:39:55 +0000 fflush: Add test for buffer handling in __sflush Sponsored by: Klara, Inc. (cherry picked from commit b8dbfb0a6c181a9aeab0b793deb0813d06052df9) (cherry picked from commit ba490dfc95e0941216420a2003757b3c4b5b2ec2) Approved by: so --- lib/libc/tests/stdio/Makefile | 1 + lib/libc/tests/stdio/flushlbuf_test.c | 155 ++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) diff --git a/lib/libc/tests/stdio/Makefile b/lib/libc/tests/stdio/Makefile index 12ae44855da5..452bcc535d21 100644 --- a/lib/libc/tests/stdio/Makefile +++ b/lib/libc/tests/stdio/Makefile @@ -3,6 +3,7 @@ ATF_TESTS_C+= eintr_test ATF_TESTS_C+= fdopen_test +ATF_TESTS_C+= flushlbuf_test ATF_TESTS_C+= fmemopen2_test ATF_TESTS_C+= fopen2_test ATF_TESTS_C+= freopen_test diff --git a/lib/libc/tests/stdio/flushlbuf_test.c b/lib/libc/tests/stdio/flushlbuf_test.c new file mode 100644 index 000000000000..11d9ea4ecc6c --- /dev/null +++ b/lib/libc/tests/stdio/flushlbuf_test.c @@ -0,0 +1,155 @@ +/*- + * Copyright (c) 2023 Klara, Inc. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +#include + +#define BUFSIZE 16 + +static const char seq[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +struct stream { + char buf[BUFSIZE]; + unsigned int len; + unsigned int pos; +}; + +static int writefn(void *cookie, const char *buf, int len) +{ + struct stream *s = cookie; + int written = 0; + + if (len <= 0) + return 0; + while (len > 0 && s->pos < s->len) { + s->buf[s->pos++] = *buf++; + written++; + len--; + } + if (written > 0) + return written; + errno = EAGAIN; + return -1; +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_partial); +ATF_TC_BODY(flushlbuf_partial, tc) +{ + static struct stream s; + static char buf[BUFSIZE + 1]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = BUFSIZE / 2; // write will fail after this amount + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will consume s.len characters before + * returning EAGAIN, causing fprintf() to fail without having + * written anything (which is why we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * We have consumed s.len characters from the buffer, so continue + * printing until it is full again and check that no overflow has + * occurred yet. + */ + while (i < BUFSIZE + s.len) + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(BUFSIZE + s.len, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); + + /* + * The straw that breaks the camel's back: libc fails to recognize + * that the buffer is full and continues to write beyond its end. + */ + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_full); +ATF_TC_BODY(flushlbuf_full, tc) +{ + static struct stream s; + static char buf[BUFSIZE]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = 0; // any attempt to write will fail + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will immediately return EAGAIN, causing + * fprintf() to fail without having written anything (which is why + * we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * Now make our stream writeable. + */ + s.len = sizeof(s.buf); + + /* + * Flush the stream again. The data we failed to write previously + * should still be in the buffer and will now be written to the + * stream. + */ + ATF_CHECK_EQ(0, fflush(f)); + ATF_CHECK_EQ(seq[0], s.buf[0]); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, flushlbuf_partial); + ATF_TP_ADD_TC(tp, flushlbuf_full); + + return (atf_no_error()); +} From nobody Tue Nov 7 14:29:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPrG33625z50G5c; Tue, 7 Nov 2023 14: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPrG32bkdz4Zw5; Tue, 7 Nov 2023 14: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=1699367387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F1pmxnMcDDryg0wOf74FHIxvrSVc/Mak5voVMT8v0gE=; b=vdWLx4AsqfIzOBWvGIB8ZEH/SHl7F+fqxjqvQwPaLNxCSOV9mb4/JctagPQ1y7TwvIJF8m HbvGRzdg/sG04HR0TPsmq7+7sls7+kHWBrAlLdfdbJkMroH1N06zH2N0vw7g0xLJAaXCoS FLdEAcvfAublFAK0knGobg6TTCQvGPx17phQqPotn8p1reElTH1hHKCNbLoTd8F4otxg/U qF7ok6XvmwfcQZDL9CDq0WLWy+MbZJZMGLEn4/q8DLlZy1fgamhlTQL31tbNMap3pN+lFM Nr1s9X0w3YudE4VP5ZkxXRBAaw/L7kcJEULkxTjcYCKYD4TpyObb2jsB8PcHrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699367387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F1pmxnMcDDryg0wOf74FHIxvrSVc/Mak5voVMT8v0gE=; b=D+4Mw9Viro+zQ6/q9fV9BhuSulgGyAH7kDKb8+C5bBegccwFFq0cNByKXAfqGVKriVQK2f nTtjQkvDTDBSEanAXkTFOEMffaiMK8HMXt0AGtcqguC1A/BumgQVSF1wu0UFlIgXPHrK4k eSsF+cs2vzFMzRGJhId35d5tqbKq3Yqvf46+DzUvXAApHH4+hg+5gqyI93esPUVDGWBhdD BeRfqHRHqc5f4+s8h06V1scwOF8s+KtOv2YKBIme2kuzxa6BC+cC68xSFRqzcskUqjWzuX 0AjH2zUPHw+rH/Mcf98LLDpt8BFAMWU5VMQmN8QZ7/LiBZx10Lc7nChcvpyPdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699367387; a=rsa-sha256; cv=none; b=e4O4ahGW5nDurMk1RXugAOG4wR82dukinubnVdRpP4WwGRXsAIV+C23mhpFTDtZYBKqT5I SUeZvKMdhWBSwkSADyCpbTjdIyXtG1VcpiWN1O5bKtqMyXCKVSw2qT1W4UsgK2o7TguEjp /fl4Difrxm382iLNDNZoTOmXfmzzCL9Sb4rjXt12bP/s7Wap6OiCAgHDLECNm8HgZMfBpj 4IGobXXbZ42tT2Id1Cz4QdvsLs8GYNglYMAlRtUBfHoKImNxpnNJKig6ND26sASPq+0dFU B+RNfPyxY6hMinOJO0VXeX+ohfKMqtAbbomyjZBFjGhx9JAtAEbIQxqppLCC7w== 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 4SPrG31YPBztNV; Tue, 7 Nov 2023 14:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7ETloN035860; Tue, 7 Nov 2023 14:29:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7ETlmk035857; Tue, 7 Nov 2023 14:29:47 GMT (envelope-from git) Date: Tue, 7 Nov 2023 14:29:47 GMT Message-Id: <202311071429.3A7ETlmk035857@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: 3a2ea31568c8 - stable/12 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 3a2ea31568c81f7b29710abd3d3e1ada2fbeb6c9 Auto-Submitted: auto-generated The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3a2ea31568c81f7b29710abd3d3e1ada2fbeb6c9 commit 3a2ea31568c81f7b29710abd3d3e1ada2fbeb6c9 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 14:11:54 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) (cherry picked from commit 92709431b14df6c0687446247ac57cfc189ee827) (cherry picked from commit 6cb5690b3495741e9ece6f42ba4a85732932aa83) Approved by: so --- lib/libc/stdio/fflush.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index 05e587ecec66..75f145fae6a3 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -127,14 +127,13 @@ __sflush(FILE *fp) for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } From nobody Tue Nov 7 14:30:24 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPrGm6pD8z50G1Y; Tue, 7 Nov 2023 14:30: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPrGm6HYtz4b7D; Tue, 7 Nov 2023 14:30:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699367424; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5xPsRqAFEs77npUxoLx3/3wuVDu9twVyuq3Psu+XSJc=; b=f1kR89DmbU/0wxX+cD1Fi8XRuG42ndWibxMw+lJfLMq2/QI3is50xK6NiI7yPVEz2VIcPV bhCQBl1REP5+LRA64lJbfGH5WIaXcVJ3Ml7EmO585AfgbHcUMwWFYqFzQIpCR9fZDzDa/3 VPAGVLOFrB36gDNB7Lj41LZnyKa7c2LXdwTyvDi0scyvMLj8q61/kMT4BrOO8gpjPM8QKP //JBvaFg2cY89PpJFn7wcdGOdL4EyIE1ISKBP4rsksTx0s63lk/fRTPIFX+hGQf4afX1hF PK/K1rgZJASSlqbgEm0RrlyJ1m3XFvnsPB005xq/Hb+a14YSQpDkl34lzQ10hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699367424; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5xPsRqAFEs77npUxoLx3/3wuVDu9twVyuq3Psu+XSJc=; b=RrJ4Np05dj0BsTDcwK9/BN6Uv+zQ/sH3silLe/tqf6ldIfFmVii2D+e7qq7qUnUYXwnStL 3mLkkZhN2LWt68C3L+XmhbGq3fwM69bU/wW7r946AomEEcYHGmL2xJrkop5HUwRP+qo2aF uy8scTyvJShy3ecO6yik8Qm6vxRryf3oYhG/rjAcByv7Vv9eM6zPxhx4cLw64tjaQRM+KG j7z160waOi247qVYvz5WxsuhE3Q9wYbt5LWNGyLLATh9x4t0GuQ2SsLNl6gEs5tGcCSTU5 DH7hcpoXSWTOLmll+hDl2F+8HnQ3predCpyR6tb/aQX08kNIc0KemFMirV9KwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699367424; a=rsa-sha256; cv=none; b=hVcgkav9PPAj0s+dYXdRtv72G7IG/VI4cPzo8LvjrbTcAiNbGMQIvHvyCFo+aOlqRHYuR+ bY1ouy5NFrllOYUfti5A8kC1MuFkTJNA8bStU8XY6tcA7U4534SlAP0JCDCUPksCd9UU2f F+Qp6BGBwm5OhTZXwhlAP532Ehe/jcpiytATJbVH5Z7kclIgZglEJ3g7fxGhZAYBgu44+S r+M1x4lDNSJArd60h61rG+Ue8zBQ6B/VG5MnLzq1bqyZrRlKuD2moDGDDF+L022SnFRb0S GtkyTSJ6+khSwnjv4M8hGl0fJkxiwgMDA65zqbU5H9OsZE32awGT8nY0QnF6kA== 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 4SPrGm5MJbztSP; Tue, 7 Nov 2023 14:30:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7EUODd044542; Tue, 7 Nov 2023 14:30:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7EUOvi044539; Tue, 7 Nov 2023 14:30:24 GMT (envelope-from git) Date: Tue, 7 Nov 2023 14:30:24 GMT Message-Id: <202311071430.3A7EUOvi044539@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: 6a0891c6ebb7 - stable/12 - fflush: Add test for buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 6a0891c6ebb78bd59a3fc440675e31b6982de896 Auto-Submitted: auto-generated The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=6a0891c6ebb78bd59a3fc440675e31b6982de896 commit 6a0891c6ebb78bd59a3fc440675e31b6982de896 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:13:45 +0000 Commit: Ed Maste CommitDate: 2023-11-07 14:30:07 +0000 fflush: Add test for buffer handling in __sflush Sponsored by: Klara, Inc. (cherry picked from commit b8dbfb0a6c181a9aeab0b793deb0813d06052df9) (cherry picked from commit ba490dfc95e0941216420a2003757b3c4b5b2ec2) (cherry picked from commit 66d84f1362f63c23f6f451490e153e0703a7cda6) Approved by: so --- lib/libc/tests/stdio/Makefile | 1 + lib/libc/tests/stdio/flushlbuf_test.c | 155 ++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) diff --git a/lib/libc/tests/stdio/Makefile b/lib/libc/tests/stdio/Makefile index 248a05bc45e7..5280fff8bfb4 100644 --- a/lib/libc/tests/stdio/Makefile +++ b/lib/libc/tests/stdio/Makefile @@ -3,6 +3,7 @@ .include ATF_TESTS_C+= fdopen_test +ATF_TESTS_C+= flushlbuf_test ATF_TESTS_C+= fmemopen2_test ATF_TESTS_C+= fopen2_test ATF_TESTS_C+= freopen_test diff --git a/lib/libc/tests/stdio/flushlbuf_test.c b/lib/libc/tests/stdio/flushlbuf_test.c new file mode 100644 index 000000000000..11d9ea4ecc6c --- /dev/null +++ b/lib/libc/tests/stdio/flushlbuf_test.c @@ -0,0 +1,155 @@ +/*- + * Copyright (c) 2023 Klara, Inc. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +#include + +#define BUFSIZE 16 + +static const char seq[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +struct stream { + char buf[BUFSIZE]; + unsigned int len; + unsigned int pos; +}; + +static int writefn(void *cookie, const char *buf, int len) +{ + struct stream *s = cookie; + int written = 0; + + if (len <= 0) + return 0; + while (len > 0 && s->pos < s->len) { + s->buf[s->pos++] = *buf++; + written++; + len--; + } + if (written > 0) + return written; + errno = EAGAIN; + return -1; +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_partial); +ATF_TC_BODY(flushlbuf_partial, tc) +{ + static struct stream s; + static char buf[BUFSIZE + 1]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = BUFSIZE / 2; // write will fail after this amount + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will consume s.len characters before + * returning EAGAIN, causing fprintf() to fail without having + * written anything (which is why we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * We have consumed s.len characters from the buffer, so continue + * printing until it is full again and check that no overflow has + * occurred yet. + */ + while (i < BUFSIZE + s.len) + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(BUFSIZE + s.len, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); + + /* + * The straw that breaks the camel's back: libc fails to recognize + * that the buffer is full and continues to write beyond its end. + */ + fprintf(f, "%c", seq[i++]); + ATF_CHECK_EQ(0, buf[BUFSIZE]); +} + +ATF_TC_WITHOUT_HEAD(flushlbuf_full); +ATF_TC_BODY(flushlbuf_full, tc) +{ + static struct stream s; + static char buf[BUFSIZE]; + FILE *f; + unsigned int i = 0; + int ret = 0; + + /* + * Create the stream and its buffer, print just enough characters + * to the stream to fill the buffer without triggering a flush, + * then check the state. + */ + s.len = 0; // any attempt to write will fail + ATF_REQUIRE((f = fwopen(&s, writefn)) != NULL); + ATF_REQUIRE(setvbuf(f, buf, _IOLBF, BUFSIZE) == 0); + while (i < BUFSIZE) + if ((ret = fprintf(f, "%c", seq[i++])) < 0) + break; + ATF_CHECK_EQ(BUFSIZE, i); + ATF_CHECK_EQ(seq[i - 1], buf[BUFSIZE - 1]); + ATF_CHECK_EQ(1, ret); + ATF_CHECK_EQ(0, s.pos); + + /* + * At this point, the buffer is full but writefn() has not yet + * been called. The next fprintf() call will trigger a preemptive + * fflush(), and writefn() will immediately return EAGAIN, causing + * fprintf() to fail without having written anything (which is why + * we don't increment i here). + */ + ret = fprintf(f, "%c", seq[i]); + ATF_CHECK_ERRNO(EAGAIN, ret < 0); + ATF_CHECK_EQ(s.len, s.pos); + + /* + * Now make our stream writeable. + */ + s.len = sizeof(s.buf); + + /* + * Flush the stream again. The data we failed to write previously + * should still be in the buffer and will now be written to the + * stream. + */ + ATF_CHECK_EQ(0, fflush(f)); + ATF_CHECK_EQ(seq[0], s.buf[0]); +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, flushlbuf_partial); + ATF_TP_ADD_TC(tp, flushlbuf_full); + + return (atf_no_error()); +} From nobody Tue Nov 7 15:47:22 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszZ3rDWz50Wbn; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszZ3NJlz3JdZ; Tue, 7 Nov 2023 15:47:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Box5d9ntebhVfL1GLkymmb67EA4ISpCjOrUUdXxmIVA=; b=q0FvxyizEqKrUwfL85MCarDYeI/Mku3R3m/XaqmO7nON0KSLDNZ2wMv2Cq+CX/Qxkn3ADb Z5w7Qhr4v+OusgkW15+r5RSDDaWUbVo9d5sQLwC4tvSHAPqXhEGzj64cgzK2KGVL0RUsRP nGZCrJFVJk4TSTnC9ifvpbeBFHW7jPZ6t0LlFIleSvW54Pxx4EvphrPPNFpVxFRxH5MONn 8BBpuEuB1Ku4BzUNWBE91dk4H+DcJqg2usjA83wOimTcz1H3/l534oZommMvnFInAHm/JC RLw6EZoaNAP4CZZJvAIqfSfvKj4QUL3uypv2pYt9bS8yiPOaQKmjW6Tjey0RSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Box5d9ntebhVfL1GLkymmb67EA4ISpCjOrUUdXxmIVA=; b=NC1rnnYXppw7CS1daqpg24lUhBZ/MX1gHg32hMXmU/UE9jrjDNbLVQAKUsnPaNvDmpRu5I 8p2nAobGvW0ZZMTcrsJ6Ydao5pGs7z/toyNJUX7Mkb7+AsOKRDdN4P+WE4aFnk1Hw9KPwb HKXr0ly62lYuqVuB9+l/UtixhqA2XktNElT4Ws8dlRECg7PEC9p5Cxwt98Xlqx1VqIOr5d fUxspoUacLaxj/vDYLBNiE8UvRYjogOQ1h8rVwuErv69JlQGaNNg5OVdGY5Z7S7TDo3cna XiC73q74BHophxyBJ3oxHWGjHXnGnULS6CzWllqLy7FE1TJdDT1d0nN8neKZNA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372042; a=rsa-sha256; cv=none; b=WneRCkpGzsfgYGzQRjj1qkFpGCBF79Tmjj952tVa0TJmaGbB6kfXxe4bQYd0MnohzMdkWr JcBAbkPiMJnlcXrz7raURZt+qUjW/upEw9BSm84u+12dseFY9vL127LbrVBhe0SLu+aIly gqYO17hA73NJuZkM1K36cLVjxzkNHKUa+gBjL2ypEjnvrUJ6rGvvwjgG/wBvnj0umY0Wdu hWc5Q2t20eBAnxQ6Kb4hGYx/KugskdKPXwaXwXVJbEeQkb/hz3Imvok45BOhxqI1I3ETq7 U2RzagWy8NYTbAilyP4wq+0fZZENp/lx5M05ZHp/5wUriVpj8CJN0EgNfqnzLA== 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 4SPszZ2PnczwC1; Tue, 7 Nov 2023 15:47:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlMil069635; Tue, 7 Nov 2023 15:47:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlMHF069632; Tue, 7 Nov 2023 15:47:22 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:22 GMT Message-Id: <202311071547.3A7FlMHF069632@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: 7afd7a768792 - stable/14 - pf: fix missing SCTP multihomed 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 7afd7a76879235c25f1013ba884318452d976bef Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=7afd7a76879235c25f1013ba884318452d976bef commit 7afd7a76879235c25f1013ba884318452d976bef Author: Kristof Provost AuthorDate: 2023-10-17 16:10:39 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:46:52 +0000 pf: fix missing SCTP multihomed states The existing code to create extra states when SCTP endpoints supplied extra addresses missed a case. As a result we failed to generate all of the required states. Briefly, if host A has address 1 and 2 and host B has addres 3 and 4 we generated 1 - 3 and 2 - 3, as well as 1 - 4, but not 2 - 4. Store the list of endpoints supplied by each host and use those to generate all of the connection permutations. MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42361 (cherry picked from commit d6d38b02ee57920cc02a306a6d8d2aec9c4b759c) --- sys/netpfil/pf/pf.c | 253 ++++++++++++++++++++++++++++++++++++++++++++--- sys/netpfil/pf/pf_norm.c | 2 + 2 files changed, 240 insertions(+), 15 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 39d240f49dbd..96e8a165692f 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -179,6 +179,34 @@ VNET_DEFINE(size_t, pf_allrulecount); VNET_DEFINE(struct pf_krule *, pf_rulemarker); #endif +struct pf_sctp_endpoint; +RB_HEAD(pf_sctp_endpoints, pf_sctp_endpoint); +struct pf_sctp_source { + sa_family_t af; + struct pf_addr addr; + TAILQ_ENTRY(pf_sctp_source) entry; +}; +TAILQ_HEAD(pf_sctp_sources, pf_sctp_source); +struct pf_sctp_endpoint +{ + uint32_t v_tag; + struct pf_sctp_sources sources; + RB_ENTRY(pf_sctp_endpoint) entry; +}; +static int +pf_sctp_endpoint_compare(struct pf_sctp_endpoint *a, struct pf_sctp_endpoint *b) +{ + return (a->v_tag - b->v_tag); +} +RB_PROTOTYPE(pf_sctp_endpoints, pf_sctp_endpoint, entry, pf_sctp_endpoint_compare); +RB_GENERATE(pf_sctp_endpoints, pf_sctp_endpoint, entry, pf_sctp_endpoint_compare); +VNET_DEFINE_STATIC(struct pf_sctp_endpoints, pf_sctp_endpoints); +#define V_pf_sctp_endpoints VNET(pf_sctp_endpoints) +static struct mtx_padalign pf_sctp_endpoints_mtx; +MTX_SYSINIT(pf_sctp_endpoints_mtx, &pf_sctp_endpoints_mtx, "SCTP endpoints", MTX_DEF); +#define PF_SCTP_ENDPOINTS_LOCK() mtx_lock(&pf_sctp_endpoints_mtx) +#define PF_SCTP_ENDPOINTS_UNLOCK() mtx_unlock(&pf_sctp_endpoints_mtx) + /* * Queue for pf_intr() sends. */ @@ -309,6 +337,7 @@ static int pf_test_state_udp(struct pf_kstate **, static int pf_test_state_icmp(struct pf_kstate **, struct pfi_kkif *, struct mbuf *, int, void *, struct pf_pdesc *, u_short *); +static void pf_sctp_multihome_detach_addr(const struct pf_kstate *); static void pf_sctp_multihome_delayed(struct pf_pdesc *, int, struct pfi_kkif *, struct pf_kstate *, int); static int pf_test_state_sctp(struct pf_kstate **, @@ -1140,6 +1169,7 @@ pf_cleanup(void) m_freem(pfse->pfse_m); free(pfse, M_PFTEMP); } + MPASS(RB_EMPTY(&V_pf_sctp_endpoints)); uma_zdestroy(V_pf_sources_z); uma_zdestroy(V_pf_state_z); @@ -1359,6 +1389,8 @@ pf_detach_state(struct pf_kstate *s) struct pf_state_key *sks = s->key[PF_SK_STACK]; struct pf_keyhash *kh; + pf_sctp_multihome_detach_addr(s); + if (sks != NULL) { kh = &V_pf_keyhash[pf_hashkey(sks)]; PF_HASHROW_LOCK(kh); @@ -5848,7 +5880,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, struct mbuf *m, int off, void *h, struct pf_pdesc *pd, u_short *reason) { struct pf_state_key_cmp key; - struct pf_state_peer *src; //, *dst; + struct pf_state_peer *src, *dst; struct sctphdr *sh = &pd->hdr.sctp; u_int8_t psrc; //, pdst; @@ -5871,9 +5903,11 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->dir == (*state)->direction) { src = &(*state)->src; + dst = &(*state)->dst; psrc = PF_PEER_SRC; } else { src = &(*state)->dst; + dst = &(*state)->src; psrc = PF_PEER_DST; } @@ -5884,6 +5918,12 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, (*state)->timeout = PFTM_TCP_OPENING; } } + if (pd->sctp_flags & PFDESC_SCTP_INIT_ACK) { + MPASS(dst->scrub != NULL); + if (dst->scrub->pfss_v_tag == 0) + dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; + } + if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); @@ -5930,37 +5970,222 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, return (PF_PASS); } +static void +pf_sctp_multihome_detach_addr(const struct pf_kstate *s) +{ + struct pf_sctp_endpoint key; + struct pf_sctp_endpoint *ep; + struct pf_state_key *sks = s->key[PF_SK_STACK]; + struct pf_sctp_source *i, *tmp; + + if (sks == NULL || sks->proto != IPPROTO_SCTP || s->dst.scrub == NULL) + return; + + PF_SCTP_ENDPOINTS_LOCK(); + + key.v_tag = s->dst.scrub->pfss_v_tag; + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep != NULL) { + /* XXX Actually remove! */ + TAILQ_FOREACH_SAFE(i, &ep->sources, entry, tmp) { + if (pf_addr_cmp(&i->addr, + &s->key[PF_SK_WIRE]->addr[s->direction == PF_OUT], + s->key[PF_SK_WIRE]->af) == 0) { + TAILQ_REMOVE(&ep->sources, i, entry); + free(i, M_PFTEMP); + break; + } + } + + if (TAILQ_EMPTY(&ep->sources)) { + RB_REMOVE(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + free(ep, M_PFTEMP); + } + } + + /* Other direction. */ + key.v_tag = s->src.scrub->pfss_v_tag; + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep != NULL) { + TAILQ_FOREACH_SAFE(i, &ep->sources, entry, tmp) { + if (pf_addr_cmp(&i->addr, + &s->key[PF_SK_WIRE]->addr[s->direction == PF_IN], + s->key[PF_SK_WIRE]->af) == 0) { + TAILQ_REMOVE(&ep->sources, i, entry); + free(i, M_PFTEMP); + break; + } + } + + if (TAILQ_EMPTY(&ep->sources)) { + RB_REMOVE(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + free(ep, M_PFTEMP); + } + } + + PF_SCTP_ENDPOINTS_UNLOCK(); +} + +static void +pf_sctp_multihome_add_addr(struct pf_pdesc *pd, struct pf_addr *a, uint32_t v_tag) +{ + struct pf_sctp_endpoint key = { + .v_tag = v_tag, + }; + struct pf_sctp_source *i; + struct pf_sctp_endpoint *ep; + + PF_SCTP_ENDPOINTS_LOCK(); + + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep == NULL) { + ep = malloc(sizeof(struct pf_sctp_endpoint), + M_PFTEMP, M_NOWAIT); + if (ep == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + + ep->v_tag = v_tag; + TAILQ_INIT(&ep->sources); + RB_INSERT(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + } + + /* Avoid inserting duplicates. */ + TAILQ_FOREACH(i, &ep->sources, entry) { + if (pf_addr_cmp(&i->addr, a, pd->af) == 0) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + } + + i = malloc(sizeof(*i), M_PFTEMP, M_NOWAIT); + if (i == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + + i->af = pd->af; + memcpy(&i->addr, a, sizeof(*a)); + TAILQ_INSERT_TAIL(&ep->sources, i, entry); + + PF_SCTP_ENDPOINTS_UNLOCK(); +} + static void pf_sctp_multihome_delayed(struct pf_pdesc *pd, int off, struct pfi_kkif *kif, struct pf_kstate *s, int action) { struct pf_sctp_multihome_job *j, *tmp; + struct pf_sctp_source *i; int ret __unused;; struct pf_kstate *sm = NULL; struct pf_krule *ra = NULL; struct pf_krule *r = &V_pf_default_rule; struct pf_kruleset *rs = NULL; + bool do_extra = true; PF_RULES_RLOCK_TRACKER; +again: TAILQ_FOREACH_SAFE(j, &pd->sctp_multihome_jobs, next, tmp) { if (s == NULL || action != PF_PASS) goto free; + /* Confirm we don't recurse here. */ + MPASS(! (pd->sctp_flags & PFDESC_SCTP_ADD_IP)); + switch (j->op) { case SCTP_ADD_IP_ADDRESS: { + uint32_t v_tag = pd->sctp_initiate_tag; + + if (v_tag == 0) { + if (s->direction == pd->dir) + v_tag = s->src.scrub->pfss_v_tag; + else + v_tag = s->dst.scrub->pfss_v_tag; + } + + /* + * Avoid duplicating states. We'll already have + * created a state based on the source address of + * the packet, but SCTP endpoints may also list this + * address again in the INIT(_ACK) parameters. + */ + if (pf_addr_cmp(&j->src, pd->src, pd->af) == 0) { + break; + } + j->pd.sctp_flags |= PFDESC_SCTP_ADD_IP; PF_RULES_RLOCK(); + sm = NULL; + /* XXX: May generated unwanted abort if we try to insert a duplicate state. */ ret = pf_test_rule(&r, &sm, kif, j->m, off, &j->pd, &ra, &rs, NULL); PF_RULES_RUNLOCK(); SDT_PROBE4(pf, sctp, multihome, test, kif, r, j->m, ret); - if (sm) { + if (ret != PF_DROP && sm != NULL) { /* Inherit v_tag values. */ - sm->src.scrub->pfss_v_tag = s->src.scrub->pfss_flags; - sm->dst.scrub->pfss_v_tag = s->dst.scrub->pfss_flags; + if (sm->direction == s->direction) { + sm->src.scrub->pfss_v_tag = s->src.scrub->pfss_v_tag; + sm->dst.scrub->pfss_v_tag = s->dst.scrub->pfss_v_tag; + } else { + sm->src.scrub->pfss_v_tag = s->dst.scrub->pfss_v_tag; + sm->dst.scrub->pfss_v_tag = s->src.scrub->pfss_v_tag; + } PF_STATE_UNLOCK(sm); + } else { + /* If we try duplicate inserts? */ + break; + } + + /* Only add the addres if we've actually allowed the state. */ + pf_sctp_multihome_add_addr(pd, &j->src, v_tag); + + if (! do_extra) { + break; } + /* + * We need to do this for each of our source addresses. + * Find those based on the verification tag. + */ + struct pf_sctp_endpoint key = { + .v_tag = pd->hdr.sctp.v_tag, + }; + struct pf_sctp_endpoint *ep; + + PF_SCTP_ENDPOINTS_LOCK(); + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + break; + } + MPASS(ep != NULL); + + TAILQ_FOREACH(i, &ep->sources, entry) { + struct pf_sctp_multihome_job *nj; + + /* SCTP can intermingle IPv4 and IPv6. */ + if (i->af != pd->af) + continue; + + nj = malloc(sizeof(*nj), M_PFTEMP, M_NOWAIT | M_ZERO); + if (! nj) { + continue; + } + memcpy(&nj->pd, &j->pd, sizeof(j->pd)); + memcpy(&nj->src, &j->src, sizeof(nj->src)); + nj->pd.src = &nj->src; + // New destination address! + memcpy(&nj->dst, &i->addr, sizeof(nj->dst)); + nj->pd.dst = &nj->dst; + nj->m = j->m; + nj->op = j->op; + + TAILQ_INSERT_TAIL(&pd->sctp_multihome_jobs, nj, next); + } + PF_SCTP_ENDPOINTS_UNLOCK(); + break; } case SCTP_DEL_IP_ADDRESS: { @@ -5998,11 +6223,18 @@ pf_sctp_multihome_delayed(struct pf_pdesc *pd, int off, struct pfi_kkif *kif, default: panic("Unknown op %#x", j->op); } - } + } -free: + free: + TAILQ_REMOVE(&pd->sctp_multihome_jobs, j, next); free(j, M_PFTEMP); } + + /* We may have inserted extra work while processing the list. */ + if (! TAILQ_EMPTY(&pd->sctp_multihome_jobs)) { + do_extra = false; + goto again; + } } static int @@ -6035,15 +6267,6 @@ pf_multihome_scan(struct mbuf *m, int start, int len, struct pf_pdesc *pd, NULL, NULL, pd->af)) return (PF_DROP); - /* - * Avoid duplicating states. We'll already have - * created a state based on the source address of - * the packet, but SCTP endpoints may also list this - * address again in the INIT(_ACK) parameters. - */ - if (t.s_addr == pd->src->v4.s_addr) - break; - if (in_nullhost(t)) t.s_addr = pd->src->v4.s_addr; diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index d63cf0ebe54e..5f2b8e9d36ff 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -1585,6 +1585,8 @@ pf_normalize_sctp_init(struct mbuf *m, int off, struct pf_pdesc *pd, return (1); } + dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; + return (0); } From nobody Tue Nov 7 15:47:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszb4yTlz50Wmv; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszb44cdz3Jsw; Tue, 7 Nov 2023 15:47:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nji8/Y3qjP5GRKZbLQBPoT/FdyhG5SadKxAF6vgZmkw=; b=JI6QPyOOgPKcQKrDD2BugwhlM4Vmp+oZ57IMCJyiMAtmvsnosuOSy6yqXXsYxyeyVRh/dt yghVw+LR2MyW33yPyWw2z509EnJl2jCjizuRylS3P3F5ynS61BPfcN4KxO6uW7ARWzY/vF +4ERmG10BAqWa6IF/+rNq98I8YebKnyu3j+EmlsKUOt7cXDgovVTDqRu1ln+SrKxC7M1tu pE2ST0jBSKaHzLLIhhcnKtGsS81P5IS3JucZp+vD+GWENJD+JtnDWvLRFJqmD/qJZV9fyS oUj2leY3Fm9Eaa4sZz3NscBqS5JrwznjH9MTPArgyfLSfk/8rIHAPSJ+rKdcAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nji8/Y3qjP5GRKZbLQBPoT/FdyhG5SadKxAF6vgZmkw=; b=hOiUBu+HpvPAa1SCRkrtR4gm0h+xe5RfPmhLxuJWlMxInWL4+q6kmj6iO/dnBL2UrNHLww JHj9EIA4Qho1pAOKIJXwxgPKDdlyobqJU+Z5aNH1POjCBLRL47nQN+uZsUVXf1HNyKPBNz efy91CdyBCfsc+RJiSvjS1ZeGLo8OT/qkHV8Yrj8lZknU7kRYXVspYJtdCXiljS9yUYo15 toYtxIZKn+Nq5pPROMLVEqgfn/wl/YGmVcMWgpOydKBXKxw7A4eqygdoN2AKmBlA3TFtoC 0JtqcbXkv9K3o2ovX4PYV1Jxr+HojjCpDlYvk4ZVjB2854cYCCXQ7J2fRD8tWg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372043; a=rsa-sha256; cv=none; b=YyJV2rjLHuxBIiVgJU5qHo+Sacsxc8hT+UURf3OR4B6Ag0L8G8n8/qFf4lfwbH3T8Rh+Gh 36Z9WZa5j5ZdolT00ByqMsQXiZKPocQsQ6GPlkfIbuVbWBXV/G6TAkfHNBV5M9e8ZZVeK5 iQWALSnCEENXWiTQD1ZBnCYplYsWUxf+6mSpbPn8+wMJWVoirzNZOg8WYtM9WehRY0rJqt C7lOPqUOfdjcVjj7CawysYg5olpW750VfiQc3Fshb4cz+4M62ks7CQcasxiWPTmlQMz9LQ 8slTs3rrVTjv+il1lYSsAqWksUIiuzpe2pUWkI7EDweTu0vtHP9M+UEv0k+dqg== 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 4SPszb35gLzwgf; Tue, 7 Nov 2023 15:47:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlNqI069736; Tue, 7 Nov 2023 15:47:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlNZ7069733; Tue, 7 Nov 2023 15:47:23 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:23 GMT Message-Id: <202311071547.3A7FlNZ7069733@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: d322e5d76aa3 - stable/14 - pf tests: ensure that we generate all permutations for SCTP multihome List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: d322e5d76aa30934407bb9fe3b9e6fe5a1279f6a Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=d322e5d76aa30934407bb9fe3b9e6fe5a1279f6a commit d322e5d76aa30934407bb9fe3b9e6fe5a1279f6a Author: Kristof Provost AuthorDate: 2023-10-10 09:56:15 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:46:52 +0000 pf tests: ensure that we generate all permutations for SCTP multihome The initial multihome implementation was a little simplistic, and failed to create all of the required states. Given a client with IP 1 and 2 and a server with IP 3 and 4 we end up creating states for 1 - 3 and 2 - 3, as well as 3 - 1 and 4 - 1, but not for 2 - 4. Check for this. MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42362 (cherry picked from commit 483d5c4075e06e52d5daa23aef2b4f4a2eb64443) --- tests/sys/netpfil/pf/sctp.py | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/sys/netpfil/pf/sctp.py b/tests/sys/netpfil/pf/sctp.py index 5e6dca5dd64b..5db52dd993f2 100644 --- a/tests/sys/netpfil/pf/sctp.py +++ b/tests/sys/netpfil/pf/sctp.py @@ -360,6 +360,37 @@ class TestSCTP(VnetTestTemplate): states = ToolsHelper.get_output("/sbin/pfctl -ss") assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234.*SHUTDOWN", states) + + @pytest.mark.require_user("root") + def test_permutation(self): + # Test that we generate all permutations of src/dst addresses. + # Assign two addresses to each end, and check for the expected states + srv_vnet = self.vnet_map["vnet2"] + + ifname = self.vnet_map["vnet1"].iface_alias_map["if1"].name + ToolsHelper.print_output("/sbin/ifconfig %s inet alias 192.0.2.4/24" % ifname) + + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "block proto sctp", + "pass inet proto sctp to 192.0.2.0/24"]) + + # Sanity check, we can communicate with the primary address. + client = SCTPClient("192.0.2.3", 1234) + client.send(b"hello", 0) + rcvd = self.wait_object(srv_vnet.pipe) + print(rcvd) + assert rcvd['ppid'] == 0 + assert rcvd['data'] == "hello" + + # Check that we have a state for 192.0.2.3 and 192.0.2.2 to 192.0.2.1, but also to 192.0.2.4 + states = ToolsHelper.get_output("/sbin/pfctl -ss") + print(states) + assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234", states) + assert re.search(r"all sctp 192.0.2.1:.*192.0.2.2:1234", states) + assert re.search(r"all sctp 192.0.2.4:.*192.0.2.3:1234", states) + assert re.search(r"all sctp 192.0.2.4:.*192.0.2.2:1234", states) + class TestSCTPv6(VnetTestTemplate): REQUIRED_MODULES = ["sctp", "pf"] TOPOLOGY = { @@ -476,3 +507,33 @@ class TestSCTPv6(VnetTestTemplate): # Verify that the state is closing states = ToolsHelper.get_output("/sbin/pfctl -ss") assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::3\[1234\].*SHUTDOWN", states) + + @pytest.mark.require_user("root") + def test_permutation(self): + # Test that we generate all permutations of src/dst addresses. + # Assign two addresses to each end, and check for the expected states + srv_vnet = self.vnet_map["vnet2"] + + ifname = self.vnet_map["vnet1"].iface_alias_map["if1"].name + ToolsHelper.print_output("/sbin/ifconfig %s inet6 alias 2001:db8::4/64" % ifname) + + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "block proto sctp", + "pass inet6 proto sctp to 2001:db8::0/64"]) + + # Sanity check, we can communicate with the primary address. + client = SCTPClient("2001:db8::3", 1234) + client.send(b"hello", 0) + rcvd = self.wait_object(srv_vnet.pipe) + print(rcvd) + assert rcvd['ppid'] == 0 + assert rcvd['data'] == "hello" + + # Check that we have a state for 2001:db8::3 and 2001:db8::2 to 2001:db8::1, but also to 2001:db8::4 + states = ToolsHelper.get_output("/sbin/pfctl -ss") + print(states) + assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::2\[1234\]", states) + assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::3\[1234\]", states) + assert re.search(r"all sctp 2001:db8::4\[.*2001:db8::2\[1234\]", states) + assert re.search(r"all sctp 2001:db8::4\[.*2001:db8::3\[1234\]", states) From nobody Tue Nov 7 15:47:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszb61kbz50WqT; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszb4sFnz3JyD; Tue, 7 Nov 2023 15:47:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cwE/IzYt3QOkOsZsiZpFvJ4L/daTCGWBBCcdR7d1nBY=; b=B4ccrfS2eQjxxem6DZugicCJvgVBFqz5BOs4canb9zpD12kzqw+1SlFFVZKAD9zoA3nGjV ym/SNUO+C08IPmxBq6UifUpi8n0+nVI/wcT6bfy8fSaPjC6X01pIz3ugQyhFxwcrJjxzmc 6Ew4vvDS1U3kmOHPlDSrf8CVcq86vbwns4OwbMSfplQdRvan/xXLOcrNp0kqQkW5wppGgC EGYLrT1YgVgmTNQI9Rz5JezR4EhWaLBHDRzqTtyutAnASUWKKvMZMQzeisFSPF/WwH9L6H qkWbu+S9Pgpr0a29RmvW+fU8nXtKlBcR/ud0GauRu/3ggCCXqy1AxUjaqDVXnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cwE/IzYt3QOkOsZsiZpFvJ4L/daTCGWBBCcdR7d1nBY=; b=ZC3ejTX37nVRyKsOxM4tmNJbVnvdAqEgfjCzEr5Bc/i9DZ82OCBSi56qkizs4jDiY/u682 HcBQ+nVooQbyo4Ar3JmYyF5sRz9B0gqtquo3XIM78NiNcYcopQsJUdLy61EWWtTADoxmKv yrPc1CLhWszpllXWWknN0NlPy6URHHbYZ+CntBBmyyIdOPD/T35nnhiCT/CwXJTWfoFolO YxwT5yDwsQ7gx9mx50IitmNfJATMLe0S21uBfHHlT7RGUKK3efdayrgYQdCLg75zspRGdb PMgyquEqEsBqPnsNCRuH50mdEnBSIVnpbyGxK9RVLNaHiLJZp7OgxnZ6KAkmOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372043; a=rsa-sha256; cv=none; b=p59se42Sw/X799NZFJHJlJtDAocEVv4UhDin3xNsTg3ICxFFjytyD/3Rbm0bEPJtvs+fmL bN3mJl8HU6a1FG+zmsn0Okek2FqGT7bRw9i28QG9LsLnkCQyz5WYyMyNG29DUoQhDs3CLI ofp8TMELByj29AkFxvmKODMNMy7Wn4A6/3B2h8xftSmmscDXcswxIbpH5dnJQJVcpFh/Bl 0pzliUDKM3OFOAJ6yVCNxBHLNUPaeS57ndSSzld2AuEafYold5ubrzmC5zyGcAA7/H9VET 7sNJxb/i9cY3b1uqU7GSZ/VJ8gaiB/S2118eOXgEGowB5PF5F0KKSTzXEsUPjQ== 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 4SPszb3wQ8zwWC; Tue, 7 Nov 2023 15:47:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlNTK069810; Tue, 7 Nov 2023 15:47:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlNwU069807; Tue, 7 Nov 2023 15:47:23 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:23 GMT Message-Id: <202311071547.3A7FlNwU069807@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: f7bc2901f97f - stable/13 - pf: fix missing SCTP multihomed 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: f7bc2901f97f480950d3763962ad9ed743a838fc Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f7bc2901f97f480950d3763962ad9ed743a838fc commit f7bc2901f97f480950d3763962ad9ed743a838fc Author: Kristof Provost AuthorDate: 2023-10-17 16:10:39 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:25:02 +0000 pf: fix missing SCTP multihomed states The existing code to create extra states when SCTP endpoints supplied extra addresses missed a case. As a result we failed to generate all of the required states. Briefly, if host A has address 1 and 2 and host B has addres 3 and 4 we generated 1 - 3 and 2 - 3, as well as 1 - 4, but not 2 - 4. Store the list of endpoints supplied by each host and use those to generate all of the connection permutations. MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42361 (cherry picked from commit d6d38b02ee57920cc02a306a6d8d2aec9c4b759c) --- sys/netpfil/pf/pf.c | 253 ++++++++++++++++++++++++++++++++++++++++++++--- sys/netpfil/pf/pf_norm.c | 2 + 2 files changed, 240 insertions(+), 15 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 869c68ad308f..278aa07fab75 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -162,6 +162,34 @@ VNET_DEFINE(size_t, pf_allrulecount); VNET_DEFINE(struct pf_krule *, pf_rulemarker); #endif +struct pf_sctp_endpoint; +RB_HEAD(pf_sctp_endpoints, pf_sctp_endpoint); +struct pf_sctp_source { + sa_family_t af; + struct pf_addr addr; + TAILQ_ENTRY(pf_sctp_source) entry; +}; +TAILQ_HEAD(pf_sctp_sources, pf_sctp_source); +struct pf_sctp_endpoint +{ + uint32_t v_tag; + struct pf_sctp_sources sources; + RB_ENTRY(pf_sctp_endpoint) entry; +}; +static int +pf_sctp_endpoint_compare(struct pf_sctp_endpoint *a, struct pf_sctp_endpoint *b) +{ + return (a->v_tag - b->v_tag); +} +RB_PROTOTYPE(pf_sctp_endpoints, pf_sctp_endpoint, entry, pf_sctp_endpoint_compare); +RB_GENERATE(pf_sctp_endpoints, pf_sctp_endpoint, entry, pf_sctp_endpoint_compare); +VNET_DEFINE_STATIC(struct pf_sctp_endpoints, pf_sctp_endpoints); +#define V_pf_sctp_endpoints VNET(pf_sctp_endpoints) +static struct mtx_padalign pf_sctp_endpoints_mtx; +MTX_SYSINIT(pf_sctp_endpoints_mtx, &pf_sctp_endpoints_mtx, "SCTP endpoints", MTX_DEF); +#define PF_SCTP_ENDPOINTS_LOCK() mtx_lock(&pf_sctp_endpoints_mtx) +#define PF_SCTP_ENDPOINTS_UNLOCK() mtx_unlock(&pf_sctp_endpoints_mtx) + /* * Queue for pf_intr() sends. */ @@ -290,6 +318,7 @@ static int pf_test_state_udp(struct pf_kstate **, int, static int pf_test_state_icmp(struct pf_kstate **, int, struct pfi_kkif *, struct mbuf *, int, void *, struct pf_pdesc *, u_short *); +static void pf_sctp_multihome_detach_addr(const struct pf_kstate *); static void pf_sctp_multihome_delayed(struct pf_pdesc *, int, struct pfi_kkif *, struct pf_kstate *, int); static int pf_test_state_sctp(struct pf_kstate **, @@ -1100,6 +1129,7 @@ pf_cleanup(void) m_freem(pfse->pfse_m); free(pfse, M_PFTEMP); } + MPASS(RB_EMPTY(&V_pf_sctp_endpoints)); uma_zdestroy(V_pf_sources_z); uma_zdestroy(V_pf_state_z); @@ -1319,6 +1349,8 @@ pf_detach_state(struct pf_kstate *s) struct pf_state_key *sks = s->key[PF_SK_STACK]; struct pf_keyhash *kh; + pf_sctp_multihome_detach_addr(s); + if (sks != NULL) { kh = &V_pf_keyhash[pf_hashkey(sks)]; PF_HASHROW_LOCK(kh); @@ -5259,7 +5291,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, struct mbuf *m, int off, void *h, struct pf_pdesc *pd, u_short *reason) { struct pf_state_key_cmp key; - struct pf_state_peer *src; //, *dst; + struct pf_state_peer *src, *dst; struct sctphdr *sh = &pd->hdr.sctp; u_int8_t psrc; //, pdst; @@ -5282,9 +5314,11 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->dir == (*state)->direction) { src = &(*state)->src; + dst = &(*state)->dst; psrc = PF_PEER_SRC; } else { src = &(*state)->dst; + dst = &(*state)->src; psrc = PF_PEER_DST; } @@ -5295,6 +5329,12 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, (*state)->timeout = PFTM_TCP_OPENING; } } + if (pd->sctp_flags & PFDESC_SCTP_INIT_ACK) { + MPASS(dst->scrub != NULL); + if (dst->scrub->pfss_v_tag == 0) + dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; + } + if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); @@ -5341,37 +5381,222 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, return (PF_PASS); } +static void +pf_sctp_multihome_detach_addr(const struct pf_kstate *s) +{ + struct pf_sctp_endpoint key; + struct pf_sctp_endpoint *ep; + struct pf_state_key *sks = s->key[PF_SK_STACK]; + struct pf_sctp_source *i, *tmp; + + if (sks == NULL || sks->proto != IPPROTO_SCTP || s->dst.scrub == NULL) + return; + + PF_SCTP_ENDPOINTS_LOCK(); + + key.v_tag = s->dst.scrub->pfss_v_tag; + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep != NULL) { + /* XXX Actually remove! */ + TAILQ_FOREACH_SAFE(i, &ep->sources, entry, tmp) { + if (pf_addr_cmp(&i->addr, + &s->key[PF_SK_WIRE]->addr[s->direction == PF_OUT], + s->key[PF_SK_WIRE]->af) == 0) { + TAILQ_REMOVE(&ep->sources, i, entry); + free(i, M_PFTEMP); + break; + } + } + + if (TAILQ_EMPTY(&ep->sources)) { + RB_REMOVE(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + free(ep, M_PFTEMP); + } + } + + /* Other direction. */ + key.v_tag = s->src.scrub->pfss_v_tag; + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep != NULL) { + TAILQ_FOREACH_SAFE(i, &ep->sources, entry, tmp) { + if (pf_addr_cmp(&i->addr, + &s->key[PF_SK_WIRE]->addr[s->direction == PF_IN], + s->key[PF_SK_WIRE]->af) == 0) { + TAILQ_REMOVE(&ep->sources, i, entry); + free(i, M_PFTEMP); + break; + } + } + + if (TAILQ_EMPTY(&ep->sources)) { + RB_REMOVE(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + free(ep, M_PFTEMP); + } + } + + PF_SCTP_ENDPOINTS_UNLOCK(); +} + +static void +pf_sctp_multihome_add_addr(struct pf_pdesc *pd, struct pf_addr *a, uint32_t v_tag) +{ + struct pf_sctp_endpoint key = { + .v_tag = v_tag, + }; + struct pf_sctp_source *i; + struct pf_sctp_endpoint *ep; + + PF_SCTP_ENDPOINTS_LOCK(); + + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep == NULL) { + ep = malloc(sizeof(struct pf_sctp_endpoint), + M_PFTEMP, M_NOWAIT); + if (ep == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + + ep->v_tag = v_tag; + TAILQ_INIT(&ep->sources); + RB_INSERT(pf_sctp_endpoints, &V_pf_sctp_endpoints, ep); + } + + /* Avoid inserting duplicates. */ + TAILQ_FOREACH(i, &ep->sources, entry) { + if (pf_addr_cmp(&i->addr, a, pd->af) == 0) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + } + + i = malloc(sizeof(*i), M_PFTEMP, M_NOWAIT); + if (i == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + return; + } + + i->af = pd->af; + memcpy(&i->addr, a, sizeof(*a)); + TAILQ_INSERT_TAIL(&ep->sources, i, entry); + + PF_SCTP_ENDPOINTS_UNLOCK(); +} + static void pf_sctp_multihome_delayed(struct pf_pdesc *pd, int off, struct pfi_kkif *kif, struct pf_kstate *s, int action) { struct pf_sctp_multihome_job *j, *tmp; + struct pf_sctp_source *i; int ret __unused;; struct pf_kstate *sm = NULL; struct pf_krule *ra = NULL; struct pf_krule *r = &V_pf_default_rule; struct pf_kruleset *rs = NULL; + bool do_extra = true; PF_RULES_RLOCK_TRACKER; +again: TAILQ_FOREACH_SAFE(j, &pd->sctp_multihome_jobs, next, tmp) { if (s == NULL || action != PF_PASS) goto free; + /* Confirm we don't recurse here. */ + MPASS(! (pd->sctp_flags & PFDESC_SCTP_ADD_IP)); + switch (j->op) { case SCTP_ADD_IP_ADDRESS: { + uint32_t v_tag = pd->sctp_initiate_tag; + + if (v_tag == 0) { + if (s->direction == pd->dir) + v_tag = s->src.scrub->pfss_v_tag; + else + v_tag = s->dst.scrub->pfss_v_tag; + } + + /* + * Avoid duplicating states. We'll already have + * created a state based on the source address of + * the packet, but SCTP endpoints may also list this + * address again in the INIT(_ACK) parameters. + */ + if (pf_addr_cmp(&j->src, pd->src, pd->af) == 0) { + break; + } + j->pd.sctp_flags |= PFDESC_SCTP_ADD_IP; PF_RULES_RLOCK(); + sm = NULL; + /* XXX: May generated unwanted abort if we try to insert a duplicate state. */ ret = pf_test_rule(&r, &sm, pd->dir, kif, j->m, off, &j->pd, &ra, &rs, NULL); PF_RULES_RUNLOCK(); SDT_PROBE4(pf, sctp, multihome, test, kif, r, j->m, ret); - if (sm) { + if (ret != PF_DROP && sm != NULL) { /* Inherit v_tag values. */ - sm->src.scrub->pfss_v_tag = s->src.scrub->pfss_flags; - sm->dst.scrub->pfss_v_tag = s->dst.scrub->pfss_flags; + if (sm->direction == s->direction) { + sm->src.scrub->pfss_v_tag = s->src.scrub->pfss_v_tag; + sm->dst.scrub->pfss_v_tag = s->dst.scrub->pfss_v_tag; + } else { + sm->src.scrub->pfss_v_tag = s->dst.scrub->pfss_v_tag; + sm->dst.scrub->pfss_v_tag = s->src.scrub->pfss_v_tag; + } PF_STATE_UNLOCK(sm); + } else { + /* If we try duplicate inserts? */ + break; + } + + /* Only add the addres if we've actually allowed the state. */ + pf_sctp_multihome_add_addr(pd, &j->src, v_tag); + + if (! do_extra) { + break; } + /* + * We need to do this for each of our source addresses. + * Find those based on the verification tag. + */ + struct pf_sctp_endpoint key = { + .v_tag = pd->hdr.sctp.v_tag, + }; + struct pf_sctp_endpoint *ep; + + PF_SCTP_ENDPOINTS_LOCK(); + ep = RB_FIND(pf_sctp_endpoints, &V_pf_sctp_endpoints, &key); + if (ep == NULL) { + PF_SCTP_ENDPOINTS_UNLOCK(); + break; + } + MPASS(ep != NULL); + + TAILQ_FOREACH(i, &ep->sources, entry) { + struct pf_sctp_multihome_job *nj; + + /* SCTP can intermingle IPv4 and IPv6. */ + if (i->af != pd->af) + continue; + + nj = malloc(sizeof(*nj), M_PFTEMP, M_NOWAIT | M_ZERO); + if (! nj) { + continue; + } + memcpy(&nj->pd, &j->pd, sizeof(j->pd)); + memcpy(&nj->src, &j->src, sizeof(nj->src)); + nj->pd.src = &nj->src; + // New destination address! + memcpy(&nj->dst, &i->addr, sizeof(nj->dst)); + nj->pd.dst = &nj->dst; + nj->m = j->m; + nj->op = j->op; + + TAILQ_INSERT_TAIL(&pd->sctp_multihome_jobs, nj, next); + } + PF_SCTP_ENDPOINTS_UNLOCK(); + break; } case SCTP_DEL_IP_ADDRESS: { @@ -5409,11 +5634,18 @@ pf_sctp_multihome_delayed(struct pf_pdesc *pd, int off, struct pfi_kkif *kif, default: panic("Unknown op %#x", j->op); } - } + } -free: + free: + TAILQ_REMOVE(&pd->sctp_multihome_jobs, j, next); free(j, M_PFTEMP); } + + /* We may have inserted extra work while processing the list. */ + if (! TAILQ_EMPTY(&pd->sctp_multihome_jobs)) { + do_extra = false; + goto again; + } } static int @@ -5446,15 +5678,6 @@ pf_multihome_scan(struct mbuf *m, int start, int len, struct pf_pdesc *pd, NULL, NULL, pd->af)) return (PF_DROP); - /* - * Avoid duplicating states. We'll already have - * created a state based on the source address of - * the packet, but SCTP endpoints may also list this - * address again in the INIT(_ACK) parameters. - */ - if (t.s_addr == pd->src->v4.s_addr) - break; - if (in_nullhost(t)) t.s_addr = pd->src->v4.s_addr; diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index a8ef4dc346b0..071387c12983 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -1552,6 +1552,8 @@ pf_normalize_sctp_init(struct mbuf *m, int off, struct pf_pdesc *pd, return (1); } + dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; + return (0); } From nobody Tue Nov 7 15:47:24 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszc6DkVz50Wv9; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszc52tkz3Jr6; Tue, 7 Nov 2023 15:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e/9nZ/7CqxF/k68o9GznxkYwH4Xt049f2k9/OWp6hEk=; b=VVlaUh0adU1OzTH1Lej3EE+xKh46fGuG4mUM4NlQ/koQPe8IlU8gfP1T/azdCJ05IR2y9U HFnLtetjxOpWznhW92IeRwD8INGyyLJ0p9BY6Y+sDT9rSn1AR1HKVLKXV7sbIfN7f63Fic ZKUazZNFhFkAZ4JD+VKzpBsUdaDBwQfDD5f5AKL4iEqMqGtgbQzuUjQjfv4yXEAs+V8eKk rxCm/Et/Dp6WJxjrRCVnlDsM771JQslzKggvl8XQh6zLMQdZ5tOmJIuVyZdJMAWZoSfMRX VvKqC+C66Cc8lZvZX6j/eBZ48roKjvPRJMqO19RCozhC7AYplCJlwyBNAHMM2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e/9nZ/7CqxF/k68o9GznxkYwH4Xt049f2k9/OWp6hEk=; b=YKBRJNDOBoQ3kBQlHGbGjeiuv+baCi8CBdIUPg10XreU3IlD89Hv8ljTxkgo8Vf4pM2uQ+ RsosxzTogrQv5c8iTcQKps+Mh+1fKNA0Y79Lmg7gkI7VBATI2/0kXGNRRecBQYnNkDcSEC 820cJlQueCRTDuNY7GkOrJCFzxJHFqIgo5//jWslkgvzeEPYZ5Uz1J/ZTHO9+h+sR7C6Bw W65eCXlAoCGBtL9oxtigimxvcwTnlIkwefuLVD3Y0sjIvnbFgEnnysG9IBiOSj/FNS20A9 Ru9WqjTjwmtiiEcZ6NhhUupwOhetcrKBEwWlXShDd6dawK7vnn8Nl/CpggegLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372044; a=rsa-sha256; cv=none; b=JlNcis7J5jkBejM4sp4r+1AdtAoyKUkqKklx+i7N5kRs4fR22ShDpMo/bDNDAz2101ak/0 eTYxEUkscePT03Ht+DQDvaxWi+xeoYgaUa9oFgtm4F8AmF5A5wX6unxxO/sxcdkFtm86in xGz2dc4iY1ify21shy7Aj8oBfl/myeVo/6zTaYX43zTTyLTXwKbCiBaMM5d5DbhHnE1Vwl 7bXU9/hpffOqzm47AU+G3+nYuQIqDXBoYMwqTX10L6w5ZSO08MaHRHej6tfHRsQrhOVk24 IWKWBE17TZYdB43wphJAK798iroBRaLPalBQWwCjD5rEOb+wWfcJHVX7NATObQ== 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 4SPszc3gF2zwC2; Tue, 7 Nov 2023 15:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlOqB069864; Tue, 7 Nov 2023 15:47:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlOg3069861; Tue, 7 Nov 2023 15:47:24 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:24 GMT Message-Id: <202311071547.3A7FlOg3069861@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: 228ae54114e1 - stable/14 - libpfctl: be more tolerant of kernel extensions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 228ae54114e1efbe82686090bed9d2c8071ecea0 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=228ae54114e1efbe82686090bed9d2c8071ecea0 commit 228ae54114e1efbe82686090bed9d2c8071ecea0 Author: Kristof Provost AuthorDate: 2023-10-27 12:13:57 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:46:52 +0000 libpfctl: be more tolerant of kernel extensions Allow the kernel to supply more array elements than expected, but cut off when we hit what we think the maximum is. This will improve forward compatibility (i.e. old userspace with newer kernel). Reviewed by: zlei MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42392 (cherry picked from commit 2b1eb63fc9c6d6f64baaac59b7ea7c2a3228c03f) --- lib/libpfctl/libpfctl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 403dbf809b89..03907698e7d2 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -145,9 +145,8 @@ pf_nvuint_32_array(const nvlist_t *nvl, const char *name, size_t maxelems, size_t elems; tmp = nvlist_get_number_array(nvl, name, &elems); - assert(elems <= maxelems); - for (size_t i = 0; i < elems; i++) + for (size_t i = 0; i < elems && i < maxelems; i++) numbers[i] = tmp[i]; if (nelems) From nobody Tue Nov 7 15:47:24 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszd0K3yz50X11; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszc5wSvz3JyS; Tue, 7 Nov 2023 15:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MmGBjYJeXsToYwIFjVPc0HFxhwP90AA5K31thIWbamk=; b=eN3mLbhcFbjQvUT8Ks2lhBXxWksTytt2r9vJzFaeXtzY/DJxJDJfA39VZ2RFbOEGYbGicT G/R1o9VoGitTIJ7L0A375XAH71WpfkbxhfrG4YTr+EaLVq/+dzddaAuTR6QDlYrptW8W43 MBPaA67r17KSokzldUON/WKLHo8SCRZbDvoCBZeCTwcHhuugpR1GDUpghgrA1V6mFV024/ pW2jnuflnmjpYqDBIXsEnovz27om6pK911mLAKPlFp753WgXDNpK9vUVMIgT9QPpyy4P18 Q8ooewc/GpeodG2yD51IOWJ8dk1Yn4lr7cMrcACkE8a6GEHxjXGNd7Bxlwod9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MmGBjYJeXsToYwIFjVPc0HFxhwP90AA5K31thIWbamk=; b=rmhwUdTfJXC+z+4pBvBPz+XiC4KX5yUAjNhWAW+HqTImj/90EZn5ng4o8ZvIDwVrL2M319 s5Tz7ekE92UcKfBoJHgdzTQPAbo+iL5humY5Xzvky7LO0MVxr6ovdyUJ9LyA4FrZ8y4R6r B9yOe7tem7k7RLUMUmymXQ+stUmjFtlNUo72SoSOdGiK1pB4biH1HVxbW5fIzCJm+2/+aj ZGm0LXFBsKQVFYHsZlWWlsazmJOAoXMNrGeG4dKKzgKAIxFOUfkoTdeEgQLYCBSxPdFzPX qcAoeiyw0A60unoEdtmEGAOCktCkNTrYA3aReC9YhDE6+0hAlLYJSzyuwMomYQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372044; a=rsa-sha256; cv=none; b=V7fD3OHVb0my4KRSd+/tpQ2lsHd9KY43TLmZnkrQw0CZgT0kzBswFr+2BjWHSZMr5dsjZi T0iDRAkrAjw4zRD32lnuOklecVToKnxBP2oy3/GlCYo9+HiPTElD+nd0pFXcl/ZA4F9HjF kjDvBvjarWvFGzzWPBySStaZiJGQy/j9oadQ4yt0znCAz8H7cJQygjFVmBgDC2IwU4EkJG RfZoephEO4pLFSKznR1vamrddT6LhT3xOHRWBW8VpDnZjyz07LK/tQ2LU2Kt2W4yt7uiwP CCfSYfY4dJHO2kLIoCV5NCLlch+kT1KTVAQg5iRw28HT1bQPtJUgNTDtRuUTbg== 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 4SPszc4xD0zwQ9; Tue, 7 Nov 2023 15:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlOw5069925; Tue, 7 Nov 2023 15:47:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlOnh069922; Tue, 7 Nov 2023 15:47:24 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:24 GMT Message-Id: <202311071547.3A7FlOnh069922@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: dee71d8e6eab - stable/13 - pf tests: ensure that we generate all permutations for SCTP multihome List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: dee71d8e6eab162922d9fccf27511d05eef24cbb Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=dee71d8e6eab162922d9fccf27511d05eef24cbb commit dee71d8e6eab162922d9fccf27511d05eef24cbb Author: Kristof Provost AuthorDate: 2023-10-10 09:56:15 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:25:02 +0000 pf tests: ensure that we generate all permutations for SCTP multihome The initial multihome implementation was a little simplistic, and failed to create all of the required states. Given a client with IP 1 and 2 and a server with IP 3 and 4 we end up creating states for 1 - 3 and 2 - 3, as well as 3 - 1 and 4 - 1, but not for 2 - 4. Check for this. MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42362 (cherry picked from commit 483d5c4075e06e52d5daa23aef2b4f4a2eb64443) --- tests/sys/netpfil/pf/sctp.py | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/sys/netpfil/pf/sctp.py b/tests/sys/netpfil/pf/sctp.py index 5e6dca5dd64b..5db52dd993f2 100644 --- a/tests/sys/netpfil/pf/sctp.py +++ b/tests/sys/netpfil/pf/sctp.py @@ -360,6 +360,37 @@ class TestSCTP(VnetTestTemplate): states = ToolsHelper.get_output("/sbin/pfctl -ss") assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234.*SHUTDOWN", states) + + @pytest.mark.require_user("root") + def test_permutation(self): + # Test that we generate all permutations of src/dst addresses. + # Assign two addresses to each end, and check for the expected states + srv_vnet = self.vnet_map["vnet2"] + + ifname = self.vnet_map["vnet1"].iface_alias_map["if1"].name + ToolsHelper.print_output("/sbin/ifconfig %s inet alias 192.0.2.4/24" % ifname) + + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "block proto sctp", + "pass inet proto sctp to 192.0.2.0/24"]) + + # Sanity check, we can communicate with the primary address. + client = SCTPClient("192.0.2.3", 1234) + client.send(b"hello", 0) + rcvd = self.wait_object(srv_vnet.pipe) + print(rcvd) + assert rcvd['ppid'] == 0 + assert rcvd['data'] == "hello" + + # Check that we have a state for 192.0.2.3 and 192.0.2.2 to 192.0.2.1, but also to 192.0.2.4 + states = ToolsHelper.get_output("/sbin/pfctl -ss") + print(states) + assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234", states) + assert re.search(r"all sctp 192.0.2.1:.*192.0.2.2:1234", states) + assert re.search(r"all sctp 192.0.2.4:.*192.0.2.3:1234", states) + assert re.search(r"all sctp 192.0.2.4:.*192.0.2.2:1234", states) + class TestSCTPv6(VnetTestTemplate): REQUIRED_MODULES = ["sctp", "pf"] TOPOLOGY = { @@ -476,3 +507,33 @@ class TestSCTPv6(VnetTestTemplate): # Verify that the state is closing states = ToolsHelper.get_output("/sbin/pfctl -ss") assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::3\[1234\].*SHUTDOWN", states) + + @pytest.mark.require_user("root") + def test_permutation(self): + # Test that we generate all permutations of src/dst addresses. + # Assign two addresses to each end, and check for the expected states + srv_vnet = self.vnet_map["vnet2"] + + ifname = self.vnet_map["vnet1"].iface_alias_map["if1"].name + ToolsHelper.print_output("/sbin/ifconfig %s inet6 alias 2001:db8::4/64" % ifname) + + ToolsHelper.print_output("/sbin/pfctl -e") + ToolsHelper.pf_rules([ + "block proto sctp", + "pass inet6 proto sctp to 2001:db8::0/64"]) + + # Sanity check, we can communicate with the primary address. + client = SCTPClient("2001:db8::3", 1234) + client.send(b"hello", 0) + rcvd = self.wait_object(srv_vnet.pipe) + print(rcvd) + assert rcvd['ppid'] == 0 + assert rcvd['data'] == "hello" + + # Check that we have a state for 2001:db8::3 and 2001:db8::2 to 2001:db8::1, but also to 2001:db8::4 + states = ToolsHelper.get_output("/sbin/pfctl -ss") + print(states) + assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::2\[1234\]", states) + assert re.search(r"all sctp 2001:db8::1\[.*2001:db8::3\[1234\]", states) + assert re.search(r"all sctp 2001:db8::4\[.*2001:db8::2\[1234\]", states) + assert re.search(r"all sctp 2001:db8::4\[.*2001:db8::3\[1234\]", states) From nobody Tue Nov 7 15:47:25 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszf1pBDz50Wqd; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszd6NDTz3JrQ; Tue, 7 Nov 2023 15:47:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8K2aQKXbEqY1TH69I6KAC9Xh75ldvMXjOePE4EwuoVI=; b=En2dO+AATqY1V2iMz/HQ7eTE6LK/pe2BqsANhyHD4kGrnR3hQJa1SFk44PUEPE09m5QPyE Imz1PChvC1/EVBUhvUy9Qh3PeEc6l7kqaMWFdKK97osA47tUY+RGw60SxtGJordb0R7eno SUHgLnvMTs2OEKc4HowjWAsU2menZqpLMbfW04VvYRfPUcdCugkV2sGBwxhW3XPyQO3STf 8fgucrXa6F5EZb/Y9VN9htttO3j/6j6hANOMbNHmziRBOZVnSEO1HUzGdvTI05uG4pxelY OJgR0EQFieCe8Mjk5bis84xyrZmCTgkhPbT6PdzOqA1+6xX05sh54iIeKHMKUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8K2aQKXbEqY1TH69I6KAC9Xh75ldvMXjOePE4EwuoVI=; b=IFFysL24xQG67o/igs6DyNgzGJ5bfcjZ2uoDxO1qAKCZowZoyQ719PCsC3jEHkwYCoUaZx x8AHMYKGKP5FZ44LIQWB7miZZ+l2975bGYEQkC0DiX7L+71u0ImWt6w7WQhm6URoZzryRi Ra0ZfnWjx4H9WSCLhFdOL+Ah8bty10TEiqoxUW8SIFMdT2SBDhDupk3XXgSCsOFcxGibW0 Vr9GvIpfL/DMF5j0FRjuWpA8PP+IzldBen9NRJNExq8aRrGOfZRcxxMtvPbbho6NdAdNLx 2jQR7bXxzfM4AQGzij2sU6U5GCNpMspaR9CP5xcgeM/PzibmUmWQajM6K0H+Sg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372045; a=rsa-sha256; cv=none; b=e4/oR9uyTO6V7GPoZpsxkpMdktTavaRhDp9yFNfMgKN1cyPiTAsQ/m8E5S01G8vcJJB8QR z3vY3y5/WiElVQvUwi3pS5zGSPaw3Yk+WYhBklJ2FSxbGxC2nIfHGi9UUr5FFHiYZEywby RAaCCSIoocNAgB7RvFp/yIXMbxhNK3u8Tdr80n3YFsUZ9aI1KQvFsYjoibvXaRMImGB5zW XwXQjKJPfS0DrDV3NFaSjMyC3NoEgx9UNhYA6OUxW9LrjX2zJo1n6TAvhs8GwAcxdzACDV lcMfPRYACoZNRn/PX8R/5/DimduR8vxvo+1hFipCQ7hf9/3cAV6MmgHRxRoEew== 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 4SPszd5V60zwC4; Tue, 7 Nov 2023 15:47:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlPHe070012; Tue, 7 Nov 2023 15:47:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlPZE070009; Tue, 7 Nov 2023 15:47:25 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:25 GMT Message-Id: <202311071547.3A7FlPZE070009@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: c17db80ddd57 - stable/13 - libpfctl: be more tolerant of kernel extensions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: c17db80ddd5743dce59552dba4bd7c243b748a6c Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=c17db80ddd5743dce59552dba4bd7c243b748a6c commit c17db80ddd5743dce59552dba4bd7c243b748a6c Author: Kristof Provost AuthorDate: 2023-10-27 12:13:57 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:25:02 +0000 libpfctl: be more tolerant of kernel extensions Allow the kernel to supply more array elements than expected, but cut off when we hit what we think the maximum is. This will improve forward compatibility (i.e. old userspace with newer kernel). Reviewed by: zlei MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42392 (cherry picked from commit 2b1eb63fc9c6d6f64baaac59b7ea7c2a3228c03f) --- lib/libpfctl/libpfctl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 2a77aeb0efad..bf25a45b792f 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -145,9 +145,8 @@ pf_nvuint_32_array(const nvlist_t *nvl, const char *name, size_t maxelems, size_t elems; tmp = nvlist_get_number_array(nvl, name, &elems); - assert(elems <= maxelems); - for (size_t i = 0; i < elems; i++) + for (size_t i = 0; i < elems && i < maxelems; i++) numbers[i] = tmp[i]; if (nelems) From nobody Tue Nov 7 15:47:25 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszf1rGnz50Wqf; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszd61Q6z3Jnh; Tue, 7 Nov 2023 15:47:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WwpRyIMRYpsXZtMuWnlAgV4vO07+TMZ6QjA0nr0njTY=; b=yiDkpUwVtORnhPhss+UEaDejQLvxSvlj7t5FiI4CuPE2YG5bCip+wki8lvhhoAv5pKuwAv 8BzBoeZwZ4Th7YEh18FTXPSXuZzCHGxXG1/XaaEPLxMq28JI0qi89qL0RZe+mHBNq8twiA GAyH6Y3K+BufgD5dPeG/dk3u/goYUJlnC47C0qD9Wzg4heB4WRuo4jawpVbv84f9Kezm96 sc57guAwl7aQnLu8rZMtBwaCw2vkolndPy4q54mshGAv06ILPrT35mor25kSJE+Gxsrimz /JuwxiACk9/RgLjoyDUk4XY3vTRHsc5BxmY/7kXXSi/X0FFSJnFGxa0KtUCowg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WwpRyIMRYpsXZtMuWnlAgV4vO07+TMZ6QjA0nr0njTY=; b=cfQLP65cQBj5y1VGIihnLelYHZT9mngngXT8NIiEGZQSnesxtV56rfsNJHseOEvoTIdE+l dMd2c/N+sHuik7UOZb0u3nWWKm2XOPNlIZETeq7wRh3qAUZNzNLy1qPpzCgCA239YRcnEg wWxGxKmL97FSPbyIIi7cw6pbb4v0LNP7FaPfZIfGdDlOEQhpFApc9xdFHCgt1JPNHZHJ4N 8EBd3EOfVtHNtIIK9FP4kjBBcvprP1lj/NPS23Cpsp6xCEkl+ZQVMYfDwnUYsf76yUFpea iETQ3mJgyf68dIFDHGN+eforhV2BFdpZAtkAKb3h7T8bdkGRHb8/CVCfy1f5jA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372045; a=rsa-sha256; cv=none; b=w+xFD72C8YCxTsRue11uPshIIYXtLfQwG9D0I4Z0rroPf0hW1jNjvmcFmavT0HRslk+jJs hj/PeWCwmUOobghEp34odV83VHxBSRqxcS9gsCZDZN7WaXFu4M60GTM6ggnyj2yn0KLxWU vE9bPNliDfXPgIKimHHBRWHAg1Gfo31xSUDy0wkYGk/jGsHFm3S2w3Q48suSF6xdsmZEZG XnZCGF43EO0Z8jZ7Vf3sshqyiIZXUe3ZVVD4lA4jXIhJnmlW1hWRFAxbX4+ROpcti9uVN2 L9PI72Bs2czV65xb3jIiQMg1VJAmXRT0nWdqs7Gcux7c6cqaUhBWbUxEW5PA+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 4SPszd4yHJzwC3; Tue, 7 Nov 2023 15:47:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlP9a069964; Tue, 7 Nov 2023 15:47:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlPtL069961; Tue, 7 Nov 2023 15:47:25 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:25 GMT Message-Id: <202311071547.3A7FlPtL069961@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: 47b2432a5c20 - stable/14 - pf: support SCTP-specific timeouts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 47b2432a5c207314f8b5d9b570b26549ae895bf5 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=47b2432a5c207314f8b5d9b570b26549ae895bf5 commit 47b2432a5c207314f8b5d9b570b26549ae895bf5 Author: Kristof Provost AuthorDate: 2023-10-27 14:45:07 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:46:52 +0000 pf: support SCTP-specific timeouts Allow SCTP state timeouts to be configured independently from TCP state timeouts. Reviewed by: tuexen MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42393 (cherry picked from commit ca9dbde88122beb079b55fb4580b200f73044da6) --- sbin/pfctl/pfctl.c | 5 +++++ sbin/pfctl/pfctl_parser.c | 5 +++++ sbin/pfctl/tests/files/pf1002.in | 5 +++++ sbin/pfctl/tests/files/pf1002.ok | 5 +++++ share/man/man5/pf.conf.5 | 19 ++++++++++++++++++- sys/netpfil/pf/pf.c | 14 +++++++++----- sys/netpfil/pf/pf.h | 41 +++++++++++++++++++++++++++++++--------- sys/netpfil/pf/pf_ioctl.c | 5 +++++ 8 files changed, 84 insertions(+), 15 deletions(-) diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index bfa76b299a02..d5541571a135 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -2234,6 +2234,11 @@ pfctl_init_options(struct pfctl *pf) pf->timeout[PFTM_TCP_CLOSING] = PFTM_TCP_CLOSING_VAL; pf->timeout[PFTM_TCP_FIN_WAIT] = PFTM_TCP_FIN_WAIT_VAL; pf->timeout[PFTM_TCP_CLOSED] = PFTM_TCP_CLOSED_VAL; + pf->timeout[PFTM_SCTP_FIRST_PACKET] = PFTM_TCP_FIRST_PACKET_VAL; + pf->timeout[PFTM_SCTP_OPENING] = PFTM_TCP_OPENING_VAL; + pf->timeout[PFTM_SCTP_ESTABLISHED] = PFTM_TCP_ESTABLISHED_VAL; + pf->timeout[PFTM_SCTP_CLOSING] = PFTM_TCP_CLOSING_VAL; + pf->timeout[PFTM_SCTP_CLOSED] = PFTM_TCP_CLOSED_VAL; pf->timeout[PFTM_UDP_FIRST_PACKET] = PFTM_UDP_FIRST_PACKET_VAL; pf->timeout[PFTM_UDP_SINGLE] = PFTM_UDP_SINGLE_VAL; pf->timeout[PFTM_UDP_MULTIPLE] = PFTM_UDP_MULTIPLE_VAL; diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index 925848055bba..0268d1b07c79 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -192,6 +192,11 @@ const struct pf_timeout pf_timeouts[] = { { "tcp.finwait", PFTM_TCP_FIN_WAIT }, { "tcp.closed", PFTM_TCP_CLOSED }, { "tcp.tsdiff", PFTM_TS_DIFF }, + { "sctp.first", PFTM_SCTP_FIRST_PACKET }, + { "sctp.opening", PFTM_SCTP_OPENING }, + { "sctp.established", PFTM_SCTP_ESTABLISHED }, + { "sctp.closing", PFTM_SCTP_CLOSING }, + { "sctp.closed", PFTM_SCTP_CLOSED }, { "udp.first", PFTM_UDP_FIRST_PACKET }, { "udp.single", PFTM_UDP_SINGLE }, { "udp.multiple", PFTM_UDP_MULTIPLE }, diff --git a/sbin/pfctl/tests/files/pf1002.in b/sbin/pfctl/tests/files/pf1002.in index 5180e8395f9c..3fdde81be7de 100644 --- a/sbin/pfctl/tests/files/pf1002.in +++ b/sbin/pfctl/tests/files/pf1002.in @@ -1 +1,6 @@ set timeout interval 10 +set timeout sctp.first 11 +set timeout sctp.opening 12 +set timeout sctp.established 13 +set timeout sctp.closing 14 +set timeout sctp.closed 15 diff --git a/sbin/pfctl/tests/files/pf1002.ok b/sbin/pfctl/tests/files/pf1002.ok index 5180e8395f9c..3fdde81be7de 100644 --- a/sbin/pfctl/tests/files/pf1002.ok +++ b/sbin/pfctl/tests/files/pf1002.ok @@ -1 +1,6 @@ set timeout interval 10 +set timeout sctp.first 11 +set timeout sctp.opening 12 +set timeout sctp.established 13 +set timeout sctp.closing 14 +set timeout sctp.closed 15 diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index 2bc57d4f7f5b..ce64df78ad62 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -27,7 +27,7 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 21, 2023 +.Dd October 27, 2023 .Dt PF.CONF 5 .Os .Sh NAME @@ -283,6 +283,21 @@ can prevent blocking of such packets. The state after one endpoint sends an RST. .El .Pp +SCTP timeout are handled similar to TCP, but with its own set of states: +.Pp +.Bl -tag -width xxxx -compact +.It Ar sctp.first +The state after the first packet. +.It Ar sctp.opening +The state before the destination host ever sends a packet. +.It Ar sctp.established +The fully established state. +.It Ar sctp.closing +The state after the first SHUTDOWN chunk has been sent. +.It Ar sctp.closed +The state after SHUTDOWN_ACK has been exchanged and the connection is closed. +.El +.Pp ICMP and UDP are handled in a fashion similar to TCP, but with a much more limited set of states: .Pp @@ -3277,6 +3292,8 @@ fragmentation = [ "fragment reassemble" ] timeout-list = timeout [ [ "," ] timeout-list ] timeout = ( "tcp.first" | "tcp.opening" | "tcp.established" | "tcp.closing" | "tcp.finwait" | "tcp.closed" | + "sctp.first" | "sctp.opening" | "sctp.established" | + "sctp.closing" | "sctp.closed" | "udp.first" | "udp.single" | "udp.multiple" | "icmp.first" | "icmp.error" | "other.first" | "other.single" | "other.multiple" | diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 96e8a165692f..b80ec2bb303d 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -4906,7 +4906,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, case IPPROTO_SCTP: pf_set_protostate(s, PF_PEER_SRC, SCTP_COOKIE_WAIT); pf_set_protostate(s, PF_PEER_DST, SCTP_CLOSED); - s->timeout = PFTM_TCP_FIRST_PACKET; + s->timeout = PFTM_SCTP_FIRST_PACKET; break; case IPPROTO_ICMP: #ifdef INET6 @@ -5915,7 +5915,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->sctp_flags & PFDESC_SCTP_INIT) { if (src->state < SCTP_COOKIE_WAIT) { pf_set_protostate(*state, psrc, SCTP_COOKIE_WAIT); - (*state)->timeout = PFTM_TCP_OPENING; + (*state)->timeout = PFTM_SCTP_OPENING; } } if (pd->sctp_flags & PFDESC_SCTP_INIT_ACK) { @@ -5927,16 +5927,20 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); - (*state)->timeout = PFTM_TCP_ESTABLISHED; + (*state)->timeout = PFTM_SCTP_ESTABLISHED; } } if (pd->sctp_flags & (PFDESC_SCTP_SHUTDOWN | PFDESC_SCTP_ABORT | PFDESC_SCTP_SHUTDOWN_COMPLETE)) { if (src->state < SCTP_SHUTDOWN_PENDING) { pf_set_protostate(*state, psrc, SCTP_SHUTDOWN_PENDING); - (*state)->timeout = PFTM_TCP_CLOSING; + (*state)->timeout = PFTM_SCTP_CLOSING; } } + if (pd->sctp_flags & (PFDESC_SCTP_SHUTDOWN_COMPLETE)) { + pf_set_protostate(*state, psrc, SCTP_CLOSED); + (*state)->timeout = PFTM_SCTP_CLOSED; + } if (src->scrub != NULL) { if (src->scrub->pfss_v_tag == 0) { @@ -6216,7 +6220,7 @@ again: psrc = PF_PEER_DST; } pf_set_protostate(sm, psrc, SCTP_SHUTDOWN_PENDING); - sm->timeout = PFTM_TCP_CLOSING; + sm->timeout = PFTM_SCTP_CLOSING; PF_STATE_UNLOCK(sm); } break; diff --git a/sys/netpfil/pf/pf.h b/sys/netpfil/pf/pf.h index d83aa5e579bd..dd9796b59ce9 100644 --- a/sys/netpfil/pf/pf.h +++ b/sys/netpfil/pf/pf.h @@ -66,14 +66,37 @@ enum { PF_PEER_SRC, PF_PEER_DST, PF_PEER_BOTH }; * Note about PFTM_*: real indices into pf_rule.timeout[] come before * PFTM_MAX, special cases afterwards. See pf_state_expires(). */ -enum { PFTM_TCP_FIRST_PACKET, PFTM_TCP_OPENING, PFTM_TCP_ESTABLISHED, - PFTM_TCP_CLOSING, PFTM_TCP_FIN_WAIT, PFTM_TCP_CLOSED, - PFTM_UDP_FIRST_PACKET, PFTM_UDP_SINGLE, PFTM_UDP_MULTIPLE, - PFTM_ICMP_FIRST_PACKET, PFTM_ICMP_ERROR_REPLY, - PFTM_OTHER_FIRST_PACKET, PFTM_OTHER_SINGLE, - PFTM_OTHER_MULTIPLE, PFTM_FRAG, PFTM_INTERVAL, - PFTM_ADAPTIVE_START, PFTM_ADAPTIVE_END, PFTM_SRC_NODE, - PFTM_TS_DIFF, PFTM_MAX, PFTM_PURGE, PFTM_UNLINKED }; +enum { + PFTM_TCP_FIRST_PACKET = 0, + PFTM_TCP_OPENING = 1, + PFTM_TCP_ESTABLISHED = 2, + PFTM_TCP_CLOSING = 3, + PFTM_TCP_FIN_WAIT = 4, + PFTM_TCP_CLOSED = 5, + PFTM_UDP_FIRST_PACKET = 6, + PFTM_UDP_SINGLE = 7, + PFTM_UDP_MULTIPLE = 8, + PFTM_ICMP_FIRST_PACKET = 9, + PFTM_ICMP_ERROR_REPLY = 10, + PFTM_OTHER_FIRST_PACKET = 11, + PFTM_OTHER_SINGLE = 12, + PFTM_OTHER_MULTIPLE = 13, + PFTM_FRAG = 14, + PFTM_INTERVAL = 15, + PFTM_ADAPTIVE_START = 16, + PFTM_ADAPTIVE_END = 17, + PFTM_SRC_NODE = 18, + PFTM_TS_DIFF = 19, + PFTM_OLD_MAX = 20, /* Legacy limit, for binary compatibility with old kernels. */ + PFTM_SCTP_FIRST_PACKET = 20, + PFTM_SCTP_OPENING = 21, + PFTM_SCTP_ESTABLISHED = 22, + PFTM_SCTP_CLOSING = 23, + PFTM_SCTP_CLOSED = 24, + PFTM_MAX = 25, + PFTM_PURGE = 26, + PFTM_UNLINKED = 27, +}; /* PFTM default values */ #define PFTM_TCP_FIRST_PACKET_VAL 120 /* First TCP packet */ @@ -497,7 +520,7 @@ struct pf_rule { pf_osfp_t os_fingerprint; int rtableid; - u_int32_t timeout[PFTM_MAX]; + u_int32_t timeout[PFTM_OLD_MAX]; u_int32_t max_states; u_int32_t max_src_nodes; u_int32_t max_src_states; diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index 65bab7195d46..6b8fbf77fd29 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -373,6 +373,11 @@ pfattach_vnet(void) my_timeout[PFTM_TCP_CLOSING] = PFTM_TCP_CLOSING_VAL; my_timeout[PFTM_TCP_FIN_WAIT] = PFTM_TCP_FIN_WAIT_VAL; my_timeout[PFTM_TCP_CLOSED] = PFTM_TCP_CLOSED_VAL; + my_timeout[PFTM_SCTP_FIRST_PACKET] = PFTM_TCP_FIRST_PACKET_VAL; + my_timeout[PFTM_SCTP_OPENING] = PFTM_TCP_OPENING_VAL; + my_timeout[PFTM_SCTP_ESTABLISHED] = PFTM_TCP_ESTABLISHED_VAL; + my_timeout[PFTM_SCTP_CLOSING] = PFTM_TCP_CLOSING_VAL; + my_timeout[PFTM_SCTP_CLOSED] = PFTM_TCP_CLOSED_VAL; my_timeout[PFTM_UDP_FIRST_PACKET] = PFTM_UDP_FIRST_PACKET_VAL; my_timeout[PFTM_UDP_SINGLE] = PFTM_UDP_SINGLE_VAL; my_timeout[PFTM_UDP_MULTIPLE] = PFTM_UDP_MULTIPLE_VAL; From nobody Tue Nov 7 15:47:26 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPszg2CkDz50Wxh; Tue, 7 Nov 2023 15:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPszg0RrGz3JxQ; Tue, 7 Nov 2023 15:47:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5WxYgi7n04o+Cs8ZETBL0Sn5xKrL+9pnLnxBtDMEvMg=; b=a/a3ND+Y2O6SZ5D9ywDaOpZM3Puv0FFXBwqQWEhTp8xWmjNtqYb34mlsrn0HtD3bVpzxGc VmWhUxOsMWyrdMJbZEDMGNQzuo08aNZgPGDR5n/6lbkgz166vYTHzG7P0Rv4x0pqhlgsdx wWCoTvyBgEdTSRQsYgJ1jmH1DFmVcP4caOCjh03/z2ULK8tF1ndBSJVovb2eK6IHvd5MMA 6ZVPSWkzLxlyx+CW34XyLG/cIlsuKuY0qfCPeVedyeix9PtJ56lafVMMzOu98pxoxzsRze 6SuWR1Mtcd7qoo+ZPhpjs1GGRUjinDmlabzXJNvRHSSlWjHmCpzNpd3Y4Fyjig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699372047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5WxYgi7n04o+Cs8ZETBL0Sn5xKrL+9pnLnxBtDMEvMg=; b=OrnkQgLPhaIHcplCrHP5b79JZh57CHRwiOyq4EeSaGgpsnf06n9I2N+IpX3+Vy3a3YL9hx FET5Pg6IOMsBaE0q3YCZkCrN4uHnz/6lgyLwNzTHxsNqcebHZxMVCTTXrwmCiDUD3yLiyb XeSRU9R3emdMaz9CPV9XojflkRCHsEsni507BBxyY/iilO6nw5bEjaBF0hN5ldWR8Suihx vkrUUjNC/7ZDiIqEOeOlgStkKcnoAwFhDlrVJ6atRXfzF2x+3jHnOZZSjBu+tfWpVY9Nbn fVIniMv6445ddMKuQCbE6om1OOuHgrhUHlrQZgTMIje5CKPT6x2so8jXz0HMlQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699372047; a=rsa-sha256; cv=none; b=VGlyxrAofuF6jh8eb2aBhphzBpQ8nqgBCJexpZEbbffcc+L2ULwjsRC/ToxwNzbrkWtqtg /2rFr5G07+Tm2DKnaB1xFnJI3i55hOeWiXvl5Y9XLh+J2iNLoPMBdEt75Am0TjbYIZ7i3D egad9QERjaovprsQb2VjA+XaFyVlgUzgmqjCklSS9mBhYthtusMkx/zxhdym8s+tLpqh4o oj+Kj6VBJFkq+qrf/lQ/5YRL9mPVN/TCGkdJu1b+zmxahO0nmqEmYfMMgwA50jAl9ssib3 faEAur5f6puqfBX5tE2g/au5QY2kO/vt2YhT/HD5qw6E+gmkOS1d5ocFRl43uQ== 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 4SPszf6Z6qzwgg; Tue, 7 Nov 2023 15:47:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7FlQ5F070089; Tue, 7 Nov 2023 15:47:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7FlQad070086; Tue, 7 Nov 2023 15:47:26 GMT (envelope-from git) Date: Tue, 7 Nov 2023 15:47:26 GMT Message-Id: <202311071547.3A7FlQad070086@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: 79b69575d838 - stable/13 - pf: support SCTP-specific timeouts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 79b69575d838f40a96b3ef68aa633a84da04c9df Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=79b69575d838f40a96b3ef68aa633a84da04c9df commit 79b69575d838f40a96b3ef68aa633a84da04c9df Author: Kristof Provost AuthorDate: 2023-10-27 14:45:07 +0000 Commit: Kristof Provost CommitDate: 2023-11-07 15:25:02 +0000 pf: support SCTP-specific timeouts Allow SCTP state timeouts to be configured independently from TCP state timeouts. Reviewed by: tuexen MFC after: 1 week Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D42393 (cherry picked from commit ca9dbde88122beb079b55fb4580b200f73044da6) --- sbin/pfctl/pfctl.c | 5 +++++ sbin/pfctl/pfctl_parser.c | 5 +++++ sbin/pfctl/tests/files/pf1002.in | 5 +++++ sbin/pfctl/tests/files/pf1002.ok | 5 +++++ share/man/man5/pf.conf.5 | 19 ++++++++++++++++++- sys/netpfil/pf/pf.c | 14 +++++++++----- sys/netpfil/pf/pf.h | 41 +++++++++++++++++++++++++++++++--------- sys/netpfil/pf/pf_ioctl.c | 5 +++++ 8 files changed, 84 insertions(+), 15 deletions(-) diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 645ba1d6fcaf..985cbe0771c0 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -1856,6 +1856,11 @@ pfctl_init_options(struct pfctl *pf) pf->timeout[PFTM_TCP_CLOSING] = PFTM_TCP_CLOSING_VAL; pf->timeout[PFTM_TCP_FIN_WAIT] = PFTM_TCP_FIN_WAIT_VAL; pf->timeout[PFTM_TCP_CLOSED] = PFTM_TCP_CLOSED_VAL; + pf->timeout[PFTM_SCTP_FIRST_PACKET] = PFTM_TCP_FIRST_PACKET_VAL; + pf->timeout[PFTM_SCTP_OPENING] = PFTM_TCP_OPENING_VAL; + pf->timeout[PFTM_SCTP_ESTABLISHED] = PFTM_TCP_ESTABLISHED_VAL; + pf->timeout[PFTM_SCTP_CLOSING] = PFTM_TCP_CLOSING_VAL; + pf->timeout[PFTM_SCTP_CLOSED] = PFTM_TCP_CLOSED_VAL; pf->timeout[PFTM_UDP_FIRST_PACKET] = PFTM_UDP_FIRST_PACKET_VAL; pf->timeout[PFTM_UDP_SINGLE] = PFTM_UDP_SINGLE_VAL; pf->timeout[PFTM_UDP_MULTIPLE] = PFTM_UDP_MULTIPLE_VAL; diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index a3863cb23ac6..ed152eca0010 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -192,6 +192,11 @@ const struct pf_timeout pf_timeouts[] = { { "tcp.finwait", PFTM_TCP_FIN_WAIT }, { "tcp.closed", PFTM_TCP_CLOSED }, { "tcp.tsdiff", PFTM_TS_DIFF }, + { "sctp.first", PFTM_SCTP_FIRST_PACKET }, + { "sctp.opening", PFTM_SCTP_OPENING }, + { "sctp.established", PFTM_SCTP_ESTABLISHED }, + { "sctp.closing", PFTM_SCTP_CLOSING }, + { "sctp.closed", PFTM_SCTP_CLOSED }, { "udp.first", PFTM_UDP_FIRST_PACKET }, { "udp.single", PFTM_UDP_SINGLE }, { "udp.multiple", PFTM_UDP_MULTIPLE }, diff --git a/sbin/pfctl/tests/files/pf1002.in b/sbin/pfctl/tests/files/pf1002.in index 5180e8395f9c..3fdde81be7de 100644 --- a/sbin/pfctl/tests/files/pf1002.in +++ b/sbin/pfctl/tests/files/pf1002.in @@ -1 +1,6 @@ set timeout interval 10 +set timeout sctp.first 11 +set timeout sctp.opening 12 +set timeout sctp.established 13 +set timeout sctp.closing 14 +set timeout sctp.closed 15 diff --git a/sbin/pfctl/tests/files/pf1002.ok b/sbin/pfctl/tests/files/pf1002.ok index 5180e8395f9c..3fdde81be7de 100644 --- a/sbin/pfctl/tests/files/pf1002.ok +++ b/sbin/pfctl/tests/files/pf1002.ok @@ -1 +1,6 @@ set timeout interval 10 +set timeout sctp.first 11 +set timeout sctp.opening 12 +set timeout sctp.established 13 +set timeout sctp.closing 14 +set timeout sctp.closed 15 diff --git a/share/man/man5/pf.conf.5 b/share/man/man5/pf.conf.5 index fa7bdc9587b2..6168bc3e8089 100644 --- a/share/man/man5/pf.conf.5 +++ b/share/man/man5/pf.conf.5 @@ -27,7 +27,7 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 21, 2023 +.Dd October 27, 2023 .Dt PF.CONF 5 .Os .Sh NAME @@ -281,6 +281,21 @@ can prevent blocking of such packets. The state after one endpoint sends an RST. .El .Pp +SCTP timeout are handled similar to TCP, but with its own set of states: +.Pp +.Bl -tag -width xxxx -compact +.It Ar sctp.first +The state after the first packet. +.It Ar sctp.opening +The state before the destination host ever sends a packet. +.It Ar sctp.established +The fully established state. +.It Ar sctp.closing +The state after the first SHUTDOWN chunk has been sent. +.It Ar sctp.closed +The state after SHUTDOWN_ACK has been exchanged and the connection is closed. +.El +.Pp ICMP and UDP are handled in a fashion similar to TCP, but with a much more limited set of states: .Pp @@ -3120,6 +3135,8 @@ fragmentation = [ "fragment reassemble" ] timeout-list = timeout [ [ "," ] timeout-list ] timeout = ( "tcp.first" | "tcp.opening" | "tcp.established" | "tcp.closing" | "tcp.finwait" | "tcp.closed" | + "sctp.first" | "sctp.opening" | "sctp.established" | + "sctp.closing" | "sctp.closed" | "udp.first" | "udp.single" | "udp.multiple" | "icmp.first" | "icmp.error" | "other.first" | "other.single" | "other.multiple" | diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 278aa07fab75..7bac94f77a32 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -4336,7 +4336,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, case IPPROTO_SCTP: pf_set_protostate(s, PF_PEER_SRC, SCTP_COOKIE_WAIT); pf_set_protostate(s, PF_PEER_DST, SCTP_CLOSED); - s->timeout = PFTM_TCP_FIRST_PACKET; + s->timeout = PFTM_SCTP_FIRST_PACKET; break; case IPPROTO_ICMP: #ifdef INET6 @@ -5326,7 +5326,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->sctp_flags & PFDESC_SCTP_INIT) { if (src->state < SCTP_COOKIE_WAIT) { pf_set_protostate(*state, psrc, SCTP_COOKIE_WAIT); - (*state)->timeout = PFTM_TCP_OPENING; + (*state)->timeout = PFTM_SCTP_OPENING; } } if (pd->sctp_flags & PFDESC_SCTP_INIT_ACK) { @@ -5338,16 +5338,20 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); - (*state)->timeout = PFTM_TCP_ESTABLISHED; + (*state)->timeout = PFTM_SCTP_ESTABLISHED; } } if (pd->sctp_flags & (PFDESC_SCTP_SHUTDOWN | PFDESC_SCTP_ABORT | PFDESC_SCTP_SHUTDOWN_COMPLETE)) { if (src->state < SCTP_SHUTDOWN_PENDING) { pf_set_protostate(*state, psrc, SCTP_SHUTDOWN_PENDING); - (*state)->timeout = PFTM_TCP_CLOSING; + (*state)->timeout = PFTM_SCTP_CLOSING; } } + if (pd->sctp_flags & (PFDESC_SCTP_SHUTDOWN_COMPLETE)) { + pf_set_protostate(*state, psrc, SCTP_CLOSED); + (*state)->timeout = PFTM_SCTP_CLOSED; + } if (src->scrub != NULL) { if (src->scrub->pfss_v_tag == 0) { @@ -5627,7 +5631,7 @@ again: psrc = PF_PEER_DST; } pf_set_protostate(sm, psrc, SCTP_SHUTDOWN_PENDING); - sm->timeout = PFTM_TCP_CLOSING; + sm->timeout = PFTM_SCTP_CLOSING; PF_STATE_UNLOCK(sm); } break; diff --git a/sys/netpfil/pf/pf.h b/sys/netpfil/pf/pf.h index 0b0e9f05251e..89162ded3ef0 100644 --- a/sys/netpfil/pf/pf.h +++ b/sys/netpfil/pf/pf.h @@ -66,14 +66,37 @@ enum { PF_PEER_SRC, PF_PEER_DST, PF_PEER_BOTH }; * Note about PFTM_*: real indices into pf_rule.timeout[] come before * PFTM_MAX, special cases afterwards. See pf_state_expires(). */ -enum { PFTM_TCP_FIRST_PACKET, PFTM_TCP_OPENING, PFTM_TCP_ESTABLISHED, - PFTM_TCP_CLOSING, PFTM_TCP_FIN_WAIT, PFTM_TCP_CLOSED, - PFTM_UDP_FIRST_PACKET, PFTM_UDP_SINGLE, PFTM_UDP_MULTIPLE, - PFTM_ICMP_FIRST_PACKET, PFTM_ICMP_ERROR_REPLY, - PFTM_OTHER_FIRST_PACKET, PFTM_OTHER_SINGLE, - PFTM_OTHER_MULTIPLE, PFTM_FRAG, PFTM_INTERVAL, - PFTM_ADAPTIVE_START, PFTM_ADAPTIVE_END, PFTM_SRC_NODE, - PFTM_TS_DIFF, PFTM_MAX, PFTM_PURGE, PFTM_UNLINKED }; +enum { + PFTM_TCP_FIRST_PACKET = 0, + PFTM_TCP_OPENING = 1, + PFTM_TCP_ESTABLISHED = 2, + PFTM_TCP_CLOSING = 3, + PFTM_TCP_FIN_WAIT = 4, + PFTM_TCP_CLOSED = 5, + PFTM_UDP_FIRST_PACKET = 6, + PFTM_UDP_SINGLE = 7, + PFTM_UDP_MULTIPLE = 8, + PFTM_ICMP_FIRST_PACKET = 9, + PFTM_ICMP_ERROR_REPLY = 10, + PFTM_OTHER_FIRST_PACKET = 11, + PFTM_OTHER_SINGLE = 12, + PFTM_OTHER_MULTIPLE = 13, + PFTM_FRAG = 14, + PFTM_INTERVAL = 15, + PFTM_ADAPTIVE_START = 16, + PFTM_ADAPTIVE_END = 17, + PFTM_SRC_NODE = 18, + PFTM_TS_DIFF = 19, + PFTM_OLD_MAX = 20, /* Legacy limit, for binary compatibility with old kernels. */ + PFTM_SCTP_FIRST_PACKET = 20, + PFTM_SCTP_OPENING = 21, + PFTM_SCTP_ESTABLISHED = 22, + PFTM_SCTP_CLOSING = 23, + PFTM_SCTP_CLOSED = 24, + PFTM_MAX = 25, + PFTM_PURGE = 26, + PFTM_UNLINKED = 27, +}; /* PFTM default values */ #define PFTM_TCP_FIRST_PACKET_VAL 120 /* First TCP packet */ @@ -503,7 +526,7 @@ struct pf_rule { pf_osfp_t os_fingerprint; int rtableid; - u_int32_t timeout[PFTM_MAX]; + u_int32_t timeout[PFTM_OLD_MAX]; u_int32_t max_states; u_int32_t max_src_nodes; u_int32_t max_src_states; diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c index bd005893f7c8..44b0bccc7489 100644 --- a/sys/netpfil/pf/pf_ioctl.c +++ b/sys/netpfil/pf/pf_ioctl.c @@ -354,6 +354,11 @@ pfattach_vnet(void) my_timeout[PFTM_TCP_CLOSING] = PFTM_TCP_CLOSING_VAL; my_timeout[PFTM_TCP_FIN_WAIT] = PFTM_TCP_FIN_WAIT_VAL; my_timeout[PFTM_TCP_CLOSED] = PFTM_TCP_CLOSED_VAL; + my_timeout[PFTM_SCTP_FIRST_PACKET] = PFTM_TCP_FIRST_PACKET_VAL; + my_timeout[PFTM_SCTP_OPENING] = PFTM_TCP_OPENING_VAL; + my_timeout[PFTM_SCTP_ESTABLISHED] = PFTM_TCP_ESTABLISHED_VAL; + my_timeout[PFTM_SCTP_CLOSING] = PFTM_TCP_CLOSING_VAL; + my_timeout[PFTM_SCTP_CLOSED] = PFTM_TCP_CLOSED_VAL; my_timeout[PFTM_UDP_FIRST_PACKET] = PFTM_UDP_FIRST_PACKET_VAL; my_timeout[PFTM_UDP_SINGLE] = PFTM_UDP_SINGLE_VAL; my_timeout[PFTM_UDP_MULTIPLE] = PFTM_UDP_MULTIPLE_VAL; From nobody Tue Nov 7 17:58:58 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPwvQ5fGGz4ym79; Tue, 7 Nov 2023 17:58: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPwvQ5Bgyz4G3w; Tue, 7 Nov 2023 17:58:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699379938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aG4fRcQMGsAjw7iOlwGsJMepewtQqdOB0WfJ9uHnAGE=; b=K5ErxGA7+Hg1g4FHwRktUZWyJWLKeThrcz3awAVoTMt5t175DoyoAEF1B4S0Ev+wOMmK4C R+EN1LRu5DCh40ArHWQJ0NNEwmLIJO5pGSkoIpIYThtHBCmE3YcSaR7MX/8IrcAmCrSNZ6 ud+xqcRmWy9r9zgDVyV+zXNbNsMwldrdrARHDAbvL7sr/2mSO5IyNXWpwJTyfkuQuufhvN TE9ea8ctFbC/HcmsGjxYq/6/EI3ooECbcTiwihWyCVBuGtgosDIOlA2+HxORRexpmyODm5 WXpWYdSpvvnR7zvKYylAnDPdx1v4fLhJMqwl0LMQxbYuC38LCTqhGxBV+ADZgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699379938; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aG4fRcQMGsAjw7iOlwGsJMepewtQqdOB0WfJ9uHnAGE=; b=NZ8qHe/7ItA/G/4wV1qLu/7PaV8qemnaPpasaETI2tfyetSdJAiFG2Rm8um/n5IOyL0lf5 BwRl6+lh1WTuiWl8pCWxQCKDMgVo9rKBspmBKX4GHGQY0dxRggnsWIJUDIevRTs1Z0KGn2 iesJ3dRVGe5PoUArxWRe9PfHlDxLASAlZjnRPvqGHkFaGFCPs3fj8Owi7W39JMziigbumh VB4wAAWiQi20+iB2Sge3YM1r0Bvno+YeR8vFgSvrdaiHj6p96Zerg4uA1ZZobIWJm4qyf6 dpkUEk8JUkwklPZxvbwjwWfRk6v8xla94SihllBw0k9rO0170l4tse6hdFrSvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699379938; a=rsa-sha256; cv=none; b=rOsevyZtiKDvnZKdoGeNBiuvEbwdawh4IAB4SekHP9c8DwEpxaZfRxhDqmr06i0zbxgfyd 4fCD67jQ4KbhiOhiEHz7sG59VpS4ZnZDjPEOn0OcY0KXTcc2bijMuyG30OwTjLpyhmLni4 J4Y4WZI2c02rPT2gyJM7Ax2LRo7Wxrg9DDn+u07MYZkpPdkFVW0axmcbjeuNphpSfhBEVX N6ohw2unXS13fIEgLjUqHPx8A+FLQ9+Rtzwo8lHsBvu76EV0bl4XGbDmJliyv6HwCtjriP alF2rg7kWntdG8ok7QgBj70mfs37bUELcl1cBbM2tSVxfdKWCwQnP0LgbTQQpw== 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 4SPwvQ4H77z10Fs; Tue, 7 Nov 2023 17:58:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7HwwNj087484; Tue, 7 Nov 2023 17:58:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Hww0Q087481; Tue, 7 Nov 2023 17:58:58 GMT (envelope-from git) Date: Tue, 7 Nov 2023 17:58:58 GMT Message-Id: <202311071758.3A7Hww0Q087481@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: abe12d2f4ce3 - stable/14 - libc: remove unused errno.h include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: abe12d2f4ce31c3da0961b1b0a58df11f5a41e19 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=abe12d2f4ce31c3da0961b1b0a58df11f5a41e19 commit abe12d2f4ce31c3da0961b1b0a58df11f5a41e19 Author: Ed Maste AuthorDate: 2023-11-07 15:00:35 +0000 Commit: Ed Maste CommitDate: 2023-11-07 17:29:20 +0000 libc: remove unused errno.h include errno.h was added in 44cf1e5eb470, which has been reverted. Fixes: d09a3bf72c0b ("fflush: correct buffer handling in __sflush") Sponsored by: The FreeBSD Foundation (cherry picked from commit 418f026bd5a5084c1c4e2e91ad38051f6caa928c) Approved by: so --- lib/libc/stdio/fvwrite.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index 26245acca1c9..dd170ee3d7dc 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -36,7 +36,6 @@ static char sccsid[] = "@(#)fvwrite.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -#include #include #include #include From nobody Tue Nov 7 17:58:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPwvR72xdz4ylvj; Tue, 7 Nov 2023 17:58: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPwvR6R43z4GDy; Tue, 7 Nov 2023 17:58:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699379939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8ILRvpK3OeTyuvY1d4hqP1l7RwDElm6GOLltn/ihFVE=; b=pqAxDKekr1JNomEUJhPRL+9FKaq2NsLbkNK6jMzMCGKzj45upAXHcCRAOUrT1FKL24Ixtc m8pdH55YCFtO+qiYONkaWUsCAhVA5nfqz+gj9mei1aVW2Pl06qqAChNjLBf5iTXp7kcl9Z Zb05cDYuumHEzxwsZckgp1taoxyDx9emC7ADmEtKqkD2V0bqV45VLul1qT79PwsfLZpIIX h/dsSa35X5ju4jjkhkcnFzyL/VYgb3YWHzLN+EqDNDi5mCC+KPbJyibR1Sd4qvTz4T0ybq nChZV1h4H7F6sbSnIgdWlr/DRQ5CER8FoDVoabtVxA1/JP6KEjIxicY+zDEUGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699379939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8ILRvpK3OeTyuvY1d4hqP1l7RwDElm6GOLltn/ihFVE=; b=txYijMGb0AfZ77Zg8vKXa5koCnk1WD+19nsanbCaQEiNQKczKvx4Gr5DfarQ7L0tCBel8K /cBGeDRHLwN7vMZ1SKhLIowZEYYhQ8jb4hfJsa7yZD+op+6IDqJFlqbkYBtD5A7zXr5E81 HxpttJR7Stv76aMoXykvK1z7HC4iR5hUQQlQ405k/sXuRhNMLgbj0CdNPP/rQBKE/CO1yI hqSrksd3X11DdwSnE47pzb+Im+5Qo1gdSxLCrrlgIr04sUnEH/YhgJVSAZdJjFPUxexGMT CD4db4iJjKJrEitYQwUStJA3lN2ADBeqhsWlrVHWJYgKe6ngx1+B71uzb61Fvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699379939; a=rsa-sha256; cv=none; b=jhzB5fxWPMdmboLrNve2pbCG71TPd7FF0EnN0YsYCrxvC0b17wPCZFzOM+ujm2C/WgsceM U2bjoedQEMaamSd09+j1swLB/90Mp4rfPTBaNG22qrgNiLNFmkT7p9nJ3IOs81ve+UU03u +KxvwC2gD7u7+3KiFYU+cQPmV9EJ7bAwzlzXm6MuTcrrHEzSqFp39t6icCZslquK5/5qCy Pk4353J7kN+snYYwH/n4JiCo0ozXp/reZIJ14s66KA3PytR/5WCPGPo2K0UEcKatNdLgho vOZX4J5G7K60ckK4zhIn2XZr/cnI+4jqm9+zFAE0Q5D54U7+GrfEP/3tvLsRIA== 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 4SPwvR5Fpnz10nw; Tue, 7 Nov 2023 17:58:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7HwxoS087535; Tue, 7 Nov 2023 17:58:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7HwxTd087532; Tue, 7 Nov 2023 17:58:59 GMT (envelope-from git) Date: Tue, 7 Nov 2023 17:58:59 GMT Message-Id: <202311071758.3A7HwxTd087532@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: d2c65a1c9486 - stable/14 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: d2c65a1c948648f11342274029a3f18b90aa58d2 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d2c65a1c948648f11342274029a3f18b90aa58d2 commit d2c65a1c948648f11342274029a3f18b90aa58d2 Author: Ed Maste AuthorDate: 2023-11-07 14:16:13 +0000 Commit: Ed Maste CommitDate: 2023-11-07 17:31:34 +0000 fflush: correct buffer handling in __sflush Two additional stdio changes followed 86a16ada1ea6 and need to be reverted as part of the fflush fix. This reverts commit 6e13794fbe6e82c21365d0fd66769bf8b19c0197. This reverts commit bafaa70b6f9098d83d074968c8e6747ecec1e118. Fixes: d09a3bf72c0b ("fflush: correct buffer handling in __sflush") Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42491 (cherry picked from commit 4e0e01bf6511c28212d7dff94fe131a502e13026) Approved by: so --- lib/libc/stdio/fvwrite.c | 13 ++----------- lib/libc/stdio/wbuf.c | 12 ++---------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index dd170ee3d7dc..acf8f72076cf 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -52,7 +52,6 @@ int __sfvwrite(FILE *fp, struct __suio *uio) { size_t len; - unsigned char *old_p; char *p; struct __siov *iov; int w, s; @@ -136,12 +135,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ /* unneeded */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (len >= (w = fp->_bf._size)) { /* write directly */ w = _swrite(fp, p, w); @@ -180,12 +175,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (s >= (w = fp->_bf._size)) { w = _swrite(fp, p, w); if (w <= 0) diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index 808cfa588cfb..558322b4001e 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -50,7 +50,6 @@ static char sccsid[] = "@(#)wbuf.c 8.1 (Berkeley) 6/4/93"; int __swbuf(int c, FILE *fp) { - unsigned char *old_p; int n; /* @@ -86,15 +85,8 @@ __swbuf(int c, FILE *fp) } fp->_w--; *fp->_p++ = c; - old_p = fp->_p; - if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { - if (__fflush(fp) != 0) { - if (fp->_p == old_p) { - fp->_p--; - fp->_w++; - } + if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) + if (__fflush(fp) != 0) return (EOF); - } - } return (c); } From nobody Tue Nov 7 18:44:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPxvX03RNz4yxMH; Tue, 7 Nov 2023 18:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPxvW6QHBz4Mt9; Tue, 7 Nov 2023 18:44:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699382647; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5Nsz9jC6gRcEG0PkLlnXc8zLKJXq+mxW8S72L0cMlnc=; b=hMpR4bNZ9UjFrn9S4+23D+u2xZ4+FyUrcQmjPgLhDaD9+rWwhpj8iDlJQfhCam019JKMwf /8DNq7RPrEzIvk9honsvysWqsQz1Cjry/YWD1lGaxBA5i/kuQJWlcvkCGOoSSZG/aLH+C7 Jh/18ckXuAK+p4+/rUXwe5udwYNXLkEOB36LaQQ9wHMrG6xLF1d1bp4GMOhYVWT6gjogBz iyaLlBaJqRz5iKAd5doCWKcArVWGlfjk/KM3FMWy56fM6e/Oray3+iZT8dP3lhfkQXuTVd 6uzvT1FvFbyrDx/5bmiarycmkL40jujn/bwwF54sEJ0QQFlLZwbsDNbu4DhOuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699382647; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5Nsz9jC6gRcEG0PkLlnXc8zLKJXq+mxW8S72L0cMlnc=; b=XTTpIflyogaCQdDmxc8ludfwlIeMtbciPGZNDxr3Xa5sF6/WO0rA/SvHQ8Tn+GCRg0sM2I tWtqxImTstss1Ce8aHjA/YIFmKg1t0cCiBSbuTB4llejvj9c9P44v0wX1nWk7QR3vM2EKz prf8tRRfKL8wPT+4dXLrMDWDZpQuRSoZK+4K33J1LYfJ9ooAIh5rMO13vTTDljp8sqUv1Q GejGuEMMg3nkHDBm4ZMf0kuX8GaZ9wseB4GnCfdnURZaUgJN81uexfGSbzBr05objhpAPm +XGNtXahoBEbNrbl/xmgWqlCKKsJAcm3wzIBa4Pg/r7CPbojWehxUqzrrBDzsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699382647; a=rsa-sha256; cv=none; b=YySnTKck8bJusUDG6ebQC90kCiirf+EkFJDRN0WLSiUcHOyfu/ns16JWvP7Hl7E+pV1mYj +qXf8ckJhzXjbioBvcEbNtbOnv4AqPzzg7Bh2O4fvuSkDppdUeCUWqoQ+LxbGhZAC8eACh LR9Bhn30WQl+Uf3DHA5DB/xM9vgKYnYdJ0yLtaZE8zzia3RyUXoZQnyrRpU41RQI33gJcd vqgAD4HABOvwam0McjQHHNvIgBuKO27dStThgicvnLgM2t1f0c7mPrNKMkcEsX7yW9wJdC djxCtsOQp55POiB619siogEagTJcUZ/mPpRAZquztF9exDJqLrkg2VSP9hGNjw== 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 4SPxvW5V0Yz11KV; Tue, 7 Nov 2023 18:44:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7Ii70s070836; Tue, 7 Nov 2023 18:44:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Ii7vr070833; Tue, 7 Nov 2023 18:44:07 GMT (envelope-from git) Date: Tue, 7 Nov 2023 18:44:07 GMT Message-Id: <202311071844.3A7Ii7vr070833@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: 59ec3ffdd7ce - stable/13 - libc: remove unused errno.h include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 59ec3ffdd7ce85f32ea833e8024f7bacd36d4e97 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=59ec3ffdd7ce85f32ea833e8024f7bacd36d4e97 commit 59ec3ffdd7ce85f32ea833e8024f7bacd36d4e97 Author: Ed Maste AuthorDate: 2023-11-07 15:00:35 +0000 Commit: Ed Maste CommitDate: 2023-11-07 18:41:49 +0000 libc: remove unused errno.h include errno.h was added in 44cf1e5eb470, which has been reverted. Fixes: d09a3bf72c0b ("fflush: correct buffer handling in __sflush") Sponsored by: The FreeBSD Foundation (cherry picked from commit 418f026bd5a5084c1c4e2e91ad38051f6caa928c) (cherry picked from commit abe12d2f4ce31c3da0961b1b0a58df11f5a41e19) Approved by: so --- lib/libc/stdio/fvwrite.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index 26245acca1c9..dd170ee3d7dc 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -36,7 +36,6 @@ static char sccsid[] = "@(#)fvwrite.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -#include #include #include #include From nobody Tue Nov 7 18:44:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SPxvY36zPz4yxPc; Tue, 7 Nov 2023 18:44: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SPxvY0X2Sz4MtS; Tue, 7 Nov 2023 18:44:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699382649; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KZxEroMRjPMmj/ozMY5kD4sENh6fXdaM+Ukq81xOHGs=; b=X43DhPyGb4ezAEka76VWn8fWTw3KSEfKbjiJj0BO/67T804EuJ0KvSsdPo+iM3wh0MX2G/ I6Qzy9c53f2dH8+pEXqSXGPqdV3SIKi70VZIK5Pu+MVLvLrX5c4srxds7aypqLECZP3kV3 LYyUh9UraEPYkmoCf93n9cEXoQ24c4QvdzWTcjL0lLGrizihw5vdAMDgiCsR07bGpieHad hNeMpfgCdksFPxsVyF5pFB5YW5CrV5o5GlWX62ztUXoH/pJcGb/l2h/S5GlLG8DWjA8Te4 jJbsauNBnv/Rooj2bukAEng8e98gBmPnZ2R+gxN9nkAQrAVoObr3ddI4QhtrNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699382649; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KZxEroMRjPMmj/ozMY5kD4sENh6fXdaM+Ukq81xOHGs=; b=KZJh5R1t+pN0fd3P3ZWZXxeOs5idFUj30l46gD67CXDqaL9PsHPOGHSNZBY9BqmO6gNGy9 Rf73zQd1fhKjjLxpxnYRtmlJhggtPwnqS1aONpOc7pZbHU2v9IpveOraLzo1Z3iFnDikcD dGweI+TlVJruWuwv+0R8TT+B7ymdyvkhxZm2yGizJcqlxPT2XeaA1YrBegLl63kabG9UUt TXxaxoZRD76JNsPzA8oij4UWQobMoLL3lsh2r3m2h2vsZoNdyiXII3N+H8Ohh8kzo5T3wc Oh2EkUBzrB1XbFgnsEpS/2DW/Df7B6nmGhQI8ceJH4pAnbgZzyLP+Hjcr+WNeA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699382649; a=rsa-sha256; cv=none; b=sJFkigeT2huuLQy/JeySIlrAvT+W+kdjbn915jwADj650HBt0vIca3usFjunItogbukdOh ssOSmzUJNVUNsCryZyUlWP2JDBPJ3Xpb+wZcYu4ySoa92NV5acBZNODQr7M2l7xSfDxkn7 cMFBay2gf12dvr9lJwZF6tf45Lq0IEIe9rS0Gzj6ogkTdTBr2WphHyZuil7iiazNEmaKn3 KYAUVOaJfZbC0nAhMf6W5BkAkXY8tZINj7nIM0qHEvb6DG+zz6T93idhrQYIK4uxlanf6h iQA5Nr18Te7o7KegITvnua+7ei1qC31exo61BC/FKpmcbpeKH4MQt07bHEM8TA== 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 4SPxvX6ScVz11tS; Tue, 7 Nov 2023 18:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A7Ii8JX070887; Tue, 7 Nov 2023 18:44:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A7Ii8Go070884; Tue, 7 Nov 2023 18:44:08 GMT (envelope-from git) Date: Tue, 7 Nov 2023 18:44:08 GMT Message-Id: <202311071844.3A7Ii8Go070884@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: 0b7939d725ba - stable/13 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 0b7939d725ba0ca903c5f8a3ca6d74347eb88690 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=0b7939d725ba0ca903c5f8a3ca6d74347eb88690 commit 0b7939d725ba0ca903c5f8a3ca6d74347eb88690 Author: Ed Maste AuthorDate: 2023-11-07 14:16:13 +0000 Commit: Ed Maste CommitDate: 2023-11-07 18:41:55 +0000 fflush: correct buffer handling in __sflush Two additional stdio changes followed 86a16ada1ea6 and need to be reverted as part of the fflush fix. This reverts commit 6e13794fbe6e82c21365d0fd66769bf8b19c0197. This reverts commit bafaa70b6f9098d83d074968c8e6747ecec1e118. Fixes: d09a3bf72c0b ("fflush: correct buffer handling in __sflush") Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42491 (cherry picked from commit 4e0e01bf6511c28212d7dff94fe131a502e13026) (cherry picked from commit d2c65a1c948648f11342274029a3f18b90aa58d2) Approved by: so --- lib/libc/stdio/fvwrite.c | 13 ++----------- lib/libc/stdio/wbuf.c | 12 ++---------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index dd170ee3d7dc..acf8f72076cf 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -52,7 +52,6 @@ int __sfvwrite(FILE *fp, struct __suio *uio) { size_t len; - unsigned char *old_p; char *p; struct __siov *iov; int w, s; @@ -136,12 +135,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ /* unneeded */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (len >= (w = fp->_bf._size)) { /* write directly */ w = _swrite(fp, p, w); @@ -180,12 +175,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (s >= (w = fp->_bf._size)) { w = _swrite(fp, p, w); if (w <= 0) diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index 808cfa588cfb..558322b4001e 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -50,7 +50,6 @@ static char sccsid[] = "@(#)wbuf.c 8.1 (Berkeley) 6/4/93"; int __swbuf(int c, FILE *fp) { - unsigned char *old_p; int n; /* @@ -86,15 +85,8 @@ __swbuf(int c, FILE *fp) } fp->_w--; *fp->_p++ = c; - old_p = fp->_p; - if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { - if (__fflush(fp) != 0) { - if (fp->_p == old_p) { - fp->_p--; - fp->_w++; - } + if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) + if (__fflush(fp) != 0) return (EOF); - } - } return (c); } From nobody Wed Nov 8 00:45:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ5wy682kz4yvLm; Wed, 8 Nov 2023 00:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ5wy5N3Hz3R83; Wed, 8 Nov 2023 00:45:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/TqTekpTpzNEss4luzw/5b7nZ+4P2bRA41BuN+CGsFo=; b=i1X+ZOjlpRGy5p6o2Spa3UHMuxX7unxEmNSPMGJr3qVti7cYyZ+oj19DwDg+7IN6bknPwX ohQ8v1rjlFZwbxf37N89DU2341gqo3DzbJzG4lNyEpUk6U1vyBq9jL7nfl0uC/FAriUg9u CzdrSaPQQ7RiX1gqk6tBag1MzCdJE8UjcIj1VO1UMkG/oZ4IH8NJTTpDwGcbSFu1mT06zE IL1Ywx8N/yWRK4KJQEAcuigX89BTU83/aZ87fJ4EJCTvGxU/Q6fQURn2GTcFNk8myrM3Fv I7Jwfc8nmY1sNyIUGlyNn0r1/xwMwKlUNn3Xo6OLcEh4hiWiGzgqd0x9hWvOgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/TqTekpTpzNEss4luzw/5b7nZ+4P2bRA41BuN+CGsFo=; b=J4CJK0laGpIxGfWDGV5+tsM3aD1LwN0sHz+FdPdJ8xNflIOHndZrVfSlYklWcd+lyCWgo5 xQNMy6vSjWnROXXJ0NdWTj93DSGVZZkRY0J4cA273avDaIxVZ3TkEn0fDuMpJB3IpBmEWI 4MOtwHzqynU5vX2s7MeuLGZ4rs5uG7ECnlRjZL6al/E01DCv9iXmcJ4yov52cmg83q3cSu OiBxwdRXmrILAWl1CwL/In7dbog0LCDupmWx5d4GFJk7XCnDaIXcTm1xPV8yEUNjmkal0m jMp/klHL9kPjoinSzvyg/oQcPJpaG9JhA4qUwJS72WHs0hIrYS11DdMByCSWwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699404354; a=rsa-sha256; cv=none; b=MGp289IbbQ7eT4GqtebEyt59lUwzvfax7YSTlYIFK9I5A8NPHEIxGbykPa2yzEDMhbpP52 stTPpD7PNVPD9jhGtANpZHeyahuPc3AVCqCIuL3J1R2bVccEVf++egmht4ndRvYmqw21SG oYlw/kq1wZ9kEQRidaUaSMr5OPWTilE9GTHhIBowuBQy7DWQK7CGHIGEBsc5vLWvYc6Nic da8dwfmFbUIOoE6Ja9/kju7WUP1X2bp5UbYBCm5X9fS8ewKsBcG9yKWwpSaOiu9KSmA3Dx HTvGPb7GHrZpTsXpntlLtvyapGmFXTJpPvIgxQcocrBeLNminUpnLkcYZmcwew== 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 4SQ5wy4SB6z1BQf; Wed, 8 Nov 2023 00:45:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A80jsKD071168; Wed, 8 Nov 2023 00:45:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A80jsVZ071165; Wed, 8 Nov 2023 00:45:54 GMT (envelope-from git) Date: Wed, 8 Nov 2023 00:45:54 GMT Message-Id: <202311080045.3A80jsVZ071165@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: 1f9c4610dde5 - releng/14.0 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 1f9c4610dde5ecda4ad219b19f16ec712bc1d793 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=1f9c4610dde5ecda4ad219b19f16ec712bc1d793 commit 1f9c4610dde5ecda4ad219b19f16ec712bc1d793 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:45:25 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) (cherry picked from commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd) (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) (cherry picked from commit 92709431b14df6c0687446247ac57cfc189ee827) (cherry picked from commit 418f026bd5a5084c1c4e2e91ad38051f6caa928c) (cherry picked from commit abe12d2f4ce31c3da0961b1b0a58df11f5a41e19) (cherry picked from commit 4e0e01bf6511c28212d7dff94fe131a502e13026) (cherry picked from commit d2c65a1c948648f11342274029a3f18b90aa58d2) Approved by: so Approved by: re (implicit) Security: FreeBSD-SA-23:15.stdio Sponsored by: The FreeBSD Foundation --- lib/libc/stdio/fflush.c | 27 ++++++++++----------------- lib/libc/stdio/fvwrite.c | 14 ++------------ lib/libc/stdio/wbuf.c | 12 ++---------- 3 files changed, 14 insertions(+), 39 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index a7f9348def50..61f23335106f 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -103,11 +103,11 @@ __weak_reference(__fflush, fflush_unlocked); int __sflush(FILE *fp) { - unsigned char *p, *old_p; - int n, t, old_w; + unsigned char *p; + int n, f, t; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -119,26 +119,19 @@ __sflush(FILE *fp) * Set these immediately to avoid problems with longjmp and to allow * exchange buffering (via setvbuf) in user write function. */ - old_p = fp->_p; fp->_p = p; - old_w = fp->_w; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - /* conditional to handle setvbuf */ - } else if (p == fp->_p && errno == EINTR) { - fp->_p = old_p; - fp->_w = old_w; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index 81e7ba89a644..acf8f72076cf 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -36,7 +36,6 @@ static char sccsid[] = "@(#)fvwrite.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -#include #include #include #include @@ -53,7 +52,6 @@ int __sfvwrite(FILE *fp, struct __suio *uio) { size_t len; - unsigned char *old_p; char *p; struct __siov *iov; int w, s; @@ -137,12 +135,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ /* unneeded */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (len >= (w = fp->_bf._size)) { /* write directly */ w = _swrite(fp, p, w); @@ -181,12 +175,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (s >= (w = fp->_bf._size)) { w = _swrite(fp, p, w); if (w <= 0) diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index acbe379ad90e..558322b4001e 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -50,7 +50,6 @@ static char sccsid[] = "@(#)wbuf.c 8.1 (Berkeley) 6/4/93"; int __swbuf(int c, FILE *fp) { - unsigned char *old_p; int n; /* @@ -86,15 +85,8 @@ __swbuf(int c, FILE *fp) } fp->_w--; *fp->_p++ = c; - old_p = fp->_p; - if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { - if (__fflush(fp) != 0) { - if (fp->_p == old_p && errno == EINTR) { - fp->_p--; - fp->_w++; - } + if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) + if (__fflush(fp) != 0) return (EOF); - } - } return (c); } From nobody Wed Nov 8 00:45:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ5wz6fzhz4yvXJ; Wed, 8 Nov 2023 00:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ5wz62rPz3RBb; Wed, 8 Nov 2023 00:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ff0rTKAqnF4nPrMFvI5Gh1uFsPBW0cKY/y8zCOYXl8Y=; b=F+Ap34aX46qOfCyw0M3tsDhK8rqawgoiZWt6DaY4wGW3gLtbojWsP3jMkif1wLSqKt5Fxc 4c2hXcY+Mz9fsZh9Mks2xEvz//yJoIKdlW805K10ZM3Uax/9sOr26V4bRsH7c8XE4yFlai v7Tk8VZAd0fxbYOX9+lTbp9Pg37/Hh4YURZ9Td0aVaa+UFqlwWJ/DGzF+FL8klvDwmnBzB fl4LjglGZPI3M0IvPBfYvciQU4PYeVMgqPZGgzntwueStUGm8sDYn5OF2JUc12RU3rXaNR B3cb98Nk9Wq999m3jEOMoawclwP9qE67TC295vcRdJDaYM59hzf2T2XmRnH1Kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ff0rTKAqnF4nPrMFvI5Gh1uFsPBW0cKY/y8zCOYXl8Y=; b=H70HE2yKqcreacRQImKdIaa7UYZtUybf4ySEZCLhLUY0whkM6PVJeLy9e9glzBccmeLZB2 ixM4/HAvftlkGtjCxTKb8vOTF5bIo+8RvJZLN05ZsX+pnWlnJe3jpA1Kut+1mvAHhxxeYX X735ky/uD0ZKK0yRqoUWwAy4DqpCCQitqXn2sHGWuecfuO10RrW3ezYZyTxSTJNhyaBEd9 F+4ERYu//bSEIKllYthURRwYd3TlnYEFqZvUFNjmZmAH4SSkArBvGJRlSDw5s3/LFWUZ4w AnlF7YcVcBXnTtIxogaKkTsXb6L/TR0DJ89XZbUCh45W+cE0RXBkNOyl305Tog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699404355; a=rsa-sha256; cv=none; b=uL/677r0/o6ZM4NTzr3iHoAwxgY4HsGObEjfSCdZa0Tn9InKREAfRQq8ayTM71IqaDH5xp wmNEQscDrbYngwUNMCd4AuD3gcQ9uonLIdwp7nPnW1wQn2GuG8VaBW5PcpcB50OLAKv9xG PR7UStN+LSbXFtxRtW2G0R/SNt+4ThUJJetYGdDXv7w3BFdfuCv2r1TjVs0b0tApXCXLhn 82+59bVeWFV2h7wRFiITcPhoS+5pq/nntyCqZ0Doy0tHKvjtrAQwhMTy/Bfj1+L+Ghtrcq mHSIqXNigqqXxTEW21BAZUmXMPWtxgqqS3TaXUZzGjwI3R9K5A0aLHXgyhFNRw== 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 4SQ5wz5871z1BnZ; Wed, 8 Nov 2023 00:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A80jtSK071222; Wed, 8 Nov 2023 00:45:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A80jtvY071219; Wed, 8 Nov 2023 00:45:55 GMT (envelope-from git) Date: Wed, 8 Nov 2023 00:45:55 GMT Message-Id: <202311080045.3A80jtvY071219@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: 5f4fc91cc87c - releng/14.0 - cap_net: correct capability name from addr2name to name2addr List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 5f4fc91cc87c99d9995fd05e6029960d692bb397 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5f4fc91cc87c99d9995fd05e6029960d692bb397 commit 5f4fc91cc87c99d9995fd05e6029960d692bb397 Author: Mariusz Zaborski AuthorDate: 2023-10-23 21:03:51 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:45:34 +0000 cap_net: correct capability name from addr2name to name2addr Previously, while checking name2addr capabilities, we mistakenly used the addr2name set. This error could cause a process to inadvertently reset its limitations. Reported by: Shawn Webb (cherry picked from commit afd74c400075d94e01dd3430844bb290834660ef) (cherry picked from commit 765757c6301fa41c0b59108347c600fbc9020c39) Approved by: so Approved by: re (implicit) Security: FreeBSD-SA-23:16.cap_net Sponsored by: The FreeBSD Foundation --- lib/libcasper/services/cap_net/cap_net.c | 2 +- lib/libcasper/services/cap_net/tests/net_test.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index bbb2a666440f..a8f039f81843 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1232,7 +1232,7 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, oldfunclimits = NULL; if (oldlimits != NULL) { oldfunclimits = dnvlist_get_nvlist(oldlimits, - LIMIT_NV_ADDR2NAME, NULL); + LIMIT_NV_NAME2ADDR, NULL); } cookie = NULL; diff --git a/lib/libcasper/services/cap_net/tests/net_test.c b/lib/libcasper/services/cap_net/tests/net_test.c index 5522f92516eb..dcb897de467b 100644 --- a/lib/libcasper/services/cap_net/tests/net_test.c +++ b/lib/libcasper/services/cap_net/tests/net_test.c @@ -783,6 +783,18 @@ ATF_TC_BODY(capnet__limits_name2addr_hosts, tc) limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); ATF_REQUIRE(cap_net_limit(limit) != 0); + /* Try to extend the limit. */ + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_0, NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + cap_close(capnet); } From nobody Wed Nov 8 00:53:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6586X7Pz4ywB0; Wed, 8 Nov 2023 00:53: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ65862vhz3S3B; Wed, 8 Nov 2023 00:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hrda63ZbMDLXv8oaH/qU2D+xb9AesFJFyIo8WH9wtu0=; b=jEsVO8kgQ+gZSborcbOFRDTEu6NjbMlHnUF5l7m/966bPQbjNnzUVN0hQZgRoENrAZyNUi DW2pwmRJnaCwfhEmXpzp7pzTN7JMppAZDhEw5AsOf/zUR1r8v1z6+xNqGJYP4fJJx7TXf1 KP9EHe8OObIg+rutBBMsKD1idqwgThE1CZzKuobSyBjxWuKe5HJU/wyUDOuS+wWDf9hKNZ WNY18YQkw58HwTms5qVvN6A0+eqJ9GnCq1RkWKhXYjarzL0i2TabLIpt9DWdsXI3CY7D13 NsiEeJPkZ4Y/ewG4Pp3J3BVs68LK4PnISBSi1MUe4CzaoehJNBmiod4rPZXVCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hrda63ZbMDLXv8oaH/qU2D+xb9AesFJFyIo8WH9wtu0=; b=Oc/c+ERHXzs7HZo6wLUAamuqooJMlk1roIpoRYaVPwKmaZ5xtge36LGO1t3dyM/0cInOk5 cT+RsKH1xq7XmlSbjpPHd0T8t0uqe57Hn8iubIK34jtRy6tMAVB22mv9biRV3k2LuTStbG dAgKbTIFZQV1edS4oRk298UzYvNtZCqz1naZZHbeGTXbUbbcHKvbY+sOs+nx78J51ksrhM d2ybJhEgi5/JXGUJoZv6r6p6vsAuB3s4m09gcw3vAkMPcTHc1c/uGs5i3pc57JGV923gqI SC0KaK+P0yWplb24PSZc+VWvA9ViYffmDesCp8MlT1EBGIeUcr1TPcJOGIMdsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699404780; a=rsa-sha256; cv=none; b=PLSQKYZ25TtOte0FDyq1EV9I9UdUDjtAkwW/iBFkhmM8cODpsPZlEXveHlu0lHMT/rARvN kbOxvpFJIhBH6ybhlROYHv5VygjHPgHeSvwoLWaVz9/+F2qdrgf9bIRQFof/U8KkG3bfkk yN7ph4b/D2mMF1Qm1Of7aHKxFPusY9V1yQL5I4fLsWyHTjWZ3Qt+vQeoVY2c2XSuPypH8f L30lmKLhETmwNKMIDJcF/5bMhPDOhP6pT+1ah6yW5HlssdUD9RTyvXe7hz1IWpDNM4rKBd 0580ZaMKXqsyagvgg2d8VFhF7noRLx9S+mdzO70ZoF7pHgTviRO0zPVqga7ShQ== 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 4SQ658563Lz1C5c; Wed, 8 Nov 2023 00:53:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A80r0b9087348; Wed, 8 Nov 2023 00:53:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A80r0wu087345; Wed, 8 Nov 2023 00:53:00 GMT (envelope-from git) Date: Wed, 8 Nov 2023 00:53:00 GMT Message-Id: <202311080053.3A80r0wu087345@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: d51a39b13ee4 - releng/13.2 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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.2 X-Git-Reftype: branch X-Git-Commit: d51a39b13ee4de5410f6c01a357eafc6248f6724 Auto-Submitted: auto-generated The branch releng/13.2 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d51a39b13ee4de5410f6c01a357eafc6248f6724 commit d51a39b13ee4de5410f6c01a357eafc6248f6724 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:48:03 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) (cherry picked from commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd) (cherry picked from commit ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4) (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) (cherry picked from commit 92709431b14df6c0687446247ac57cfc189ee827) (cherry picked from commit 6cb5690b3495741e9ece6f42ba4a85732932aa83) (cherry picked from commit 418f026bd5a5084c1c4e2e91ad38051f6caa928c) (cherry picked from commit abe12d2f4ce31c3da0961b1b0a58df11f5a41e19) (cherry picked from commit 59ec3ffdd7ce85f32ea833e8024f7bacd36d4e97) (cherry picked from commit 4e0e01bf6511c28212d7dff94fe131a502e13026) (cherry picked from commit d2c65a1c948648f11342274029a3f18b90aa58d2) (cherry picked from commit 0b7939d725ba0ca903c5f8a3ca6d74347eb88690) Approved by: so Approved by: re (implicit) Security: SA-23:15.stdio Sponsored by: The FreeBSD Foundation --- lib/libc/stdio/fflush.c | 27 ++++++++++----------------- lib/libc/stdio/fvwrite.c | 14 ++------------ lib/libc/stdio/wbuf.c | 12 ++---------- 3 files changed, 14 insertions(+), 39 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index f59565abd369..75f145fae6a3 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -105,11 +105,11 @@ __weak_reference(__fflush, fflush_unlocked); int __sflush(FILE *fp) { - unsigned char *p, *old_p; - int n, t, old_w; + unsigned char *p; + int n, f, t; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -121,26 +121,19 @@ __sflush(FILE *fp) * Set these immediately to avoid problems with longjmp and to allow * exchange buffering (via setvbuf) in user write function. */ - old_p = fp->_p; fp->_p = p; - old_w = fp->_w; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - /* conditional to handle setvbuf */ - } else if (p == fp->_p && errno == EINTR) { - fp->_p = old_p; - fp->_w = old_w; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index b1b363e6f80d..50b32b8eca6e 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -38,7 +38,6 @@ static char sccsid[] = "@(#)fvwrite.c 8.1 (Berkeley) 6/4/93"; #include __FBSDID("$FreeBSD$"); -#include #include #include #include @@ -55,7 +54,6 @@ int __sfvwrite(FILE *fp, struct __suio *uio) { size_t len; - unsigned char *old_p; char *p; struct __siov *iov; int w, s; @@ -139,12 +137,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ /* unneeded */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (len >= (w = fp->_bf._size)) { /* write directly */ w = _swrite(fp, p, w); @@ -183,12 +177,8 @@ __sfvwrite(FILE *fp, struct __suio *uio) COPY(w); /* fp->_w -= w; */ fp->_p += w; - old_p = fp->_p; - if (__fflush(fp) == EOF) { - if (old_p == fp->_p && errno == EINTR) - fp->_p -= w; + if (__fflush(fp)) goto err; - } } else if (s >= (w = fp->_bf._size)) { w = _swrite(fp, p, w); if (w <= 0) diff --git a/lib/libc/stdio/wbuf.c b/lib/libc/stdio/wbuf.c index 666bbf87aadd..deb111162741 100644 --- a/lib/libc/stdio/wbuf.c +++ b/lib/libc/stdio/wbuf.c @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); int __swbuf(int c, FILE *fp) { - unsigned char *old_p; int n; /* @@ -88,15 +87,8 @@ __swbuf(int c, FILE *fp) } fp->_w--; *fp->_p++ = c; - old_p = fp->_p; - if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) { - if (__fflush(fp) != 0) { - if (fp->_p == old_p && errno == EINTR) { - fp->_p--; - fp->_w++; - } + if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) + if (__fflush(fp) != 0) return (EOF); - } - } return (c); } From nobody Wed Nov 8 00:53:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ65B0ZjTz4ywbW; Wed, 8 Nov 2023 00:53: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ65974Rqz3SbH; Wed, 8 Nov 2023 00:53:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404782; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4G2u94cqk4r7VTTW9MUnq3/F6emHaBLPLdUGIrbQKZE=; b=jcC1MOKdIrfz8CZetqTMgpmTscMYhuGpQvq0MGAA1DSpWfVHyKL5ys5xgudKpdXBhhkuR9 QCcedVSJNkfZp/1DxqwWJx9w0X3A2EQveF8bmQX24eeISYQPYkSTbJVknxoDZkV0foISvz jWT6HiVw5qvlfM8CGP664BVd6KQhp44l/p5XxdsRKC+9E6YxDSI7yhKXRBRWaucKvpw1eQ jrvpYfuzyFdA+19FAuyNVjn4gUwfMBohOAdhYqPfVJUGkgE3HT1YHD3+QsqmMF2KwuU19A nIFvSN/2fvRNVHMnymu18HtXWqXdpOQeWkVqyeBpASZCjljv7UZDEhL1tSduPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699404782; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4G2u94cqk4r7VTTW9MUnq3/F6emHaBLPLdUGIrbQKZE=; b=wq+BcjYjPmu0K0+4RZ+brhjNjGKe5Yyb1bj0ad9qx/6lFY6xX5nMM43KVRK604yc08MSTQ GWPwCck4crK6PepS9titklXJ5z+Inf3tvTdutINn919yWYOqM6tlQgB/Gr+6qhLO4YTWET U6wFqX3RAaL7NlY7HrCWg4+adeI/SYYdRJeP6akuIukada+UvMu4eW7vtZb8rUJlZ7IrAF t28XHXWBwCK0JXXZ81mM3Gg1bvNOEcWg9K2Rc1w6UiuDYBos5JltHZ67IBoJbnTzdyKTpi GbjO3zABUhV4sa+YKbwBR7aTQDqzgWWsa8+WPfhu2r2GgEna6/bS6CEWaT6VXw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699404782; a=rsa-sha256; cv=none; b=pt2T89Qx+J8PDhQI1RNMA6gDANKiVg1D9jMHP1XpkH6rofa3okBDWjKD4S3xrfpncULKnw 1e0mHAvTd72mts4iOwJe17XgFaQGV07veMnTypiUKZSY9fNqSNJWrNfOT3VBGL/W/H2+uL LTots1CQgm56V1r2ozhKDUJRVKV+gC+gJLVd4Af/AMxjiIKblv6Vj8sdObuLyd9bF1ScIX BKVmGMKoW2/x7fiyPGjQor+rdv18dNOD6dioxKYKWDx9Cfgp9BlnuuHJvwgZ4mrLrP0bP4 zOJ/dbF7yVGdAA+tGlrWFgt5Md+Mf1EB/JhIWTPajpSbF5B5+L9ztTC2vBaf3A== 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 4SQ6595xdtz1BRR; Wed, 8 Nov 2023 00:53:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A80r177087399; Wed, 8 Nov 2023 00:53:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A80r1dU087396; Wed, 8 Nov 2023 00:53:01 GMT (envelope-from git) Date: Wed, 8 Nov 2023 00:53:01 GMT Message-Id: <202311080053.3A80r1dU087396@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: acd860c3622d - releng/13.2 - cap_net: correct capability name from addr2name to name2addr List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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.2 X-Git-Reftype: branch X-Git-Commit: acd860c3622d2591f4eeaaf241094c311c5c642a Auto-Submitted: auto-generated The branch releng/13.2 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=acd860c3622d2591f4eeaaf241094c311c5c642a commit acd860c3622d2591f4eeaaf241094c311c5c642a Author: Mariusz Zaborski AuthorDate: 2023-10-23 21:03:51 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:49:31 +0000 cap_net: correct capability name from addr2name to name2addr Previously, while checking name2addr capabilities, we mistakenly used the addr2name set. This error could cause a process to inadvertently reset its limitations. Reported by: Shawn Webb (cherry picked from commit afd74c400075d94e01dd3430844bb290834660ef) (cherry picked from commit 765757c6301fa41c0b59108347c600fbc9020c39) (cherry picked from commit 114c6d9bef765a47ebcb8e65d1c935cbcbe51002) Approved by: so Approved by: re (implicit) Security: SA-23:16.cap_net Sponsored by: The FreeBSD Foundation --- lib/libcasper/services/cap_net/cap_net.c | 2 +- lib/libcasper/services/cap_net/tests/net_test.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c index c6abaa69faf6..ca9434adc6f7 100644 --- a/lib/libcasper/services/cap_net/cap_net.c +++ b/lib/libcasper/services/cap_net/cap_net.c @@ -1234,7 +1234,7 @@ verify_name2addr_newlimits(const nvlist_t *oldlimits, oldfunclimits = NULL; if (oldlimits != NULL) { oldfunclimits = dnvlist_get_nvlist(oldlimits, - LIMIT_NV_ADDR2NAME, NULL); + LIMIT_NV_NAME2ADDR, NULL); } cookie = NULL; diff --git a/lib/libcasper/services/cap_net/tests/net_test.c b/lib/libcasper/services/cap_net/tests/net_test.c index 49cb0da44a4e..34661339340a 100644 --- a/lib/libcasper/services/cap_net/tests/net_test.c +++ b/lib/libcasper/services/cap_net/tests/net_test.c @@ -708,6 +708,18 @@ ATF_TC_BODY(capnet__limits_name2addr_hosts, tc) limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); ATF_REQUIRE(cap_net_limit(limit) != 0); + /* Try to extend the limit. */ + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + + limit = cap_net_limit_init(capnet, CAPNET_NAME2ADDR); + ATF_REQUIRE(limit != NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_0, NULL); + cap_net_limit_name2addr(limit, TEST_DOMAIN_1, NULL); + ATF_REQUIRE(cap_net_limit(limit) != 0); + cap_close(capnet); } From nobody Wed Nov 8 01:00:36 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6Fw2ZcDz4yxdc; Wed, 8 Nov 2023 01:00: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6Fw1vMWz3TCN; Wed, 8 Nov 2023 01:00:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nypDRlbtmv2H3ZjaooR9jI+e29NziSI35hpv77VJXbU=; b=ZBVzLy8mjjnVUQ8/LBKwFZzwqpurP7RAN1gZg6aO15iTtbX84M5QzLWs2jP9eAnPtNBgOR vvF3kCzKhcVG3AwnfbCmjrAftkqvirkdp1C7NjOvzAphZXxw2eENZBHAXR4NgXDySlip9j NIVoBgaW4oncEDZ3FstD2h1hvyZSegtgXfZwbJ98Loj6upNU6d2vGmxR08WZ7BVOUsZ9xK K3voyTlcSpg9fqapdFBue+uCKIFf3mRUme1AeGsWGBBIPAkPsJ1PACm6KzFre7FevcVt1M VPMEu3qbFarQmXRTfmf9/Uj4Ae7OOrW2cF2ig0CDtlcZyPRYjaDKI0TwY7TFbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nypDRlbtmv2H3ZjaooR9jI+e29NziSI35hpv77VJXbU=; b=XnTrpfqWBDXjOE9qpz+UM+dxSwkeW3pcY3Qy5h+RoS80XkY4/6Tb80JB0T8s/HUwL8makp SiuSqF/dfHW6XWaDjKyLsa/n6kWlJ/i6WKeC9UI8EfSx27PUvFk/5tR93Q7DB+YLyrdDhM ygl2evufE3yR+HTc7gr5oOSvb/ZZUDI+juehdfhtEB/N3JAGgjg9n9YAnJBYjrJTUqWbc4 BTExmXXtfziP4mwqH/G004c6Fm8ETNbCEnfZC5dNp1I+V3X8+y1v8kUa7FgBtJ1jWB6x5j OA2XHXJJK8y6F2T94Ba8qDEpN+27vjhtzzMpoBE+8YhaeNux3b7U5MAfuX5xag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405236; a=rsa-sha256; cv=none; b=jKW/XY+9RL8rG50iNBbZlMeUSUd1Ws7t64Rmkcll+BtVeAkUMDmtsxGB0+T3TfCPRrwdF7 EKX+p3vjDKtRExrmd7Z24zG4S7SDzNPyFFw2g2x5koQx1owRmFvP4NfRRXZedWFruMBY2v iJi3VGITLfdmIqukgHPFneBkaTcP5u+8sp5Hzy3d6doHvNxiZnJHsRzpRVAFXYvLD7rsiX BDecWUqgypHcwVTAi5886eXlWnepSQOuFoxO5zze108w8nZQdJgOjMzFl4iVMiNu8ib7HP aeQxIMPV/EV8Go109AXeunSN5s1noJ3d8ThObmqcDb+JqOGFTT7ikpi9Uk7fsg== 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 4SQ6Fw0zYhz1C5k; Wed, 8 Nov 2023 01:00:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A810aOv098098; Wed, 8 Nov 2023 01:00:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A810a2h098085; Wed, 8 Nov 2023 01:00:36 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:00:36 GMT Message-Id: <202311080100.3A810a2h098085@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: e79edfaf68c5 - releng/13.2 - freebsd-update: create deep BEs by default List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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.2 X-Git-Reftype: branch X-Git-Commit: e79edfaf68c542c8545670e911ae83ca0e3493b5 Auto-Submitted: auto-generated The branch releng/13.2 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e79edfaf68c542c8545670e911ae83ca0e3493b5 commit e79edfaf68c542c8545670e911ae83ca0e3493b5 Author: Kyle Evans AuthorDate: 2023-10-12 02:51:07 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:59:45 +0000 freebsd-update: create deep BEs by default The -r flag to bectl needs to go away, and we need to just do the right thing. In the meantime, we can apply an -r in freebsd-update as a minimal fix to stop creating partial backups in these (non-default) deep BE setups. PR: 267535 (cherry picked from commit 989c5f6da99081b1f2b76ec09e91078e531e1250) (cherry picked from commit 80f747781f125576de40ab8b3d8d70b351ef0518) Approved by: so Security: FreeBSD-EN-23:13 --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 0c4053715b70..42cd2087a3ba 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -918,7 +918,7 @@ install_create_be () { echo -n "Creating snapshot of existing boot environment... " VERSION=`freebsd-version -ku | sort -V | tail -n 1` TIMESTAMP=`date +"%Y-%m-%d_%H%M%S"` - bectl create ${VERSION}_${TIMESTAMP} + bectl create -r ${VERSION}_${TIMESTAMP} if [ $? -eq 0 ]; then echo "done."; else From nobody Wed Nov 8 01:00:37 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6Fx3gw5z4yxXx; Wed, 8 Nov 2023 01:00: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6Fx30HFz3TJr; Wed, 8 Nov 2023 01:00:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405237; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eUtFFR9LfJmZGQmMknwrFJTA749tTL1d/FOB3elhWf0=; b=ABu0gyotDL4QEWFYKXnu8d+23WaOuds5qd+GjBl69fJyXkDIFIicamIJX0MfEBnug9c9VJ RTSSEXve/nDUcSKoKEkXoxUFt9R3ShKFx/sO3ogl6jMNIcip6pOx0tZOXo7ygxzNAvx9xN pinc4QkqBg8HSFsTAAry90J9QrrrVKTAAZsUXcd0HHUZdv3vRWz3j0zd6not1j5N842Nzz rkoLAHvHiI+URYbjO17TGv3RyjjSfNQee9a5IEfplngzZXPV7aowf4HuxSVf2Ttz0to4el kkUCB2IlJPjNdC6oCkVvb0yV5nuNcfatlj/L+xP2r2fDgSOs44gMW/jqXA9YFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405237; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eUtFFR9LfJmZGQmMknwrFJTA749tTL1d/FOB3elhWf0=; b=Rm4UtnVc8tTXcym2rnCi/mrK4UU2iBVrJtwRV9NuLXSXxDzeGMro5Z2V8Ufi0JJCD+1AxO 6erEmt0V8s+LUc36VE+PeBHJ9jSCCVRlQoR11cvlVEGB4NSwE7hKIrbJQGbmNCWd+OBlbl MxdieQAXn3VGCRQMtnNrvGpAC1OE5pZNeAzajBHW6HaQJoYeNvSQM2oIQnbzghTJpfDf+f mYeIH7Elwjys6s2l3ASYZrsfFstGjBozxNQ0Q4pBUfDoEPdKYeuI2fzRgLAcRGOykkqUcR yXHqqXF+Zk2fshtEpRn1pPaAOElg3e8sKR7p0QEGllt/7u5PPGyGkOsWV+iYlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405237; a=rsa-sha256; cv=none; b=Oj1q0UBAuEOeQDrPMaS8pfNOoGNBDYx1teYVb+2uSSDw5uYqm9jQn3DL7OEXe6pfpVG8Sz BO/326tSLZd43mA5WoPBtQXFhS0jd8erqvPKP+futxHgPq+YYoW3RHMeRnsx6yVudUYUQG 3MgVjJNOWngmrnVutMAcm9HHePmd/iO01hvKzdHxTCyfzHvK2IBRGVoeSsgx1iVAhcEGdH rQaTGI1vYwLBT1zADypkVVsKcWpbo0ISarpBhr2Rcz/tVRgeVPN/U4owtGeol9SDKDKGFp B+zCyhUCGx3fUh2kOwSQJRNrpjoTrvHuPUpFtr7zA0lRmZSCMlc/K69CyOnMKQ== 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 4SQ6Fx1zCsz1BRV; Wed, 8 Nov 2023 01:00:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A810bKm099152; Wed, 8 Nov 2023 01:00:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A810b03099149; Wed, 8 Nov 2023 01:00:37 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:00:37 GMT Message-Id: <202311080100.3A810b03099149@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: 67264bfe4992 - releng/13.2 - regcomp: use unsigned char when testing for escapes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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.2 X-Git-Reftype: branch X-Git-Commit: 67264bfe499223cd9864b53975462e3eb57cde2c Auto-Submitted: auto-generated The branch releng/13.2 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=67264bfe499223cd9864b53975462e3eb57cde2c commit 67264bfe499223cd9864b53975462e3eb57cde2c Author: Christos Zoulas AuthorDate: 2023-08-30 20:37:24 +0000 Commit: Ed Maste CommitDate: 2023-11-08 00:59:51 +0000 regcomp: use unsigned char when testing for escapes - cast GETNEXT to unsigned where it is being promoted to int to prevent sign-extension (really it would have been better for PEEK*() and GETNEXT() to return unsigned char; this would have removed a ton of (uch) casts, but it is too intrusive for now). - fix an isalpha that should have been iswalpha PR: 264275, 274032 Reviewed by: kevans, eugen (previous version) Obtained from: NetBSD (cherry picked from commit 3fb80f1476c7776f04ba7ef6d08397cef6abcfb0) (cherry picked from commit ac695744e2cfb461a64018276fb94999fb0cad9c) Approved by: so Security: FreeBSD-EN-23:14 --- lib/libc/regex/regcomp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c index 970a448b649a..bdc1c3379fd3 100644 --- a/lib/libc/regex/regcomp.c +++ b/lib/libc/regex/regcomp.c @@ -830,10 +830,10 @@ p_simp_re(struct parse *p, struct branchc *bc) handled = false; assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); + c = (uch)GETNEXT(); if (c == '\\') { (void)REQUIRE(MORE(), REG_EESCAPE); - cc = GETNEXT(); + cc = (uch)GETNEXT(); c = BACKSL | cc; #ifdef LIBREGEX if (p->gnuext) { @@ -994,7 +994,7 @@ p_count(struct parse *p) int ndigits = 0; while (MORE() && isdigit((uch)PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); + count = count*10 + ((uch)GETNEXT() - '0'); ndigits++; } @@ -1304,7 +1304,7 @@ may_escape(struct parse *p, const wint_t ch) if ((p->pflags & PFLAG_LEGACY_ESC) != 0) return (true); - if (isalpha(ch) || ch == '\'' || ch == '`') + if (iswalpha(ch) || ch == '\'' || ch == '`') return (false); return (true); #ifdef NOTYET From nobody Wed Nov 8 01:03:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6K30D73z4yxxs; Wed, 8 Nov 2023 01:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6K26YKQz3Vn0; Wed, 8 Nov 2023 01:03:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LHjgy+mkFsZuBbM5sBAwLo2SDWIlZnjC7sxEyykncLk=; b=J8S8FUmIIUR9/lLGFOMz8wcfqAJop+jrF8YmqGYFVZdOpFXt9Zt5VekNRN0b1hPKwpZWmY mk2l35aNHU36i+I6HkvOdS2R3O1K2JCZOwSgY1jvs2L1by4ziPV1oddtcS6mUfqjfuLkTO plGH1tIIAhNoiobCR9N5fpxHHXO/iycZqm2OhkgbTPAKomJ3W/VzSy/8p9AZkPI3aBTMV+ kxcNlDyhriUKcCdCWRYZxMUsP9sA1lt73zwZJsO25DaYw8P5OHfTNiFxnuRx1iHtNsZpME HktMWSZ/ldXnVZwsQKwfptMf9dxB3DcO603LQbiu9PUEuB9nggdet7mtijug0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LHjgy+mkFsZuBbM5sBAwLo2SDWIlZnjC7sxEyykncLk=; b=Jxt8vZeouaK/Xb4xqP+uUiO4hFDDceWEX8IdD6QgYhFGIVn+kLaUdVihd8x7CHo2f++D23 pQbFhoXYMjV809TdvBnknpW1jWeZNgQbOZ10KmT1edcYWgMUZGDvcPM330HsrpRqeI8e2A iCPVrgyVmMaxHzvy3bI09KwDjo4zYPDs9jNyc1hdqeysPxFQXpgtx7JyZDi51a4AiogV9x T9iudgth6gLsZLQFxwkXUII7Z/EegvfKM3GKJDma6fTH46TMjVVFMkpvQt1SsCfN3V47Bj NALKnIu3h2bzBTq9eEODbUlGt5SjAx5FhcNcTO0XQNY/9omw6yjz4UnSDAxhUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405398; a=rsa-sha256; cv=none; b=rwLT1uv5/Tm7ATs9aNTUx+kmtECkffkGeNZmtkXXcSOSPddFMqE2HLAK8czC86xh3HdTHN oJ4ID1W4VrTzNs46SdzBj0UYrFlautoCRZs128ZUprrsQbGi5V81sJ2LOVx8gkBveAgjAA 0k4pu/fCz++rC3a+rQtCp0bt9A+TgvsQQXBv6MmBkNClqrai01Qd+cGb1aiRCpDw4uyGln 2k40vob/ueQQRGlD59noIS2udvy+O822uWQ5GosrPx+cpiEV671oerJVyuxmfceVS7dgKu VqLwJH2pYMir+sFvKGQDF9NhLT/Iqv9MEZSq78FAT154BBwIrVTnY3+FYcOwyg== 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 4SQ6K25gJvz1CKd; Wed, 8 Nov 2023 01:03:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A813Ivl004908; Wed, 8 Nov 2023 01:03:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A813ImR004905; Wed, 8 Nov 2023 01:03:18 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:03:18 GMT Message-Id: <202311080103.3A813ImR004905@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: 9b3e17e15f94 - releng/12.4 - fflush: correct buffer handling in __sflush List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12.4 X-Git-Reftype: branch X-Git-Commit: 9b3e17e15f942d1c5d4eaaa327d1eea7d4c9e233 Auto-Submitted: auto-generated The branch releng/12.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=9b3e17e15f942d1c5d4eaaa327d1eea7d4c9e233 commit 9b3e17e15f942d1c5d4eaaa327d1eea7d4c9e233 Author: Dag-Erling Smørgrav AuthorDate: 2023-08-03 15:08:03 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:01:23 +0000 fflush: correct buffer handling in __sflush This fixes CVE-2014-8611 correctly. The commit that purported to fix CVE-2014-8611 (805288c2f062) only hid it behind another bug. Two later commits, 86a16ada1ea6 and 44cf1e5eb470, attempted to address this new bug but mostly just confused the issue. This commit rolls back the three previous changes and fixes CVE-2014-8611 correctly. The key to understanding the bug (and the fix) is that `_w` has different meanings for different stream modes. If the stream is unbuffered, it is always zero. If the stream is fully buffered, it is the amount of space remaining in the buffer (equal to the buffer size when the buffer is empty and zero when the buffer is full). If the stream is line-buffered, it is a negative number reflecting the amount of data in the buffer (zero when the buffer is empty and negative buffer size when the buffer is full). At the heart of `fflush()`, we call the stream's write function in a loop, where `t` represents the return value from the last call and `n` the amount of data that remains to be written. When the write function fails, we need to move the unwritten data to the top of the buffer (unless nothing was written) and adjust `_p` (which points to the next free location in the buffer) and `_w` accordingly. These variables have already been set to the values they should have after a successful flush, so instead of adjusting them down to reflect what was written, we're adjusting them up to reflect what remains. The bug was that while `_p` was always adjusted, we only adjusted `_w` if the stream was fully buffered. The fix is to also adjust `_w` for line-buffered streams. Everything else is just noise. Fixes: 805288c2f062 Fixes: 86a16ada1ea6 Fixes: 44cf1e5eb470 Sponsored by: Klara, Inc. (cherry picked from commit 1f90b4edffe815aebb35e74b79e10593b31f6b75) (cherry picked from commit 1e99535be2ea9c0ef8bc57fc885e9c01fa95d2dd) (cherry picked from commit ccdd8337f9cbd7d34e2e95df1440dd5f7225d0b4) (cherry picked from commit 95fbce59c9f4ed4015b19a88491a37dac9d4e7d5) (cherry picked from commit d09a3bf72c0b5f1779c52269671872368c99f02a) (cherry picked from commit 92709431b14df6c0687446247ac57cfc189ee827) (cherry picked from commit 6cb5690b3495741e9ece6f42ba4a85732932aa83) (cherry picked from commit 3a2ea31568c81f7b29710abd3d3e1ada2fbeb6c9) Approved by: so Security: SA-23:15.stdio Sponsored by: The FreeBSD Foundation --- lib/libc/stdio/fflush.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/libc/stdio/fflush.c b/lib/libc/stdio/fflush.c index f7d2fbdc28e5..75f145fae6a3 100644 --- a/lib/libc/stdio/fflush.c +++ b/lib/libc/stdio/fflush.c @@ -106,10 +106,10 @@ int __sflush(FILE *fp) { unsigned char *p; - int n, t; + int n, f, t; - t = fp->_flags; - if ((t & __SWR) == 0) + f = fp->_flags; + if ((f & __SWR) == 0) return (0); if ((p = fp->_bf._base) == NULL) @@ -122,19 +122,18 @@ __sflush(FILE *fp) * exchange buffering (via setvbuf) in user write function. */ fp->_p = p; - fp->_w = t & (__SLBF|__SNBF) ? 0 : fp->_bf._size; + fp->_w = f & (__SLBF|__SNBF) ? 0 : fp->_bf._size; for (; n > 0; n -= t, p += t) { t = _swrite(fp, (char *)p, n); if (t <= 0) { - /* Reset _p and _w. */ - if (p > fp->_p) { + if (p > fp->_p) /* Some was written. */ memmove(fp->_p, p, n); - fp->_p += n; - if ((fp->_flags & (__SLBF | __SNBF)) == 0) - fp->_w -= n; - } + /* Reset _p and _w. */ + fp->_p += n; + if ((fp->_flags & __SNBF) == 0) + fp->_w -= n; fp->_flags |= __SERR; return (EOF); } From nobody Wed Nov 8 01:03:19 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6K41rt1z4yy1F; Wed, 8 Nov 2023 01:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6K40TJZz3Vvd; Wed, 8 Nov 2023 01:03:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8duLdvoa7iY0IUJ/mBpaWuKyxIKlwPuiB00Dmine+q8=; b=E+KelGazR3EJtHATm5/bjtA8NNfmQBxq94XXNTGGf69oIKPvVP+32p+3OZ0NDFapoET1bH 7rO81pegnz/nb7x7Oi9x/DqGeS8E3SYCBoBX5fwL8RTChISc2qJ5PgKyFN+BFcZgbJK5z1 CYaMXBbHyjNsQMgm0B3BMSJgW8g3RnJI4ckLNy3TdcUAvj7uSLBoSCttbJvVXINZQNFKoV FtDn+35E3GzwNPJzKQF5lbciO65Z+WzUrmquY4BpaBmvvqunPOW5rnKlwQd3x6tfyLd7eV FwECYIKzGtO5y8qhEOcJEBIO914eXnQ0tjKljCNja/b81/Qm39AS5KECvfl3YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8duLdvoa7iY0IUJ/mBpaWuKyxIKlwPuiB00Dmine+q8=; b=ahlZwZmWb02tyhL+adHnhTuW4UbdyPhXK+3dHEN4JZrzCSpSD+agUF2uZeRu6Q2/z8Y6r/ F5I2GfC4+pwBP8SCyN2p1nxaRGZAKi/yAxyVrfGUDAcsqrzzJao0lH5D0W/LWvZLLM5OkO v6+tA/556Tlj09DZsnzNpiAkHWzyc/XO0xdHi211EPbthsleE/gO7DL+JGFuuLf7XauLkr XOibeqeMeJWLc6U8L3ieyuPs40MAImUN6QRpCEMnGEzRMJgKUxjPZp1e1OX7epyXcb2bk1 35e70hww3wBaEFpYII213og8zfrcvPYUiWbCjf/3W4OI8koO1ZONeoM6CPpL3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405400; a=rsa-sha256; cv=none; b=TKxfprPfxKkDSeHY1BNIXs2Blf3kUhFdDrIrkWLaWk3HiPRNPDx+oV5fr5R2R+LQ5he8qY S4uDupcYLbHu9cxxpkrEv6ktfnYqOMG5RnIlkl6RVIL1kcukHinjQG1arUPggWS3fj+4j6 PismU9Wp6Pf3tXwOMO8xUGMJQv19U6IXqStouJqisIlmye7oK1RxMS1fmY0dLPg5UYuOoC M6MNcjcmXxWnRqRowPDL9eqC7WKo45OclRRUGDnNg4O9QQ031eYf85cbhuxiedJ5XP+8SU PTbYpsiR1WlNetaTb2FulOEDcTXo5nsKoC2J9lMDENWvc5uHL7pZgK1mBG9+Hw== 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 4SQ6K36gfMz1Bs8; Wed, 8 Nov 2023 01:03:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A813Jth004953; Wed, 8 Nov 2023 01:03:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A813J0j004950; Wed, 8 Nov 2023 01:03:19 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:03:19 GMT Message-Id: <202311080103.3A813J0j004950@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: e648a628a66a - releng/12.4 - freebsd-update: create deep BEs by default List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12.4 X-Git-Reftype: branch X-Git-Commit: e648a628a66a09973154b442ac1266316be20506 Auto-Submitted: auto-generated The branch releng/12.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e648a628a66a09973154b442ac1266316be20506 commit e648a628a66a09973154b442ac1266316be20506 Author: Kyle Evans AuthorDate: 2023-10-12 02:51:07 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:01:37 +0000 freebsd-update: create deep BEs by default The -r flag to bectl needs to go away, and we need to just do the right thing. In the meantime, we can apply an -r in freebsd-update as a minimal fix to stop creating partial backups in these (non-default) deep BE setups. PR: 267535 (cherry picked from commit 989c5f6da99081b1f2b76ec09e91078e531e1250) (cherry picked from commit 5c2a559876d123ba386612319bf42e7b32dee590) Approved by: so Security: FreeBSD-EN-23:13 --- usr.sbin/freebsd-update/freebsd-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 324e838fd8a7..b9eb1066c58e 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -918,7 +918,7 @@ install_create_be () { echo -n "Creating snapshot of existing boot environment... " VERSION=`freebsd-version -ku | sort -V | tail -n 1` TIMESTAMP=`date +"%Y-%m-%d_%H%M%S"` - bectl create ${VERSION}_${TIMESTAMP} + bectl create -r ${VERSION}_${TIMESTAMP} if [ $? -eq 0 ]; then echo "done."; else From nobody Wed Nov 8 01:03:20 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6K527PCz4yyMC; Wed, 8 Nov 2023 01:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6K518txz3Vss; Wed, 8 Nov 2023 01:03:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lzXVCzfACLxgDpKGaJnDJl5Dt5fIOkyn9MxyfwcnK8E=; b=Yu20rsRDlQv2/2e0tj03WBw+fZem6KcS4QynwYnQAVUQBPCR6styQYBeeGEgDt6+9YET3j a2azy+Pb5WOC5O13YftI1cdAmZ54ZyY6YnecVe/Ci5sGJ1DYA1CqMyO5jiWN8pzjfUFgmt jCxZ2dolE4wnuJ5ZZg+TTLqZxW2a1S0O8+/rl/xmJ0N2BcWfNVQqb4fPorB9k1GC3ffncZ Ias5P/RgVCVCBlmQ9zaV3abc1iT1Qjtw5F5FVxLnkNpY/VWJ1gxT07dfel3mmJAReDoPoi 5vZSYacLhngq5ZG5uiJYf1EhcmS2FaylbEEdAfVETKSgciKyq4xlmMg/32CviQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lzXVCzfACLxgDpKGaJnDJl5Dt5fIOkyn9MxyfwcnK8E=; b=ljsS+5524XACH+AjBPTfg5weMbh7uu1Vod5L+2BsgffQGrHnQxUetXTjc/guA613TQJl9h /TdBnyrl2N+WuBZeiYrPW/RSkatTMOKIsMyNCgxis+OjlL/U26mTSbYE9qh/YnOTpbgsy1 k95REMgztrOGKgC3BLJCd12Liko9bFTcelzipS49rPmxoEiHREtH6ng181FeBwCGw4rXz6 BMJNUl/gtb9leFv3X4Ylhh5NCs8lPr9zciwxVyo4pVljLNTCH+VPVCIu5YY2geb99Gd+wV xeVBc+lL+2CXiT8GV4els4kWHH48zd4JHDo58Ei6Cw1A/yBUO15SYvqFZeyHVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405401; a=rsa-sha256; cv=none; b=wLWvzKZgnZ+BeiFjuRlxlHMO7Wvnr/SMScff9K2m8r2M9nQmO7xpt7rocxF8+/95/pNVLt 6PoV9b+p2QByOpcKq41UCLtvardG3bA1Kc/FxiFolZbjPLl7Mb/qEjzGlJjrPGChMwqMXR ij8OBpWNdoqwuZ7TqZsmIGsSU1nAKglPzSORknq4w8RkCflkU5SN+hsDjJxfBTYmN2TrIx wtwBDp4WL1XAscYRkSzn11zUmigZ4+6n1Stzw3gnmDXrrIoGYfJsQ0szKVPNVbnpR7U6YO NFCSGHtb4LB/GnE7ru+IjjLJtmhbpgYgZn/TkE/MioHxXwBbpFVIGTzmRJY4Hg== 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 4SQ6K50CM4z1CBn; Wed, 8 Nov 2023 01:03:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A813KG1005004; Wed, 8 Nov 2023 01:03:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A813Kfq005001; Wed, 8 Nov 2023 01:03:20 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:03:20 GMT Message-Id: <202311080103.3A813Kfq005001@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: 5e0387e2ec6e - releng/12.4 - regcomp: use unsigned char when testing for escapes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12.4 X-Git-Reftype: branch X-Git-Commit: 5e0387e2ec6ed9b14b3c6088c19079db15a52eae Auto-Submitted: auto-generated The branch releng/12.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5e0387e2ec6ed9b14b3c6088c19079db15a52eae commit 5e0387e2ec6ed9b14b3c6088c19079db15a52eae Author: Christos Zoulas AuthorDate: 2023-08-30 20:37:24 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:02:08 +0000 regcomp: use unsigned char when testing for escapes - cast GETNEXT to unsigned where it is being promoted to int to prevent sign-extension (really it would have been better for PEEK*() and GETNEXT() to return unsigned char; this would have removed a ton of (uch) casts, but it is too intrusive for now). - fix an isalpha that should have been iswalpha PR: 264275, 274032 Reviewed by: kevans, eugen (previous version) Obtained from: NetBSD (cherry picked from commit 3fb80f1476c7776f04ba7ef6d08397cef6abcfb0) (cherry picked from commit 56b09feb23d98fcd0c4aed8d4f907a5a2f6b5ea9) Approved by: so Security: FreeBSD-EN-23:14 --- lib/libc/regex/regcomp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c index fc66ea32046a..e93ea02f5873 100644 --- a/lib/libc/regex/regcomp.c +++ b/lib/libc/regex/regcomp.c @@ -814,10 +814,10 @@ p_simp_re(struct parse *p, struct branchc *bc) handled = false; assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); + c = (uch)GETNEXT(); if (c == '\\') { (void)REQUIRE(MORE(), REG_EESCAPE); - cc = GETNEXT(); + cc = (uch)GETNEXT(); c = BACKSL | cc; #ifdef LIBREGEX if (p->gnuext) { @@ -978,7 +978,7 @@ p_count(struct parse *p) int ndigits = 0; while (MORE() && isdigit((uch)PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); + count = count*10 + ((uch)GETNEXT() - '0'); ndigits++; } @@ -1288,7 +1288,7 @@ may_escape(struct parse *p, const wint_t ch) if ((p->pflags & PFLAG_LEGACY_ESC) != 0) return (true); - if (isalpha(ch) || ch == '\'' || ch == '`') + if (iswalpha(ch) || ch == '\'' || ch == '`') return (false); return (true); #ifdef NOTYET From nobody Wed Nov 8 01:11:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6VM2bkyz500Cw; Wed, 8 Nov 2023 01:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6VM290Qz3XYc; Wed, 8 Nov 2023 01:11:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SgBSxMbJy6sspmRnTabVuDjZSmdZeD+c9v2p5QUxleU=; b=gew2dCWAekg0rjcRtWq+B0X0jw1g/y5gF8d62+JNUO5qylM1Y+GkZMnQJ1yFzBvnUuF6dl 1p3+NjWk2Cjqq4TbOPV28VqMXHs+wCZpaSNnef5Bp2rI4uaBXZ5EeNTO0JO2f9Ow/amxeg LT+n4e9A6+UH+0d5UlBGw3/IluqhlcX9//IMqKN8mn8fPvX9KFsnoKsptfI2dobVybbNjk GMhJtW/J8L4FmD2y2G4/lTn/HpUHDvvuV0vQlyr3b2JD5t+AVvC39yTO/hc/iyiojcr4jU n6A1PthJAYRcio4HAABp3qdQ7bZV0El7OmGm9Gxis6IZfHfgmO7rMk45sCI54w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SgBSxMbJy6sspmRnTabVuDjZSmdZeD+c9v2p5QUxleU=; b=mIbhsNA2VxdW40mjeBRGi9SCHUZdfV6cb3bWzZ7ePBchA/tNH4IWk9gA9BqxC6ZZvC25qL InjF/FaVkuw4SQtGCyMBl+AYD7QLKWpnkEx7e/XWdvBF7J9zrq4KT2G37mld5JB/F9sEZh 8caafLFNj4sDhL/rdVJF5DsJODfClgp8zCN2q1AYl31pvBtwuUyuPVbHEphb52RA8yElqe tRiyHVolTiC67qAJLDH34tGW8iiidMG+W0GNI/5UcOiX0WbnFf5JjbWrf8Pm0pbC1nm5jP bMV8SzMvRvrggs07uNSAMd7Znbyr1dgy8B8ZmxQQnC7I/u0Cnta2a1hmNybCKg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405883; a=rsa-sha256; cv=none; b=r9AaFxx3FdU8BdG3KXb43s3VkbJU3m1lk/Qx7ZEgqfH2MvzwAYaR0ZyiQ6PAnA/QsJUgwp KdfJDh1Ai3+/KQuItwDY4WN+b6oK+aW3yYCBr9rRj2sJFrXFpeuX7191tdMjUvlV06Wxrh /RleBBeTqK8I/c6hYAqlfX4CyhcduMnXCLk00ATUy7GzNxErQK50q0NCaWPO6IPyuxs5J2 lGMf4IVfIEL1ZwGevfmCDpAUKO5o4n7ktXMzd26Mgch+GpaKd1hMTnRPpPapxXePCSv0c6 vFsHsoWG3pRPmzcKqnnTdhNbBbxP/PoDDO0bLjdGw7Vixv0l5iMsTJAMdc2PBQ== 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 4SQ6VM1FZbz1CTW; Wed, 8 Nov 2023 01:11:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A81BNRt020646; Wed, 8 Nov 2023 01:11:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A81BNJ9020643; Wed, 8 Nov 2023 01:11:23 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:11:23 GMT Message-Id: <202311080111.3A81BNJ9020643@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: 3a088f485f74 - releng/13.2 - Add UPDATING entries and bump version. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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.2 X-Git-Reftype: branch X-Git-Commit: 3a088f485f74e0d50dc67c735b2e79faa2300926 Auto-Submitted: auto-generated The branch releng/13.2 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3a088f485f74e0d50dc67c735b2e79faa2300926 commit 3a088f485f74e0d50dc67c735b2e79faa2300926 Author: Ed Maste AuthorDate: 2023-11-08 01:08:10 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:08:10 +0000 Add UPDATING entries and bump version. Approved by: so --- UPDATING | 14 ++++++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index a31fdd8cb027..180f20d04fd5 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. +20231108: + 13.2-RELEASE-p5 EN-23:13.freebsd-update + EN-23:14.regcomp + SA-23:15.stdio + SA-23:16.cap_net + + freebsd-update does not handle deep boot environments [EN-23:13.freebsd-update] + + Incorrect regular expression escape handling [EN-23:14.regcomp] + + libc stdio buffer overflow [SA-23:15.stdio] + + Incorrect libcap_net limitation list manipulation [SA-23:16.cap_net] + 20231003: 13.2-RELEASE-p4 FreeBSD-EN-23:12.freebsd-update FreeBSD-SA-23:12.msdosfs diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index c5c5d09070b8..c2780964a97b 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -54,7 +54,7 @@ TYPE="FreeBSD" REVISION="13.2" -BRANCH="RELEASE-p4" +BRANCH="RELEASE-p5" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Nov 8 01:11:28 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6VT2yxqz5007P; Wed, 8 Nov 2023 01:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6VT1q6cz3Xtd; Wed, 8 Nov 2023 01:11:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ncuv7cPlflXROLszjvjr6onXcMuM5wdQdYdSjCdK5oc=; b=xQhK6955y7UKskTIFoXSwZouOgBVHhYir6EkYF9vsxfGXu3vrOu8Q0Xj1yE9ObaklJHqlD Bc5t4wd3+LUj3TJ1+mqtrJ0Zwla8st5VjndS2DB6OW77O2SLKhJ/n0J9D19SJXmSV1P6Kg QxO5p47c/SRF4RTYWiQOpdgEKaM18eqyFqAPPhfCofC2XOLrjw02LdqgluLbn1ANi2AVbH 35k+5OTHpurvWEn3XIwi2cwxdoFNzsSXBB7XRetENlQy2xGWXae/ZogM8w3XcfYVx6b17+ RwESnrdlZOweoqr9/dIgzAAiItzii5Y5Ae3o8zpc4SeSZWqmdO+u4GPSU1AURw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699405889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ncuv7cPlflXROLszjvjr6onXcMuM5wdQdYdSjCdK5oc=; b=TIEAkz2QruKiDhBCAYNwOeatST3sntxU90eQeiMrwSu4hptOsEWKRkgcRvwJZ/KVNXOkqy R+JO3WkPl641uGf0H6JpRHByKURxqlIKSvrrW454ZO8mFwiMCyZRf7Aq6uDs14DTXbYal+ GNklKGNq6IyZ8sKGq5MI7XCtgmc7m4BaKTp/4fo9pihOpSe5m3mP0s9HMuMCIyic5WqzyW hBJxRoUVnDq/d2TLKGJe86eeQ1V6xSaR+9D7NAzpyuTBO099qRiThBsBQCd5jVObDdxdd5 T8wU1h/JHlXjtmzj56Tj6cwIZwkATwZNOcRGfAg7iOwLRnQa8Pak3fo/g9kSLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699405889; a=rsa-sha256; cv=none; b=NUopMziJ0OSCs4No75bcJgdlyFB7odnv2Qlal286iAHumI/m1i6M8ezmVtdLZ8vL4TIbeJ xG8hNyJ9SBUjGTRQHgyDQiiAa3fp6gUYclCwd4wLJNIeH95nIm2aVG+O+C44bUQFPhgrhh 2IfUCqRkBbQ6z1jw021aQxym/UN3kxuhRK3jGWDk8E9e9Nul+NZ5x0RKuPlYWKIEBZy1Ji RvtBgAMkawuyvAwo6ZYy+19+6Lm+oftoaUf9fL5pvKtDht65E3kjQ+1b7jlXl2hccoc0nN amewriqYe0+YKvoxehmPtv/TyQ8nlp+a1PvyheM2YwMN59iYAFScF2pjYSXvkA== 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 4SQ6VT0M5zz1Bsf; Wed, 8 Nov 2023 01:11:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A81BS0T020783; Wed, 8 Nov 2023 01:11:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A81BSet020780; Wed, 8 Nov 2023 01:11:28 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:11:28 GMT Message-Id: <202311080111.3A81BSet020780@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: 69dcabf10d54 - releng/12.4 - Add UPDATING entries and bump version. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12.4 X-Git-Reftype: branch X-Git-Commit: 69dcabf10d54ae7e5b8e7d6fadd14705bc0aeead Auto-Submitted: auto-generated The branch releng/12.4 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=69dcabf10d54ae7e5b8e7d6fadd14705bc0aeead commit 69dcabf10d54ae7e5b8e7d6fadd14705bc0aeead Author: Ed Maste AuthorDate: 2023-11-08 01:10:14 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:10:14 +0000 Add UPDATING entries and bump version. Approved by: so --- UPDATING | 11 +++++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 100c281c3786..21d537fdb85d 100644 --- a/UPDATING +++ b/UPDATING @@ -17,6 +17,17 @@ from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20231108: + 12.4-RELEASE-p7 EN-23:13.freebsd-update + EN-23:14.regcomp + SA-23:15.stdio + + freebsd-update does not handle deep boot environments [EN-23:13.freebsd-update] + + Incorrect regular expression escape handling [EN-23:14.regcomp] + + libc stdio buffer overflow [SA-23:15.stdio] + 20231003: 12.4-RELEASE-p6 FreeBSD-EN-23:09.freebsd-update FreeBSD-EN-23:12.freebsd-update diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index fa6d3e9340b8..f255e0441e13 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -49,7 +49,7 @@ TYPE="FreeBSD" REVISION="12.4" -BRANCH="RELEASE-p6" +BRANCH="RELEASE-p7" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Wed Nov 8 01:19:04 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SQ6gD65W2z501S8; Wed, 8 Nov 2023 01:19: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SQ6gD5bxhz3Yrs; Wed, 8 Nov 2023 01:19:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699406344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Beimao0vxM63F56zG5Nva4C+T/96y8fv1Mh9Dg1X+go=; b=pXPAOtwdGnQvl9PkxnInMM6vdfhjd6CAJK/q7/A1n2oUkYu8ABe9xIT2Nglqa5J+n4yw+5 YcC7EBCKEaMBzjt0gmkorUch8lcD4Loi9RchaumwE2QVd9aBdstXPQUJpbzWLdNhO6Y6rX opCyIfwruznRECrP1dFTd10Brby+CNV01Tp7zbZADUpKjAj+9xbAO7qjPMNitIiR0vIlbx Y+8+S/H9In7EYdWuLf+IG9luoecCYs25JwBBI9JVZIDBDaqt4Xf1JlVNFEZPYHiGYqLLfQ gTY1dXsvD+aGolnE8Kz0X5B4nWs9HzK4sDxIcn0zub7ZGC51KWDqlFtw7o6fJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699406344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Beimao0vxM63F56zG5Nva4C+T/96y8fv1Mh9Dg1X+go=; b=ga43i2tvKoViyJKaDyiTsKWwl3U9l8ffruiiwmsUAC7Gd+g34cZhaNmCHJ+hC36Zy3Ipqo npqZgT+wfz7i+4C4rj4cXAvVG3Db/Pe+mllCwDUbKHu21GSC/eVz37lKQrm01PHoseABvV kfD96YddObLUOieYgNqcTy2Tn+UF/mBdHbCN45ECA1pHl6xgVmSp0jGtpuuSregfCCCfFR jaVECv8EHj46aRiyjjiV1hJgF3ju5I7MpdVCmJypi6kmIOnbriqpE5CFJQ3/KWcWpHq7XI D9V20N3jjsVWtJztlyIA/r81MNuN5S+W0Tz/FR37LI2KPiEyrox2erlatFx2kw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699406344; a=rsa-sha256; cv=none; b=DN1TUKqR8bbFg6pezNoBGYLHYImXcNXaBnToJcY5LcZI8uPUnbeJh/JoYJ+POw1+dAZNGL jxEvBufO6GE2TCpCiYmo2+0v6s1bRrU9bOFallY2SV5sj+ksY80h2fBXqnNhFgpfGszKHG VE+rEYNRhg4MPHJks4EJU5/OtPgmRoVhtiuZd9RhiPSx3752lkodBoswGGqy/djoYPstXW LMmN10E3OlX8peOp5cs+yT4ygR7Rlb0aUPFFbRa2tZxY6Vkt6V2sj+zP6alQWM8iSh3Qb5 MpFMwnMmRrNdysKCbCZS3H6tTdNu5pyTuTOyN4705yx1uvosVx9d79F4Y0SkYQ== 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 4SQ6gD4gDHz1CTq; Wed, 8 Nov 2023 01:19:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A81J45v023051; Wed, 8 Nov 2023 01:19:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A81J46A023048; Wed, 8 Nov 2023 01:19:04 GMT (envelope-from git) Date: Wed, 8 Nov 2023 01:19:04 GMT Message-Id: <202311080119.3A81J46A023048@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: 2d8b79fe6036 - releng/14.0 - Add UPDATING entries and bump version. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 2d8b79fe6036efbc6f00fe97ca482fab039f854e Auto-Submitted: auto-generated The branch releng/14.0 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2d8b79fe6036efbc6f00fe97ca482fab039f854e commit 2d8b79fe6036efbc6f00fe97ca482fab039f854e Author: Ed Maste AuthorDate: 2023-11-08 01:18:52 +0000 Commit: Ed Maste CommitDate: 2023-11-08 01:18:52 +0000 Add UPDATING entries and bump version. Approved by: so Approved by: re (implicit) --- UPDATING | 8 ++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index fe80f259cb12..58eeafa44bba 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,14 @@ 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. +20231108: + 14.0-RC4-p1 SA-23:15.stdio + SA-23:16.cap_net + + libc stdio buffer overflow [SA-23:15.stdio] + + Incorrect libcap_net limitation list manipulation [SA-23:16.cap_net] + 20230824: __FreeBSD_version 1400097 after the branching stable/14 from main. diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 7b9891253fe7..b40c56ae759c 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.0" -BRANCH="RC4" +BRANCH="RC4-p1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Thu Nov 9 14:39:20 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4N82Y8xz4yvtR; Thu, 9 Nov 2023 14:39: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4N82L4Rz3Pwb; Thu, 9 Nov 2023 14:39:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jjhiM5luoHtK41QelFLa05iHgBCkTZSDBGdBLyxgbJQ=; b=YZSyIzmUSPuiPSWQ0IOaLsUMw2hzl4rrHsCkpK1Lflqc7BjyNh+p1qpR5o2NnDPDuQiTKT rxK40Di63N5QrQEOxcnbxDbRYooNhbxSVJTXWyiP5zj+y3sYEcBZ1tzVwRg3Oi+imW0mxw 7t4SdmKFAzK70RC2oi+YffDoBAdifLWvgNhtu8sPM7sfbV/hfUjDp9CtJSSLepojVliNgW GRBI8IjYlFDIV7YanFsXoJOuUbxtzk4aiIBh4J9jZq2Ujqe7rcnHrvK2uwTNUnVdo8hdQv DBgaIF56oKF9uD4pgaCoJHTSoKw1+lR5r9WiPO7diVF5XJ1tklWq/u0b90unsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jjhiM5luoHtK41QelFLa05iHgBCkTZSDBGdBLyxgbJQ=; b=HFgEqjWzu3WqpcAKJ389RLQp/YkgSp6ewPzIlUUh/rgk9oWfHgVQbi3PJvaguYd69vkR5H lanl+BqOMxRa1IMl13xUpKPiqolMsIbABPuvvnvxaE0jN0wQII6joT4Qs033XzFMl2ryKK nLN083aqYmPxWNKHPGzAJ0ovNPOlHBPh+TTrhWhN4LeG38mb3s8dE1ArXblCL+GAMogP2R 9SR313d6STvRhCypa46U4Wp+jBK+WKEkpU3B2y43Ph2+OjOsM8IkVHgO34tQY/PI9h0iLe 7BHFZILmTGsmFOPRO/LPXAGT27ShyilLNyeoz+9QJUHBBusPwdMNSjTkNnbd/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540760; a=rsa-sha256; cv=none; b=REFHS3wKO7g3ApS8iyxEfeg31Aje9fc2YM3s9/fK8BhKu9gOELAdj0dkyhQr+9IJKcVKkP Oh7SQSXepl99akU21QM2zYiOuWtV4JwOqYq8XvmUAhMHgSpLIjkJ0UV7NSLHfbTCDA90DO +UJKzGHc2mvbXyc+bFLGvFxh4S6UgSnulAx89wQxlaHao/LBl/+lDVqFFgFxCiydUJyR4N oN+3mBO8oAak90lzg0XHK8mjBzwjOaWp4ahy7ni9zXgzd9SWb2byCL1x1zHLPMfW0MXnYm CqCUBv4e1ej3MZ1SgAlNUZc8kcB5orFMeEKi8OC+t6hCoHxRhLMxLp4F6QyipA== 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 4SR4N81LRdz4cH; Thu, 9 Nov 2023 14:39:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EdKsA064421; Thu, 9 Nov 2023 14:39:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EdK2L064418; Thu, 9 Nov 2023 14:39:20 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:39:20 GMT Message-Id: <202311091439.3A9EdK2L064418@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: 2f3f9c9d54bb - stable/14 - pf: fix pf divert-to loop List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 2f3f9c9d54bb274dfb5de40f4ce7ca944d4e05a5 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=2f3f9c9d54bb274dfb5de40f4ce7ca944d4e05a5 commit 2f3f9c9d54bb274dfb5de40f4ce7ca944d4e05a5 Author: Igor Ostapenko AuthorDate: 2023-10-19 10:12:15 +0000 Commit: Kristof Provost CommitDate: 2023-11-09 09:55:45 +0000 pf: fix pf divert-to loop Resolved conflict between ipfw and pf if both are used and pf wants to do divert(4) by having separate mtags for pf and ipfw. Also fix the incorrect 'rulenum' check, which caused the reported loop. While here add a few test cases to ensure that divert-to works as expected, even if ipfw is loaded. divert(4) PR: 272770 MFC after: 3 weeks Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D42142 (cherry picked from commit fabf705f4b5aff2fa2dc997c2d0afd62a6927e68) --- sys/netinet/ip_divert.c | 31 ++- sys/netinet/ip_var.h | 10 + sys/netpfil/pf/pf.c | 32 ++- tests/sys/netpfil/pf/Makefile | 4 + tests/sys/netpfil/pf/divapp.c | 149 ++++++++++++++ tests/sys/netpfil/pf/divert-to.sh | 413 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 625 insertions(+), 14 deletions(-) diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index dd0a8b74c013..ad95a1ce0d76 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -171,11 +171,19 @@ divert_packet(struct mbuf *m, bool incoming) u_int16_t nport; struct sockaddr_in divsrc; struct m_tag *mtag; + uint16_t cookie; NET_EPOCH_ASSERT(); mtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL); - if (mtag == NULL) { + if (mtag != NULL) { + cookie = ((struct ipfw_rule_ref *)(mtag+1))->rulenum; + nport = htons((uint16_t) + (((struct ipfw_rule_ref *)(mtag+1))->info)); + } else if ((mtag = m_tag_locate(m, MTAG_PF_DIVERT, 0, NULL)) != NULL) { + cookie = ((struct pf_divert_mtag *)(mtag+1))->idir; + nport = htons(((struct pf_divert_mtag *)(mtag+1))->ndir); + } else { m_freem(m); return; } @@ -216,7 +224,7 @@ divert_packet(struct mbuf *m, bool incoming) divsrc.sin_len = sizeof(divsrc); divsrc.sin_family = AF_INET; /* record matching rule, in host format */ - divsrc.sin_port = ((struct ipfw_rule_ref *)(mtag+1))->rulenum; + divsrc.sin_port = cookie; /* * Record receive interface address, if any. * But only for incoming packets. @@ -265,7 +273,6 @@ divert_packet(struct mbuf *m, bool incoming) } /* Put packet on socket queue, if any */ - nport = htons((uint16_t)(((struct ipfw_rule_ref *)(mtag+1))->info)); SLIST_FOREACH(dcb, &V_divhash[DIVHASH(nport)], dcb_next) if (dcb->dcb_port == nport) break; @@ -304,6 +311,7 @@ div_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, const struct ip *ip; struct m_tag *mtag; struct ipfw_rule_ref *dt; + struct pf_divert_mtag *pfdt; int error, family; if (control) @@ -390,13 +398,30 @@ div_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, return (EAFNOSUPPORT); } + mtag = m_tag_locate(m, MTAG_PF_DIVERT, 0, NULL); + if (mtag == NULL) { + /* this should be normal */ + mtag = m_tag_alloc(MTAG_PF_DIVERT, 0, + sizeof(struct pf_divert_mtag), M_NOWAIT | M_ZERO); + if (mtag == NULL) { + m_freem(m); + return (ENOBUFS); + } + m_tag_prepend(m, mtag); + } + pfdt = (struct pf_divert_mtag *)(mtag+1); + if (sin) + pfdt->idir = sin->sin_port; + /* Reinject packet into the system as incoming or outgoing */ NET_EPOCH_ENTER(et); if (!sin || sin->sin_addr.s_addr == 0) { dt->info |= IPFW_IS_DIVERT | IPFW_INFO_OUT; + pfdt->ndir = PF_DIVERT_MTAG_DIR_OUT; error = div_output_outbound(family, so, m); } else { dt->info |= IPFW_IS_DIVERT | IPFW_INFO_IN; + pfdt->ndir = PF_DIVERT_MTAG_DIR_IN; error = div_output_inbound(family, so, m, sin); } NET_EPOCH_EXIT(et); diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index 06560fb52afe..a8c687682af9 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -326,6 +326,16 @@ extern void (*ip_divert_ptr)(struct mbuf *m, bool incoming); extern int (*ng_ipfw_input_p)(struct mbuf **, struct ip_fw_args *, bool); extern int (*ip_dn_ctl_ptr)(struct sockopt *); extern int (*ip_dn_io_ptr)(struct mbuf **, struct ip_fw_args *); + +/* pf specific mtag for divert(4) support */ +enum { PF_DIVERT_MTAG_DIR_IN=1, PF_DIVERT_MTAG_DIR_OUT=2 }; +struct pf_divert_mtag { + uint16_t idir; // initial pkt direction + uint16_t ndir; // a) divert(4) port upon initial diversion + // b) new direction upon pkt re-enter +}; +#define MTAG_PF_DIVERT 1262273569 + #endif /* _KERNEL */ #endif /* !_NETINET_IP_VAR_H_ */ diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index b80ec2bb303d..eb2e09b2e6f2 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -7855,7 +7855,7 @@ pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, u_short action, reason = 0; struct mbuf *m = *m0; struct ip *h = NULL; - struct m_tag *ipfwtag; + struct m_tag *mtag; struct pf_krule *a = NULL, *r = &V_pf_default_rule, *tr, *nr; struct pf_kstate *s = NULL; struct pf_kruleset *ruleset = NULL; @@ -7945,21 +7945,26 @@ pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, off = h->ip_hl << 2; if (__predict_false(ip_divert_ptr != NULL) && - ((ipfwtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL)) != NULL)) { - struct ipfw_rule_ref *rr = (struct ipfw_rule_ref *)(ipfwtag+1); - if (rr->info & IPFW_IS_DIVERT && rr->rulenum == 0) { + ((mtag = m_tag_locate(m, MTAG_PF_DIVERT, 0, NULL)) != NULL)) { + struct pf_divert_mtag *dt = (struct pf_divert_mtag *)(mtag+1); + if ((dt->idir == PF_DIVERT_MTAG_DIR_IN && dir == PF_IN) || + (dt->idir == PF_DIVERT_MTAG_DIR_OUT && dir == PF_OUT)) { if (pd.pf_mtag == NULL && ((pd.pf_mtag = pf_get_mtag(m)) == NULL)) { action = PF_DROP; goto done; } pd.pf_mtag->flags |= PF_MTAG_FLAG_PACKET_LOOPED; - m_tag_delete(m, ipfwtag); } if (pd.pf_mtag && pd.pf_mtag->flags & PF_MTAG_FLAG_FASTFWD_OURS_PRESENT) { m->m_flags |= M_FASTFWD_OURS; pd.pf_mtag->flags &= ~PF_MTAG_FLAG_FASTFWD_OURS_PRESENT; } + m_tag_delete(m, mtag); + + mtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL); + if (mtag != NULL) + m_tag_delete(m, mtag); } else if (pf_normalize_ip(m0, kif, &reason, &pd) != PF_PASS) { /* We do IP header normalization and packet reassembly here */ action = PF_DROP; @@ -8241,17 +8246,19 @@ done: if (__predict_false(ip_divert_ptr != NULL) && action == PF_PASS && r->divert.port && !PACKET_LOOPED(&pd)) { - ipfwtag = m_tag_alloc(MTAG_IPFW_RULE, 0, - sizeof(struct ipfw_rule_ref), M_NOWAIT | M_ZERO); - if (ipfwtag != NULL) { - ((struct ipfw_rule_ref *)(ipfwtag+1))->info = + mtag = m_tag_alloc(MTAG_PF_DIVERT, 0, + sizeof(struct pf_divert_mtag), M_NOWAIT | M_ZERO); + if (mtag != NULL) { + ((struct pf_divert_mtag *)(mtag+1))->ndir = ntohs(r->divert.port); - ((struct ipfw_rule_ref *)(ipfwtag+1))->rulenum = dir; + ((struct pf_divert_mtag *)(mtag+1))->idir = + (dir == PF_IN) ? PF_DIVERT_MTAG_DIR_IN : + PF_DIVERT_MTAG_DIR_OUT; if (s) PF_STATE_UNLOCK(s); - m_tag_prepend(m, ipfwtag); + m_tag_prepend(m, mtag); if (m->m_flags & M_FASTFWD_OURS) { if (pd.pf_mtag == NULL && ((pd.pf_mtag = pf_get_mtag(m)) == NULL)) { @@ -8279,6 +8286,9 @@ done: ("pf: failed to allocate divert tag\n")); } } + /* this flag will need revising if the pkt is forwarded */ + if (pd.pf_mtag) + pd.pf_mtag->flags &= ~PF_MTAG_FLAG_PACKET_LOOPED; if (pd.act.log) { struct pf_krule *lr; diff --git a/tests/sys/netpfil/pf/Makefile b/tests/sys/netpfil/pf/Makefile index 44fe95680dfb..c9adab5626d4 100644 --- a/tests/sys/netpfil/pf/Makefile +++ b/tests/sys/netpfil/pf/Makefile @@ -2,10 +2,12 @@ PACKAGE= tests TESTSDIR= ${TESTSBASE}/sys/netpfil/pf +BINDIR= ${TESTSDIR} TESTS_SUBDIRS+= ioctl ATF_TESTS_SH+= altq \ anchor \ + divert-to \ dup \ ether \ forward \ @@ -45,6 +47,8 @@ ATF_TESTS_PYTEST+= sctp.py # Tests reuse jail names and so cannot run in parallel. TEST_METADATA+= is_exclusive=true +PROGS= divapp + ${PACKAGE}FILES+= CVE-2019-5597.py \ CVE-2019-5598.py \ daytime_inetd.conf \ diff --git a/tests/sys/netpfil/pf/divapp.c b/tests/sys/netpfil/pf/divapp.c new file mode 100644 index 000000000000..908c41eaa67f --- /dev/null +++ b/tests/sys/netpfil/pf/divapp.c @@ -0,0 +1,149 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2023 Igor Ostapenko + * + * 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 PROJECT 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 PROJECT 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. + */ + +/* Used by tests like divert-to.sh */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +struct context { + unsigned short divert_port; + bool divert_back; + + int fd; + struct sockaddr_in sin; + socklen_t sin_len; + char pkt[IP_MAXPACKET]; + ssize_t pkt_n; +}; + +static void +init(struct context *c) +{ + c->fd = socket(PF_DIVERT, SOCK_RAW, 0); + if (c->fd == -1) + errx(EX_OSERR, "init: Cannot create divert socket."); + + memset(&c->sin, 0, sizeof(c->sin)); + c->sin.sin_family = AF_INET; + c->sin.sin_port = htons(c->divert_port); + c->sin.sin_addr.s_addr = INADDR_ANY; + c->sin_len = sizeof(struct sockaddr_in); + + if (bind(c->fd, (struct sockaddr *) &c->sin, c->sin_len) != 0) + errx(EX_OSERR, "init: Cannot bind divert socket."); +} + +static ssize_t +recv_pkt(struct context *c) +{ + fd_set readfds; + struct timeval timeout; + int s; + + FD_ZERO(&readfds); + FD_SET(c->fd, &readfds); + timeout.tv_sec = 3; + timeout.tv_usec = 0; + + s = select(c->fd + 1, &readfds, 0, 0, &timeout); + if (s == -1) + errx(EX_IOERR, "recv_pkt: select() errors."); + if (s != 1) // timeout + return -1; + + c->pkt_n = recvfrom(c->fd, c->pkt, sizeof(c->pkt), 0, + (struct sockaddr *) &c->sin, &c->sin_len); + if (c->pkt_n == -1) + errx(EX_IOERR, "recv_pkt: recvfrom() errors."); + + return (c->pkt_n); +} + +static void +send_pkt(struct context *c) +{ + ssize_t n; + char errstr[32]; + + n = sendto(c->fd, c->pkt, c->pkt_n, 0, + (struct sockaddr *) &c->sin, c->sin_len); + if (n == -1) { + strerror_r(errno, errstr, sizeof(errstr)); + errx(EX_IOERR, "send_pkt: sendto() errors: %d %s.", errno, errstr); + } + if (n != c->pkt_n) + errx(EX_IOERR, "send_pkt: sendto() sent %zd of %zd bytes.", + n, c->pkt_n); +} + +int +main(int argc, char *argv[]) +{ + struct context c; + int npkt; + + if (argc < 2) + errx(EX_USAGE, + "Usage: %s [divert-back]", argv[0]); + + memset(&c, 0, sizeof(struct context)); + + c.divert_port = (unsigned short) strtol(argv[1], NULL, 10); + if (c.divert_port == 0) + errx(EX_USAGE, "divert port is not defined."); + + if (argc >= 3 && strcmp(argv[2], "divert-back") == 0) + c.divert_back = true; + + + init(&c); + + npkt = 0; + while (recv_pkt(&c) > 0) { + if (c.divert_back) + send_pkt(&c); + npkt++; + if (npkt >= 10) + break; + } + + if (npkt != 1) + errx(EXIT_FAILURE, "%d: npkt=%d.", c.divert_port, npkt); + + return EXIT_SUCCESS; +} diff --git a/tests/sys/netpfil/pf/divert-to.sh b/tests/sys/netpfil/pf/divert-to.sh new file mode 100644 index 000000000000..0a37cea78ad3 --- /dev/null +++ b/tests/sys/netpfil/pf/divert-to.sh @@ -0,0 +1,413 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2023 Igor Ostapenko +# +# 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. + +# +# pf divert-to action test cases +# +# -----------| |-- |----| ----| |----------- +# ( ) inbound |pf_check_in| ) -> |host| -> ( ) |pf_check_out| outbound ) +# -----------| | |-- |----| ----| | |----------- +# | | +# \|/ \|/ +# |------| |------| +# |divapp| |divapp| +# |------| |------| +# +# The basic cases: +# - inbound > diverted | divapp terminated +# - inbound > diverted > inbound | host terminated +# - inbound > diverted > outbound | network terminated +# - outbound > diverted | divapp terminated +# - outbound > diverted > outbound | network terminated +# - outbound > diverted > inbound | e.g. host terminated +# +# When a packet is diverted, forwarded, and possibly diverted again: +# - inbound > diverted > inbound > forwarded +# > outbound | network terminated +# - inbound > diverted > inbound > forwarded +# > outbound > diverted > outbound | network terminated +# +# Test case naming legend: +# in - inbound +# div - diverted +# out - outbound +# fwd - forwarded +# ipfwon - with ipfw enabled, which allows all +# + +. $(atf_get_srcdir)/utils.subr + +divert_init() +{ + if ! kldstat -q -m ipdivert; then + atf_skip "This test requires ipdivert" + fi +} + +ipfw_init() +{ + if ! kldstat -q -m ipfw; then + atf_skip "This test requires ipfw" + fi +} + +assert_ipfw_is_off() +{ + if kldstat -q -m ipfw; then + atf_skip "This test is for the case when ipfw is not loaded" + fi +} + +atf_test_case "ipfwoff_in_div" "cleanup" +ipfwoff_in_div_head() +{ + atf_set descr 'Test inbound > diverted | divapp terminated' + atf_set require.user root +} +ipfwoff_in_div_body() +{ + local ipfwon + + pft_init + divert_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + epair=$(vnet_mkepair) + vnet_mkjail div ${epair}b + ifconfig ${epair}a 192.0.2.1/24 up + jexec div ifconfig ${epair}b 192.0.2.2/24 up + test $ipfwon && jexec div ipfw add 65534 allow all from any to any + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + jexec div pfctl -e + pft_set_rules div \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 2000" + + jexec div $(atf_get_srcdir)/divapp 2000 & + divapp_pid=$! + # Wait for the divapp to be ready + sleep 1 + + # divapp is expected to "eat" the packet + atf_check -s not-exit:0 -o ignore ping -c1 192.0.2.2 + + wait $divapp_pid +} +ipfwoff_in_div_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_in_div" "cleanup" +ipfwon_in_div_head() +{ + atf_set descr 'Test inbound > diverted | divapp terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_in_div_body() +{ + ipfwoff_in_div_body "ipfwon" +} +ipfwon_in_div_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwoff_in_div_in" "cleanup" +ipfwoff_in_div_in_head() +{ + atf_set descr 'Test inbound > diverted > inbound | host terminated' + atf_set require.user root +} +ipfwoff_in_div_in_body() +{ + local ipfwon + + pft_init + divert_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + epair=$(vnet_mkepair) + vnet_mkjail div ${epair}b + ifconfig ${epair}a 192.0.2.1/24 up + jexec div ifconfig ${epair}b 192.0.2.2/24 up + test $ipfwon && jexec div ipfw add 65534 allow all from any to any + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + jexec div pfctl -e + pft_set_rules div \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 2000 no state" + + jexec div $(atf_get_srcdir)/divapp 2000 divert-back & + divapp_pid=$! + # Wait for the divapp to be ready + sleep 1 + + # divapp is NOT expected to "eat" the packet + atf_check -s exit:0 -o ignore ping -c1 192.0.2.2 + + wait $divapp_pid +} +ipfwoff_in_div_in_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_in_div_in" "cleanup" +ipfwon_in_div_in_head() +{ + atf_set descr 'Test inbound > diverted > inbound | host terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_in_div_in_body() +{ + ipfwoff_in_div_in_body "ipfwon" +} +ipfwon_in_div_in_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwoff_out_div" "cleanup" +ipfwoff_out_div_head() +{ + atf_set descr 'Test outbound > diverted | divapp terminated' + atf_set require.user root +} +ipfwoff_out_div_body() +{ + local ipfwon + + pft_init + divert_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + epair=$(vnet_mkepair) + vnet_mkjail div ${epair}b + ifconfig ${epair}a 192.0.2.1/24 up + jexec div ifconfig ${epair}b 192.0.2.2/24 up + test $ipfwon && jexec div ipfw add 65534 allow all from any to any + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + jexec div pfctl -e + pft_set_rules div \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq no state" \ + "pass out inet proto icmp icmp-type echorep divert-to 127.0.0.1 port 2000 no state" + + jexec div $(atf_get_srcdir)/divapp 2000 & + divapp_pid=$! + # Wait for the divapp to be ready + sleep 1 + + # divapp is expected to "eat" the packet + atf_check -s not-exit:0 -o ignore ping -c1 192.0.2.2 + + wait $divapp_pid +} +ipfwoff_out_div_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_out_div" "cleanup" +ipfwon_out_div_head() +{ + atf_set descr 'Test outbound > diverted | divapp terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_out_div_body() +{ + ipfwoff_out_div_body "ipfwon" +} +ipfwon_out_div_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwoff_out_div_out" "cleanup" +ipfwoff_out_div_out_head() +{ + atf_set descr 'Test outbound > diverted > outbound | network terminated' + atf_set require.user root +} +ipfwoff_out_div_out_body() +{ + local ipfwon + + pft_init + divert_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + epair=$(vnet_mkepair) + vnet_mkjail div ${epair}b + ifconfig ${epair}a 192.0.2.1/24 up + jexec div ifconfig ${epair}b 192.0.2.2/24 up + test $ipfwon && jexec div ipfw add 65534 allow all from any to any + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + jexec div pfctl -e + pft_set_rules div \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq no state" \ + "pass out inet proto icmp icmp-type echorep divert-to 127.0.0.1 port 2000 no state" + + jexec div $(atf_get_srcdir)/divapp 2000 divert-back & + divapp_pid=$! + # Wait for the divapp to be ready + sleep 1 + + # divapp is NOT expected to "eat" the packet + atf_check -s exit:0 -o ignore ping -c1 192.0.2.2 + + wait $divapp_pid +} +ipfwoff_out_div_out_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_out_div_out" "cleanup" +ipfwon_out_div_out_head() +{ + atf_set descr 'Test outbound > diverted > outbound | network terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_out_div_out_body() +{ + ipfwoff_out_div_out_body "ipfwon" +} +ipfwon_out_div_out_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwoff_in_div_in_fwd_out_div_out" "cleanup" +ipfwoff_in_div_in_fwd_out_div_out_head() +{ + atf_set descr 'Test inbound > diverted > inbound > forwarded > outbound > diverted > outbound | network terminated' + atf_set require.user root +} +ipfwoff_in_div_in_fwd_out_div_out_body() +{ + local ipfwon + + pft_init + divert_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + # host router site + epair0=$(vnet_mkepair) + epair1=$(vnet_mkepair) + + vnet_mkjail router ${epair0}b ${epair1}a + ifconfig ${epair0}a 192.0.2.1/24 up + jexec router sysctl net.inet.ip.forwarding=1 + jexec router ifconfig ${epair0}b 192.0.2.2/24 up + jexec router ifconfig ${epair1}a 198.51.100.1/24 up + test $ipfwon && jexec router ipfw add 65534 allow all from any to any + + vnet_mkjail site ${epair1}b + jexec site ifconfig ${epair1}b 198.51.100.2/24 up + jexec site route add default 198.51.100.1 + test $ipfwon && jexec site ipfw add 65534 allow all from any to any + + route add -net 198.51.100.0/24 192.0.2.2 + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + # Should be routed without pf + atf_check -s exit:0 -o ignore ping -c3 198.51.100.2 + + jexec router pfctl -e + pft_set_rules router \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 2001 no state" \ + "pass out inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 2002 no state" + + jexec router $(atf_get_srcdir)/divapp 2001 divert-back & + indivapp_pid=$! + jexec router $(atf_get_srcdir)/divapp 2002 divert-back & + outdivapp_pid=$! + # Wait for the divappS to be ready + sleep 1 + + # Both divappS are NOT expected to "eat" the packet + atf_check -s exit:0 -o ignore ping -c1 198.51.100.2 + + wait $indivapp_pid && wait $outdivapp_pid +} +ipfwoff_in_div_in_fwd_out_div_out_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_in_div_in_fwd_out_div_out" "cleanup" +ipfwon_in_div_in_fwd_out_div_out_head() +{ + atf_set descr 'Test inbound > diverted > inbound > forwarded > outbound > diverted > outbound | network terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_in_div_in_fwd_out_div_out_body() +{ + ipfwoff_in_div_in_fwd_out_div_out_body "ipfwon" +} +ipfwon_in_div_in_fwd_out_div_out_cleanup() +{ + pft_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case "ipfwoff_in_div" + atf_add_test_case "ipfwoff_in_div_in" + atf_add_test_case "ipfwon_in_div" + atf_add_test_case "ipfwon_in_div_in" + + atf_add_test_case "ipfwoff_out_div" + atf_add_test_case "ipfwoff_out_div_out" + atf_add_test_case "ipfwon_out_div" + atf_add_test_case "ipfwon_out_div_out" + + atf_add_test_case "ipfwoff_in_div_in_fwd_out_div_out" + atf_add_test_case "ipfwon_in_div_in_fwd_out_div_out" +} From nobody Thu Nov 9 14:39:21 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4N93kGKz4yvl2; Thu, 9 Nov 2023 14:39: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4N937wXz3Q5K; Thu, 9 Nov 2023 14:39:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540761; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5cHDtvtmoAGfoseK8SJFja+8z9MbQp5NzH6UmvMMmnI=; b=VGLVUinTCAMSKCTazX9gWrubQPCYwYMXxADvhYg7RXl7zZL9Ufzl67naMmWI0/JCrYyIoU 2FG3hHowZSRT05np5T4u/3suw0BVQc2U7faRgUuE3dMrkPyCX1yiekhQWFnO6En2JVEyMQ Qrm72JF+RcG/UMQYpUuJwInimmf1zYeu+YeHrxtAjWfwWoCOnMWKgHTqFwEEbc8EfQEf5W qz5PiGiSSUtReJU4tI+4/q24rkqGuX1R9zg8KL6OL7wihXMQHpm4TZHeihh15AeRunsSv7 okWGLrvCuiL7GSjtoChPA5H8DwgeV3S5Hgc9M1e4/6IyWdryKp6/TN1g45kK9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540761; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5cHDtvtmoAGfoseK8SJFja+8z9MbQp5NzH6UmvMMmnI=; b=WAA5ENbxruJ+MCN7W8JaOSi/Xc6Le5vm/9tOSmIvanrN8t15QlJXi+g79ZDK2vD3E2LaoR ToRNnSf2e5HY4KRLrXLQ7rjuGdoviy1oB672Bi/UOisGuVBXUTa0NNHbGKlQZM6KQoGmLH t/KLe3kDC3d4wjCg9FKvMdGuJ1Rnr+kvotT9aFCVpNu4jkp4xo4IYTFH8qNrjPXtW39fR8 V9E0UX82/KCP11N33DVPBp3fyS6iGbldlZxa1qMoAM3+pzN3hHA3SUtyu+9Fs+Tyb5wjG8 rT9sVtYORq6bGm1lCb7dcX3E7s98RIxp/g/nXvo/zcXHDpQpeOPLYU1LpvTHyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540761; a=rsa-sha256; cv=none; b=PfT4ZxPoGlOrXicQ9wdoZ8BQpMLxys74mXytlf0TVN9zOFUEvn/Eh5RJYJxKPCyvwc4k6O EWKdn9MC7E+DZhuJCpz1E7OoY9gxKGtCDJrwAYcuG2OGEtBd0vMC1xpnZlzYB6dWRdt/K1 9LUJuKIqzXsZKmqkwR3gkYb25EUWkTJ4zqOvBQugyJ4VwoZKvoin5k6N4G+uOcQWXd0XQU S8cE9bOR3oAmttHwjPtnOs3ovXPau3hjTzEBRhgX77jLeehuXsNxEMrHRyvU8IWCVCr0Kt nAlwvixGMZt39ExRtBJ1UV1VR0oPYFsTkeehYeSdpZE1PtRl0IPH81U+ko3b3Q== 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 4SR4N91xPYz4cK; Thu, 9 Nov 2023 14:39:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EdLRX064483; Thu, 9 Nov 2023 14:39:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EdLp4064479; Thu, 9 Nov 2023 14:39:21 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:39:21 GMT Message-Id: <202311091439.3A9EdLp4064479@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: 3903a749c8bf - stable/14 - pf: use an enum for packet direction in divert tag List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 3903a749c8bfcb50f85711ec95eecb8ce50644d9 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=3903a749c8bfcb50f85711ec95eecb8ce50644d9 commit 3903a749c8bfcb50f85711ec95eecb8ce50644d9 Author: Kristof Provost AuthorDate: 2023-10-20 07:13:56 +0000 Commit: Kristof Provost CommitDate: 2023-11-09 09:56:20 +0000 pf: use an enum for packet direction in divert tag The benefit is that in the debugger you will see PF_DIVERT_MTAG_DIR_IN instead of 1 when looking at a structure. And compilation time failure if anybody sets it to a wrong value. Using "port" instead of "ndir" when assigning a port improves readability of code. Suggested by: glebius MFC after: 3 weeks X-MFC-With: fabf705f4b (cherry picked from commit c1146e6ad67fb866c2472a1cbe5609fd939fd5ef) --- sys/netinet/ip_divert.c | 2 +- sys/netinet/ip_var.h | 14 ++++++++++---- sys/netpfil/pf/pf.c | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index ad95a1ce0d76..78ca36fc2a0f 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -182,7 +182,7 @@ divert_packet(struct mbuf *m, bool incoming) (((struct ipfw_rule_ref *)(mtag+1))->info)); } else if ((mtag = m_tag_locate(m, MTAG_PF_DIVERT, 0, NULL)) != NULL) { cookie = ((struct pf_divert_mtag *)(mtag+1))->idir; - nport = htons(((struct pf_divert_mtag *)(mtag+1))->ndir); + nport = htons(((struct pf_divert_mtag *)(mtag+1))->port); } else { m_freem(m); return; diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index a8c687682af9..a8a9adc1d4c6 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -328,11 +328,17 @@ extern int (*ip_dn_ctl_ptr)(struct sockopt *); extern int (*ip_dn_io_ptr)(struct mbuf **, struct ip_fw_args *); /* pf specific mtag for divert(4) support */ -enum { PF_DIVERT_MTAG_DIR_IN=1, PF_DIVERT_MTAG_DIR_OUT=2 }; +__enum_uint8_decl(pf_mtag_dir) { + PF_DIVERT_MTAG_DIR_IN = 1, + PF_DIVERT_MTAG_DIR_OUT = 2 +}; struct pf_divert_mtag { - uint16_t idir; // initial pkt direction - uint16_t ndir; // a) divert(4) port upon initial diversion - // b) new direction upon pkt re-enter + __enum_uint8(pf_mtag_dir) idir; // initial pkt direction + union { + __enum_uint8(pf_mtag_dir) ndir; // a) divert(4) port upon initial diversion + // b) new direction upon pkt re-enter + uint16_t port; /* Initial divert(4) port */ + }; }; #define MTAG_PF_DIVERT 1262273569 diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index eb2e09b2e6f2..4990dce653b1 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -8249,7 +8249,7 @@ done: mtag = m_tag_alloc(MTAG_PF_DIVERT, 0, sizeof(struct pf_divert_mtag), M_NOWAIT | M_ZERO); if (mtag != NULL) { - ((struct pf_divert_mtag *)(mtag+1))->ndir = + ((struct pf_divert_mtag *)(mtag+1))->port = ntohs(r->divert.port); ((struct pf_divert_mtag *)(mtag+1))->idir = (dir == PF_IN) ? PF_DIVERT_MTAG_DIR_IN : From nobody Thu Nov 9 14:39:22 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4NB6L4Qz4yvyN; Thu, 9 Nov 2023 14:39: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4NB4J5wz3Q0d; Thu, 9 Nov 2023 14:39:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UZgyfEktxtpfNrVNYKDMwz6GloX/dAGlEBRzi/VsQjY=; b=EB955uUtEnkyKW0CxZISLMtwpbpPNGV6W3iZDBif5YOfYiDeJ5Me2ZAoRArM+yIK62u3od AMb7DDNiGUXeALer7Tf4H6+cylbzZxN5S9GCt9ionSTQUfa1uqBbYpNFVWllGvWyi/xSm7 8gd/tD496lt+2HblpD0ts9YHztnbTkD55kyMJbOumwycCh1k8Y64ZzpdsJjts7WTNRJW4A pc84+c5otE4U7IQy5WMEII/cCf/lC1D8v/oCX1NjhTwpmaxBuhUI/hsPRKc/eT/CakSi2A gO/kLUMPOjGu9sBSPzWLR6EwaIbawJldNGYr9ZW1wYiopEgyPIp7wikUO24xJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UZgyfEktxtpfNrVNYKDMwz6GloX/dAGlEBRzi/VsQjY=; b=EWzZS1Qu3jU3R8Z5V+2w0i6+DF1F7T7nK8N0q2sAwkEho7qKY/CFQAyfZyHLfOc+3nqbK1 dYUWUWV6aBtXXReD9xbPFRr7ssAZ5x2shx5TM7HvlApfkHYak+YEZrSGbykElqwGME8aXg ngIsZjBPAmg+tlrtx77J7IqSNT9NZXNQfqp509b7/dqnaoBlrHETplduTCrCm0B6haycMl dUF/z7t+qYpEBUwbXULCREwJhhwZ23BJLwzlOAdD2z8ruEB1wtI2zdX1JtWQicGOOyzQSO HCe+Vs+ge+I9NR2SCLDsWiICwO2kd423E33l+GSxG5sOupo+nUTwj1Wdtg4azQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540762; a=rsa-sha256; cv=none; b=pQ9HXsodx/JUInXO0KdtrermqBHxDY7fa9sU9GDIg9NnEmTvjDuajwd/OzgePZFnyrHtrJ aMwmYY3IDEFa+XwZxwq8CXxcOfg8RxqK/Z1NRkfuiET7c2JzLLoO/yhAX37zTzTkTm5KRX pDAkEC333ybyVCflXhpbkmRSAfDKIbbXG2Ri3hokca2twvVbZ0npSOjyTlrGfdZ0CIFFUl mg1QU9XSdRTa6eBkuXqH7KlzucvQWs3xoS9HQ6In1OVusldN6Ba/FyHmQ7EBK2W2/fBrKk XuA3SWb9vieI2XyLMo+JQfGdWD8IHhJ9Th7ZeNSJyulu41VxidhqAYVN2uJi5g== 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 4SR4NB3NkPz4cL; Thu, 9 Nov 2023 14:39:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EdMXk064524; Thu, 9 Nov 2023 14:39:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EdMe3064521; Thu, 9 Nov 2023 14:39:22 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:39:22 GMT Message-Id: <202311091439.3A9EdMe3064521@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: 46a96d68f63f - stable/14 - ip_var.h: align comment style List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 46a96d68f63fc7ba53642df43fc48c88d08e56ee Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=46a96d68f63fc7ba53642df43fc48c88d08e56ee commit 46a96d68f63fc7ba53642df43fc48c88d08e56ee Author: Igor Ostapenko AuthorDate: 2023-11-01 12:21:16 +0000 Commit: Kristof Provost CommitDate: 2023-11-09 09:56:26 +0000 ip_var.h: align comment style MFC after: 2 weeks Reviewed by: kp Pull Request: https://github.com/freebsd/freebsd-src/pull/883 (cherry picked from commit b68d2789f0d745d420203ca7dae9408f81cc7206) --- sys/netinet/ip_var.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h index a8a9adc1d4c6..3220679d749f 100644 --- a/sys/netinet/ip_var.h +++ b/sys/netinet/ip_var.h @@ -333,11 +333,10 @@ __enum_uint8_decl(pf_mtag_dir) { PF_DIVERT_MTAG_DIR_OUT = 2 }; struct pf_divert_mtag { - __enum_uint8(pf_mtag_dir) idir; // initial pkt direction + __enum_uint8(pf_mtag_dir) idir; /* initial pkt direction */ union { - __enum_uint8(pf_mtag_dir) ndir; // a) divert(4) port upon initial diversion - // b) new direction upon pkt re-enter - uint16_t port; /* Initial divert(4) port */ + __enum_uint8(pf_mtag_dir) ndir; /* new dir after re-enter */ + uint16_t port; /* initial divert(4) port */ }; }; #define MTAG_PF_DIVERT 1262273569 From nobody Thu Nov 9 14:40:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4PV4hNXz4ywFw; Thu, 9 Nov 2023 14:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4PV4Ck5z3Qrb; Thu, 9 Nov 2023 14:40:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vEptvHbxibNocBLLvFD5YPzWgoodmLe5upTPukuvOe0=; b=r5zLMerJpWDjNeZbEQAxZWSo2xMPs7GmM2ifE/PN0IvF2TNlZ7VTKaq090C1ux5rwV0ntB KNdzU6sAn2FU6NKgbzzwyWXb+fOoJVofHtiOSDoA8q80wAKT/7kz/iAj/yXz/8WqGyOGwb tHiwigIV5NFMEFCrZ+e4E79pwjNeMrULwwX/qvy2j+9jdHQarbd3pZwe+Q7T2o+oHerBW7 gSRwnJGWJIelCeYXuqo9B2foyCyJD3hh6/AQc2djzFzG8TzxMowYo9LXhBeyyYMQJkxtWZ azxkIrfrO3otxnYvzwSR1+YPdQJ8y7ppXz5Hdm3y/f8cOhO5zS7Dty2gTY00jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vEptvHbxibNocBLLvFD5YPzWgoodmLe5upTPukuvOe0=; b=NVumtjiK2GsPF8Uor1hQOvstVHo5hLry+jBlEjlaPBBW19P+eGH2zMAm9BOg+ujQt5uLX4 fplx20p2zfO67XVI76U7+VPWivh3gVGQ1jatm1FiYlAnKy2pcWxGo3sRwKExYSC+CpsjIu NXmT0dpiWCwbpMqe4UtDeDRIc7c+vumDHbF5hk5Q0NYmmXHb8+EEQoDG4EnRkyOmuWBeUF tcyN531wN/fOwwFt0vpeTlM3X3MgIS3kQk1S7Umh4BmO8dkzAohub5lyhcCUJq1EqGZVkS T54kZiuzJpRfCB7/9hRF9bUH4B/BKYSUe/3goUgTD6sw2N+3+5rjLx64FGlTvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540830; a=rsa-sha256; cv=none; b=b6lSgj21s2Hhjvu68TZ5/IdSyokn6+014BQybdXdXKp3hrWYtk2mvw9i4RVWqbAaShdnzl Uq8QHX9wY8GEe4M1VQomm0nGMXfzuvzg609Jm5K/XchhE/ZGRuRiT+nTZV5v2uqpSOWMUW k6RwJloGdtMBB70gHBbSC9PN/4V3IRvLbeHuFUeRsyUAMk9tZZC4uCqKYqhyJNJNlTNO0r +3pjZwaKg0DRn4QBiU+r1O6eKB7yeFbjzkA/mX7NMed2Gwz6rdBNzk+wQagrHNc2uEV56l r1+7bfs4t9/16o/6MGMrNl2+4SzzOQ7yi3tb9hdcBFvqvN8N5CBTmqCQ35BBqQ== 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 4SR4PV3GT9z4F6; Thu, 9 Nov 2023 14:40:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EeUwF073301; Thu, 9 Nov 2023 14:40:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EeUj5073298; Thu, 9 Nov 2023 14:40:30 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:40:30 GMT Message-Id: <202311091440.3A9EeUj5073298@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: 3c3a703ee657 - stable/14 - amd64: Remove PMAP_INLINE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 3c3a703ee6572fa38768f14329154a10a490379b Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3c3a703ee6572fa38768f14329154a10a490379b commit 3c3a703ee6572fa38768f14329154a10a490379b Author: Mark Johnston AuthorDate: 2023-11-02 18:30:10 +0000 Commit: Mark Johnston CommitDate: 2023-11-09 14:39:57 +0000 amd64: Remove PMAP_INLINE With clang it expands to "inline"; clang in practice may inline externally visible functions even without the hint. So just remove the hints and let the compiler decide. No functional change intended. pmap.o is identical before and after this patch. Reviewed by: alc MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D42446 (cherry picked from commit 2b084923824e0d5133fe5aff580b4e562fe7dd19) --- sys/amd64/amd64/pmap.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index eedbf8fd8067..233069d37bfb 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -338,16 +338,6 @@ safe_to_clear_referenced(pmap_t pmap, pt_entry_t pte) return (FALSE); } -#if !defined(DIAGNOSTIC) -#ifdef __GNUC_GNU_INLINE__ -#define PMAP_INLINE __attribute__((__gnu_inline__)) inline -#else -#define PMAP_INLINE extern inline -#endif -#else -#define PMAP_INLINE -#endif - #ifdef PV_STATS #define PV_STAT(x) do { x ; } while (0) #else @@ -1560,7 +1550,7 @@ pt_entry_t vtoptem __read_mostly = ((1ul << (NPTEPGSHIFT + NPDEPGSHIFT + NPDPEPGSHIFT + NPML4EPGSHIFT)) - 1) << 3; vm_offset_t PTmap __read_mostly = (vm_offset_t)P4Tmap; -PMAP_INLINE pt_entry_t * +pt_entry_t * vtopte(vm_offset_t va) { KASSERT(va >= VM_MAXUSER_ADDRESS, ("vtopte on a uva/gpa 0x%0lx", va)); @@ -3623,7 +3613,7 @@ pmap_invalidate_all(pmap_t pmap) } } -PMAP_INLINE void +void pmap_invalidate_cache(void) { @@ -3974,7 +3964,7 @@ pmap_kextract(vm_offset_t va) * Add a wired page to the kva. * Note: not SMP coherent. */ -PMAP_INLINE void +void pmap_kenter(vm_offset_t va, vm_paddr_t pa) { pt_entry_t *pte; @@ -4000,7 +3990,7 @@ pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode) * Remove a page from the kernel pagetables. * Note: not SMP coherent. */ -PMAP_INLINE void +void pmap_kremove(vm_offset_t va) { pt_entry_t *pte; From nobody Thu Nov 9 14:40:31 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4PW6rgBz4yw0Z; Thu, 9 Nov 2023 14:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4PW4yr6z3Qxk; Thu, 9 Nov 2023 14:40:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+l/6iIUii5KFcLIZ0Cw1mywByMiJsAxwJb0E/XGL7k0=; b=dAm7VasoBMtkJzGpCXv1jSMZLL2j8IiNZzVjVgZbrL4ZGGrAFRQJkrNp0a/SwUxBkPj1Rc rKkB5rAU/V3WncQ+Ktt8RYP2WpyCT04xMPp0yzsPzjc6C7tqz+MN6fNXHTdo6DeI+dtpMl CUsvyECd1TStRAaLdsywpWuMpePPZ49B0+uoooFVoykB/57kG8cTgKgPjem/zxXyRvLPoJ F+GMu3nntiPXDANUv8I/sf8BofbXcHbA5J8Grk1BcZRL4ze0guuMqpO7djqaqjvS0bNBZT JoC4IKQa1Xk0lbUhXyITqREuDXPd0O16hMJcPwM8tYHKwqE/7DOcNF7TZ307HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+l/6iIUii5KFcLIZ0Cw1mywByMiJsAxwJb0E/XGL7k0=; b=aQYNT6q0Fo2Y6bBFMJ4OudBceHZkl/rG+lICc+4L/MwLnHyomzfxJyT3DZpKPDTBefvhub iIAak/0/Dkw6KoiLD3cgII1u10JpJsIoI6gXtL3+2gLi2aCZw13hEV3J1ZCRXurvL7dXSz DQG9x85e0bLxes0vxSuf3tiWaYZ/5QkbsGo2M7cfUxyCqDddlRMXCWlFmXOWBO0kFkmjG3 qkGZm1/29GPVUdLCSktH2jeJsY8GKy8uqDWYV/hnDv1F+3dp4JO1fpdh43KEmMWIZciBem J3UWc7zryti7GsHepoVoB3fhpr44niZFU8pb8nHFy/wWtcSADtdA2CnASdX64Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540831; a=rsa-sha256; cv=none; b=rYqVv0mNr8WIIP1foceGTdZ1IFFEtZvV01f9h0Iak/R/XhciJcy+9aG+KMaWup3YLWlzO7 q6SG9hAvTRayO9mNZ02hPWXlKnIzzK2yqDSWMhxR/cNHJb1WywGcpMAYoSPgbXOZiVSq7M hO6PxSc9Tk1AvupOpSgy1YoXiClzo5l73RygYQRNSg9+1pYnbVwVq81DLTZYfi/skmFd3m 0y1Fi0X0F+JAGYdXX1/STn0L5dwdqpkrpVjCsRRbvTRZ1dq3rbeAwhDZayLL39kmysynMx P6i6KlpEfUpKZrqACny3nOPY3kmpnPqUyWS46tQ7EefuxXOM3K621De3kg/Wbw== 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 4SR4PW43JHz4cP; Thu, 9 Nov 2023 14:40:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EeVtZ073340; Thu, 9 Nov 2023 14:40:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EeVrE073337; Thu, 9 Nov 2023 14:40:31 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:40:31 GMT Message-Id: <202311091440.3A9EeVrE073337@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: 00c537586fdf - stable/14 - riscv: Retire PMAP_INLINE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 00c537586fdf5044f0cd52e566d4c18163b61e77 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=00c537586fdf5044f0cd52e566d4c18163b61e77 commit 00c537586fdf5044f0cd52e566d4c18163b61e77 Author: Mark Johnston AuthorDate: 2023-11-02 18:33:20 +0000 Commit: Mark Johnston CommitDate: 2023-11-09 14:40:04 +0000 riscv: Retire PMAP_INLINE pmap_kremove() is not called from within pmap.c, so there's no reason to inline it. No functional change intended. Reviewed by: alc, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D42287 (cherry picked from commit 953345922398ae6c029713087c8494a346d90c85) --- sys/riscv/riscv/pmap.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c index 49ee54b37918..1d1d0fc839ca 100644 --- a/sys/riscv/riscv/pmap.c +++ b/sys/riscv/riscv/pmap.c @@ -173,16 +173,6 @@ #define NUL1E (Ln_ENTRIES * NUL0E) #define NUL2E (Ln_ENTRIES * NUL1E) -#if !defined(DIAGNOSTIC) -#ifdef __GNUC_GNU_INLINE__ -#define PMAP_INLINE __attribute__((__gnu_inline__)) inline -#else -#define PMAP_INLINE extern inline -#endif -#else -#define PMAP_INLINE -#endif - #ifdef PV_STATS #define PV_STAT(x) do { x ; } while (0) #define __pv_stat_used @@ -1054,7 +1044,7 @@ pmap_kenter_device(vm_offset_t sva, vm_size_t size, vm_paddr_t pa) * Remove a page from the kernel pagetables. * Note: not SMP coherent. */ -PMAP_INLINE void +void pmap_kremove(vm_offset_t va) { pt_entry_t *l3; From nobody Thu Nov 9 14:41:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4QR4WVwz4yw9v; Thu, 9 Nov 2023 14:41: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4QR07ylz3Rtq; Thu, 9 Nov 2023 14:41:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JnTtRuxX+2ik/Mels5s2ct2RE+yVNCnG+3L3gW+a4Uw=; b=rMta8epIHkMumWNsc82OSysbwAI1hBigbVGahrTnI1Z2Z6jX5lXteJ0FlZA/Av+16Tp+Vy Zxp2ZGiBfugP9Jz48YBtNjWiohpcnbJgUJkk8rSgGNgyFApsF+H47AdGOP33CohfLt8x5k lYolGGkWT2K1/SYzXpN3aeLYlUJQ3RJnTkNR6x0AOou8mNuxVQIumFA+VnML72brJ7PWiW Yzh+s7+F+mR2WVFrxmF7lrZ5PPk59Vg1ANfqjboNqb2CLWZL1fm5tNeYxWIs/Mbtw4ltBu ANizK+42RK9/xIPRuyGFHSCOE/5oTYE9BNFhoyFvyV/vKo+c0f6e696AQxuWgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JnTtRuxX+2ik/Mels5s2ct2RE+yVNCnG+3L3gW+a4Uw=; b=HykvKy6LItQDTvXsaE5qRVwWIklpEKlraoUZXd0LejtNlZEVx/MxCl0RqS+IfCZH0bbn3T diCynCYXNmmP/DsEUMuUcENf2t8H5mPtwDgBIpi6itQRzJXbAMaoH+JFbKeMcY4LpDtT1c D27iWB+HeHe8HaxZpDB0BpQJT1CUlrGujy88T6nE2kHhQ8XJfsMKgZjhJeSyAXbzs2keqG QC4x6nimRpsX486vdal/CAvfUFgaIdUAJxJOz2+qcpVOIFUDBsjIE7tXmINUBxdsm1UXPH 6ukj7+e90WCGcElXeN70I6y+rE539K97K3gnhTO4aN2WscT6IDAE92LJ4DvG8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540879; a=rsa-sha256; cv=none; b=DWW31wrrj37F1kDaICdK0OwrYvaV36+H4XKhUXl52++1QvAfSD0m0jAmN6i1vWpmIr1mDq D9foECafOxz/rvyzFDqvOPj4ws4WKJx4p+HcG5tW5UbOBwxfkFQglFB69rWHONftLMXL76 GuBkVsnXTeH7lFRkPtSztZ1OrTz4lnZAGFCFiz6EqXKUMajXDdak7+514a7CPs1gLjtpjE PEZKx06mxH9bTGFYFuQ6TUZgW8H5LRJfkNH7nQ50EUlv4qMNI1gcfvtMvPPtzZ0/ZHY5I4 Yof+FIbD0+Pv4MFxHe6UitZQaJpk+3g4GEWWtQima0FXBxHWxk8KYsMOj+8ApQ== 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 4SR4QQ6LlQz4cg; Thu, 9 Nov 2023 14:41:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EfIto078560; Thu, 9 Nov 2023 14:41:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EfIQe078557; Thu, 9 Nov 2023 14:41:18 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:41:18 GMT Message-Id: <202311091441.3A9EfIQe078557@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: a8043cc0d49b - stable/14 - makefs/zfs: Don't set ZFS_NO_EXECS_DENIED in file 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: a8043cc0d49bec7bebc4afc43b8bf5f6ab730b23 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a8043cc0d49bec7bebc4afc43b8bf5f6ab730b23 commit a8043cc0d49bec7bebc4afc43b8bf5f6ab730b23 Author: Mark Johnston AuthorDate: 2023-11-08 12:00:43 +0000 Commit: Mark Johnston CommitDate: 2023-11-09 14:41:09 +0000 makefs/zfs: Don't set ZFS_NO_EXECS_DENIED in file flags This flag was leftover from testing and should have been removed. PR: 274938 MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 50565cf514d32ee02a24f420551c7e65631b0716) --- usr.sbin/makefs/zfs/fs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/makefs/zfs/fs.c b/usr.sbin/makefs/zfs/fs.c index b0a4c639f256..9413241da0c7 100644 --- a/usr.sbin/makefs/zfs/fs.c +++ b/usr.sbin/makefs/zfs/fs.c @@ -403,8 +403,8 @@ fs_populate_sattrs(struct fs_populate_arg *arg, const fsnode *cur, } daclcount = nitems(aces); - flags = ZFS_ACL_TRIVIAL | ZFS_ACL_AUTO_INHERIT | ZFS_NO_EXECS_DENIED | - ZFS_ARCHIVE | ZFS_AV_MODIFIED; /* XXX-MJ */ + flags = ZFS_ACL_TRIVIAL | ZFS_ACL_AUTO_INHERIT | ZFS_ARCHIVE | + ZFS_AV_MODIFIED; gen = 1; gid = sb->st_gid; mode = sb->st_mode; From nobody Thu Nov 9 14:41:19 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR4QS3Gw3z4ywPZ; Thu, 9 Nov 2023 14:41: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR4QS1DBHz3RXL; Thu, 9 Nov 2023 14:41:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6GCeVQZBBkb/NxqiR6NHyJEOmuz60P1XpqPYXL4w8kU=; b=xVzeHby1j03S7ihA/XkvHLt1VX++2JMBtiesM1bt+4CAemSs8wZXoCI9gEw/NVZOmmfMk4 DXFnP509ekNm+18EACb62NNeLOtKJsQASRQYTBrLW4ZdJhTT+dGGT6Z0eiAN0J/vY6IDCZ VIjyvtMg2VB0MgW17m7uiZduXoMbsCDEwWWhUHlZaDqBzgSMx1sZMQgmI7I5+SYTPl3qsJ eX93SJ8RIBa6GcfXJ4zmkBes3VqqOi6UaXW8u7Oa3U48aIN+/Nj3DKvQMA2jtaeTKd7ol2 gpbIJ2tSlBbFIuKzLA4AHsw0mUi+G+hRDmCUMB10wfX/G9VMy6lhbrR/9VaJjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699540880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6GCeVQZBBkb/NxqiR6NHyJEOmuz60P1XpqPYXL4w8kU=; b=VV7ZcJFWYAepCD312Yi4ef/yp+7lKYMSRqoDNufKQ09r4Z+S+qyx18+Q8We74rh5Urereq FTg2kddKFOB/FIbtaWrY9Qx3ONzFZD384Ncsrnr9U9EWgdS0OdECVSLwo7ZKSxotc50Zjy AZ9NSke3Pnc8HEil19PrrWBKiYTnYX2MQEpxg9mOtDKuN/SEQBnatIqFIOcDJXHFZhxBBC cD41pSbFWTho9nXbkCbZU0GOwe5BlrT1ETj+AYFsBZ4ftQFS1f891lS2wFaQAN3Pb+O1ji SEt4UPYP7q6L4cG2EyBAK95U3gd3alXMgAApUPDuVOeu0t99QAD/al4G2NoaGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699540880; a=rsa-sha256; cv=none; b=NI08Z6aLBo+8+6rjvuCM/7lIOx9WlaIvSyqp9cqIU4emoJSQHwmqV5mxIDVeUyDRhFIsvS 1HuGnjHQtsnP84S47SXL34//R5rzWqKBydKU8PHxVF8mo1Ru5NijO7va/6kYyPtfjJDJIc rEbA+SCk8mt2Q8aNQDywrUhxUyXvcR/bl2RJXZQmJASp9LtR2fTqLm32g3Gt2k4s0YqAvR FN5zj8yud1PClvfSj/zkQqFP3n3W/r9Qsv1oWmeLmtbAOJxqgaBoF7Zt0iBxo3Z9LvVVqT gSCCMoD6nnGHqqbwodVoy2PFu193mlBkwvxAx1Dbcnl/GsNOvdCZVARmY4qncQ== 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 4SR4QS0Dg2z4fT; Thu, 9 Nov 2023 14:41:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9EfJjh078617; Thu, 9 Nov 2023 14:41:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9EfJqv078614; Thu, 9 Nov 2023 14:41:19 GMT (envelope-from git) Date: Thu, 9 Nov 2023 14:41:19 GMT Message-Id: <202311091441.3A9EfJqv078614@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: 5a36abc20348 - stable/14 - makefs/zfs: Add a regression test which checks file access 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 5a36abc2034805cec066cf0ac54ec4d25e4a22c4 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5a36abc2034805cec066cf0ac54ec4d25e4a22c4 commit 5a36abc2034805cec066cf0ac54ec4d25e4a22c4 Author: Mark Johnston AuthorDate: 2023-11-08 12:04:33 +0000 Commit: Mark Johnston CommitDate: 2023-11-09 14:41:10 +0000 makefs/zfs: Add a regression test which checks file access permissions MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 7e5002e3d6038b69e23f6c1982caf20cd62139f7) --- usr.sbin/makefs/tests/makefs_zfs_tests.sh | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/usr.sbin/makefs/tests/makefs_zfs_tests.sh b/usr.sbin/makefs/tests/makefs_zfs_tests.sh index 1811b1bc8a8c..6e20ae33b354 100644 --- a/usr.sbin/makefs/tests/makefs_zfs_tests.sh +++ b/usr.sbin/makefs/tests/makefs_zfs_tests.sh @@ -794,6 +794,49 @@ used_space_props_cleanup() common_cleanup } +# Verify that file permissions are set properly. Make sure that non-executable +# files can't be executed. +atf_test_case perms cleanup +perms_body() +{ + local mode + + create_test_dirs + cd $TEST_INPUTS_DIR + + for mode in $(seq 0 511); do + mode=$(printf "%04o\n" $mode) + echo 'echo a' > $mode + atf_check chmod $mode $mode + done + + cd - + + atf_check $MAKEFS -s 1g -o rootpath=/ -o poolname=$ZFS_POOL_NAME \ + $TEST_IMAGE $TEST_INPUTS_DIR + + import_image + + check_image_contents + + for mode in $(seq 0 511); do + mode=$(printf "%04o\n" $mode) + if [ $(($mode & 0111)) -eq 0 ]; then + atf_check -s not-exit:0 -e match:"Permission denied" \ + ${TEST_INPUTS_DIR}/$mode + fi + if [ $(($mode & 0001)) -eq 0 ]; then + atf_check -s not-exit:0 -e match:"Permission denied" \ + su -m tests -c ${TEST_INPUTS_DIR}/$mode + fi + done + +} +perms_cleanup() +{ + common_cleanup +} + atf_init_test_cases() { atf_add_test_case autoexpand @@ -817,6 +860,7 @@ atf_init_test_cases() atf_add_test_case soft_links atf_add_test_case root_props atf_add_test_case used_space_props + atf_add_test_case perms # XXXMJ tests: # - test with different ashifts (at least, 9 and 12), different image sizes From nobody Thu Nov 9 16:29:41 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SR6qT3xSZz50P6k; Thu, 9 Nov 2023 16: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SR6qT3LVdz4HdM; Thu, 9 Nov 2023 16: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=1699547381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8oRAS8Z/kGzRJq3f25fLO/QwZKNbUbnPD5ZhrJas4JI=; b=UG6n41vJzh/RUAD35i67qxn8JW+fdVxz3YiBOpGyAe749Rn5epgLRaq0hFp1/bqKiSdRTk h0gKISvr3CaWDU6dP3q9LfFNCcQc4+Vbc2cMYidAo4bmkuH34yYNuncfc9MhidJ/XDIv+K mIl/KFzJZQTJBJIbwIBgSrK92wEhSlOP7gH/1vrxmUfSU3DLjmILNTVdvsx9XZLSz7qfhX eDaMjrp9QTg5At/rQ+4qmLE29V7ziZT7mixXO2Qq4MxL3URTvbFqCGbc9hlp/vpFZLsz7t XUmV+ghm9ifpE7mfy5Q03V/7yXMqY32xyXXGqEAzTwN3G9EmI7/755+XW9qWSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699547381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8oRAS8Z/kGzRJq3f25fLO/QwZKNbUbnPD5ZhrJas4JI=; b=owMRHm8qeikzkd83Fy3+CJVrnNg/96rkQsDb7jx3okH7MnGNWyfRK/+Hq1xJUMMBHBxb6x yEKV09H8fasreVyJnlpFooXjIW390K+5C8IwFfuNO0n2+nA+N0NkatlPn3PNtXKP6cZtNj MREnGISmF4/TPS0KHFU2HHV3uyqTJIjVsMNbm0AW8zOC8+axFuSlLQ33m3yELvKgMm+nOF /f9tuvKE/LO0xenuMBUaVctV85LqFcGZTf4JtnqOZl3z2n3y+v8XoMwg5geR20M45hwvYv Gv27BHM8cziawRXY1k/p/pB6IjqVa4bJijpIBUvXA2EXGXqPZtY12/pQvXDwlQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699547381; a=rsa-sha256; cv=none; b=uRog87D5Iv3jZIVtBVvIPJf4s6UulhycDeckTD0gKELvkXB3rqF4vWYwr1IBAtnhp6CYz6 SKwxzA80woFKAKnJRXD03/ZmD7eL894TXDVSfaP+u22qnN1ZHmw567xgheB1wWIW9ypoIy Gb4JwyaxzbociROwWB66jd236EUCuqsT6O77HRQOaW4+nKhJOC7ivZ6GyogDbmrMLbYEVl 10Vfs92ur23E7ScYuT1dL1rWs3hAGBe989QeejPlt89UPhF8NEncrsKTaoMZfqwWPBQl4T M77Xl84cNxIGRnTrXgrRNCMKJQTPHvhmLiC9+xrejfFrUEj4viseKb+RmK7g8w== 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 4SR6qT2Pptz7X2; Thu, 9 Nov 2023 16:29:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3A9GTfkI049696; Thu, 9 Nov 2023 16:29:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3A9GTfVt049693; Thu, 9 Nov 2023 16:29:41 GMT (envelope-from git) Date: Thu, 9 Nov 2023 16:29:41 GMT Message-Id: <202311091629.3A9GTfVt049693@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: ac3db6ea0e96 - releng/14.0 - makefs/zfs: Don't set ZFS_NO_EXECS_DENIED in file 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: ac3db6ea0e968338bbe68c0d89505242b246d66f Auto-Submitted: auto-generated The branch releng/14.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ac3db6ea0e968338bbe68c0d89505242b246d66f commit ac3db6ea0e968338bbe68c0d89505242b246d66f Author: Mark Johnston AuthorDate: 2023-11-08 12:00:43 +0000 Commit: Mark Johnston CommitDate: 2023-11-09 16:26:33 +0000 makefs/zfs: Don't set ZFS_NO_EXECS_DENIED in file flags This flag was leftover from testing and should have been removed. Approved by: re (cperciva) PR: 274938 MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 50565cf514d32ee02a24f420551c7e65631b0716) (cherry picked from commit a8043cc0d49bec7bebc4afc43b8bf5f6ab730b23) --- usr.sbin/makefs/zfs/fs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/makefs/zfs/fs.c b/usr.sbin/makefs/zfs/fs.c index b0a4c639f256..9413241da0c7 100644 --- a/usr.sbin/makefs/zfs/fs.c +++ b/usr.sbin/makefs/zfs/fs.c @@ -403,8 +403,8 @@ fs_populate_sattrs(struct fs_populate_arg *arg, const fsnode *cur, } daclcount = nitems(aces); - flags = ZFS_ACL_TRIVIAL | ZFS_ACL_AUTO_INHERIT | ZFS_NO_EXECS_DENIED | - ZFS_ARCHIVE | ZFS_AV_MODIFIED; /* XXX-MJ */ + flags = ZFS_ACL_TRIVIAL | ZFS_ACL_AUTO_INHERIT | ZFS_ARCHIVE | + ZFS_AV_MODIFIED; gen = 1; gid = sb->st_gid; mode = sb->st_mode; From nobody Fri Nov 10 00:03:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRJtb6LzRz4yyrZ; Fri, 10 Nov 2023 00:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRJtb5VsGz4XxR; Fri, 10 Nov 2023 00:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699574583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4czOTn5069vLWxaKE9ohhBGlyR7n4OIS3a9nh+TkjnM=; b=MqTmbsF5Tk5ElCN57UNwfj0BUwBxyrwTIjLyO6KDWxZgqfKgyfqZn7GuqWjlEka9aJ40Fr D148xc1V3yQM2qshIZOgQPc24EBj/3OzA8n8e6g8iQuKPBGcOs7c+S1pL37QZ8BGRhiyS2 ogiMiywN1Eep4IRs0os5EjT2675lnJmIaPy7lrprlbT8O0NkBI8s3hAzspdw2NIAhSWvhS kcc8IP4ZiB+/qzfAdgcBKAzFx9BDHUdf6wg1FLONV5dPp4fRlGrQp6fy3JmEnhNu38DF51 9+O2mVU0Ybjz4J8WuJkXQ6VQQb7K280ct7xnfkzrRtUvmkZDPYPR2UlSPT5vww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699574583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4czOTn5069vLWxaKE9ohhBGlyR7n4OIS3a9nh+TkjnM=; b=QV+HtCChUVCSaB3XcqhafOd5E+kn7mTcJsSGBf5iGGa6niyEEZpC/INnd8tilTRuxTS0yj vOHLWwOEJBChsBUlHHwqOpaSWirLQQGTO4WIgSQTyMpDqkBM5Lz6r3+zI/IHOZn/MpPxAq Zau7RmWgK1gpzTYI0x2XdZCo0pDWQIa7z/qVlPpda6PrFad8kglOBa7jEQaSpd0xQKEpQn UCtW8Lh3JpyZhCJMvkgVl9FVkWsZilBgZCu1q2N72FDfZEG3BA9T2Qof59m24hGaaoErKo rjlt+2VwLOtHyVClqNnLrrvltoDQvTS3M14geA8sMdYSEp/fermH/50wxzElew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699574583; a=rsa-sha256; cv=none; b=cTR4DfqhzSaRNeUZlYZC/h4CgD8rChypR+mR9pkRNgD1rgKkf3f+zQY6qb8T8iVNhkqGAP +C5lLdu5RLJiSGzl7tgXzF4A7ti2P3CrhVgNIZArx5Jkh6jlTCiIDFdZR1H6r5AqvKH4oV ynfdFodRk6tMn6YGW9XRuwjViFuFCS6gJ7HUt4mJh+QpaPhFhgR2fzIyMCM7A0Rix9bn7J 1xLnjKlV7L4oQJQxy3bgR5FZ8cqk9Dra9s8KpzwI9kAC1T7mWGb4FaLhNul8XUCbNNx2cR VU6NCepyrevKoTiY8RhGMKcvb3yDG2psilS1keK1t/Wopa8Lsogg0hq8fMST7A== 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 4SRJtb4ZWSzbB1; Fri, 10 Nov 2023 00:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AA033JW016196; Fri, 10 Nov 2023 00:03:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AA0333v016193; Fri, 10 Nov 2023 00:03:03 GMT (envelope-from git) Date: Fri, 10 Nov 2023 00:03:03 GMT Message-Id: <202311100003.3AA0333v016193@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Glen Barber Subject: git: f9716eee8ab4 - releng/14.0 - release: update releng/14.0 to -RELEASE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gjb X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.0 X-Git-Reftype: branch X-Git-Commit: f9716eee8ab45ad906d9b5c5233ca20c10226ca7 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by gjb: URL: https://cgit.FreeBSD.org/src/commit/?id=f9716eee8ab45ad906d9b5c5233ca20c10226ca7 commit f9716eee8ab45ad906d9b5c5233ca20c10226ca7 Author: Glen Barber AuthorDate: 2023-11-09 23:38:09 +0000 Commit: Glen Barber CommitDate: 2023-11-09 23:38:09 +0000 release: update releng/14.0 to -RELEASE - Add UPDATING entry anticipating the announcement date. - Set a static __FreeBSD_version in crtbrand.S. - Update BRANCH to reflect RELEASE. Approved by: re (implicit) Sponsored by: GoFundMe https://www.gofundme.com/f/gjbbsd Sponsored by: PayPal https://paypal.me/gjbbsd --- UPDATING | 3 +++ lib/csu/common/crtbrand.S | 2 +- sys/conf/newvers.sh | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/UPDATING b/UPDATING index 58eeafa44bba..c32c3b7ec940 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,9 @@ 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. +20231114: + FreeBSD 14.0-RELEASE. + 20231108: 14.0-RC4-p1 SA-23:15.stdio SA-23:16.cap_net diff --git a/lib/csu/common/crtbrand.S b/lib/csu/common/crtbrand.S index 0ed86bfba2b2..9ed2d10f5210 100644 --- a/lib/csu/common/crtbrand.S +++ b/lib/csu/common/crtbrand.S @@ -43,7 +43,7 @@ .4byte NT_FREEBSD_ABI_TAG 1: .asciz NOTE_FREEBSD_VENDOR 2: .p2align 2 -3: .4byte __FreeBSD_version +3: .4byte 1400097 4: .section .note.GNU-stack,"",%progbits diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index b40c56ae759c..a2b89f3caca7 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.0" -BRANCH="RC4-p1" +BRANCH="RELEASE" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri Nov 10 00:57:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRL5n4CwRz50Ccj; Fri, 10 Nov 2023 00:57: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRL5n3kl6z3CLj; Fri, 10 Nov 2023 00:57:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699577869; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5Bx1nujhpxpooVSIF/XeCa1irlPKugkvnWG/Een4gm0=; b=YwHHFP6dqe2R2XszAeY0npqL1/twIg+/lRq1xVAFXtutVyr5T+IotT7RkE/ocS+wiBHGle bfla4vtWw6Raqp4EeWMng3K42bCpnQYn218OKEpux3EEdiZ58s0QzGhP28Zp3YPofpNNIl PHuCj/5ilQstrabuJ1wTJjSYmo73KZy6l9UYXWe+ooyKFFPvBiVvTJsFnDKCjg5bm5u1FI Lpbiw0KlRVIjY8IN83rKsOYIRk5Bz26HVFsm56i8QQdYbWreYt4ZCUdYSTPtmglIoHBM3t fYXquBVf/5XjuPLQu6LVnC5hGXbSYv2wT9wXOR2IkejEesssR9nb+oHRk1mxLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699577869; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5Bx1nujhpxpooVSIF/XeCa1irlPKugkvnWG/Een4gm0=; b=bo1VaYDRzNZ6N9d/sRJAz/uB+ICLsHGu2BKdChDetuZXK3EwJsrQWaNm8rV/OXRL6d2E4X TlYDEsjB/5hIW0NPDUfefaS/9KUiRygBbzBpCcvL03/h2DCGglbn76m9N5CIKT2LPj2qHy Q8LV+om2gmrqgE1yqT6uGIIltWHDC3IfREHCUC/yJvL+y0XQTQeLqDwmt17WQ9m+dukiau 9Cz+g4prQIAlLsTNtrQwb3vvBmWFPr+/TYlxrhbufv6vmKwlFBaGvAOuU80cGTMe2gqxs/ zdXb05KUa7OgXexxx7a+opjKp6wuh2U9qzDA4DHs9uL7ZIDr5Evm08gBJHOzYQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699577869; a=rsa-sha256; cv=none; b=RbSQvxQnfbDzT806ESN0CqIa+fkwb+yIRvahXjbggKCUSi+60U8oIDUTT8mVdJrNbVva6u czcHZLHvL93uIbzxvFyQ8vVsC0ow/JwLSmPoo74vb63l0WzAdxacu7gRkEgYGGVdqFtPTA zfR1yDw2K1rQZSGcJSkyQ7OQKg3zbRVc+Pl9lCyQiUz+B6CimGBUh10rJOqW7KyuO5xvas QuJonkrOo9NNVBG8AvuN1yg5eS1fXbypSBKGfFO+Y1KVozef4/YmUX0PsK+1cE1leXoYK3 jNzvUEJMdng4flf7lc+y7/WQJgEfTlGbzoIDovtcPXVXQTkTyHNLFeepe9PkLg== 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 4SRL5n2qyvzdPP; Fri, 10 Nov 2023 00:57:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AA0vn3V099917; Fri, 10 Nov 2023 00:57:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AA0vn2X099914; Fri, 10 Nov 2023 00:57:49 GMT (envelope-from git) Date: Fri, 10 Nov 2023 00:57:49 GMT Message-Id: <202311100057.3AA0vn2X099914@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 68c2e57d0043 - stable/14 - mpsutil: Add higher PCIe speeds. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 68c2e57d0043a7e3c50ae361e436926c857657bb Auto-Submitted: auto-generated The branch stable/14 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=68c2e57d0043a7e3c50ae361e436926c857657bb commit 68c2e57d0043a7e3c50ae361e436926c857657bb Author: Alexander Motin AuthorDate: 2023-11-03 15:49:59 +0000 Commit: Alexander Motin CommitDate: 2023-11-10 00:57:44 +0000 mpsutil: Add higher PCIe speeds. There are already PCIe Gen4 HBAs, reported improperly. MFC after: 1 week (cherry picked from commit 7bca09e2bb7f812913249a1e5883742d6d6ac6b2) --- usr.sbin/mpsutil/mps_show.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/mpsutil/mps_show.c b/usr.sbin/mpsutil/mps_show.c index 7454bf15e06c..6efa9b76dd3d 100644 --- a/usr.sbin/mpsutil/mps_show.c +++ b/usr.sbin/mpsutil/mps_show.c @@ -57,7 +57,7 @@ MPS_TABLE(top, show); static int show_adapter(int ac, char **av) { - const char* pcie_speed[] = { "2.5", "5.0", "8.0" }; + const char* pcie_speed[] = { "2.5", "5.0", "8.0", "16.0", "32.0" }; const char* temp_units[] = { "", "F", "C" }; const char* ioc_speeds[] = { "", "Full", "Half", "Quarter", "Eighth" }; From nobody Fri Nov 10 00:58:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRL632lmsz50Cm5; Fri, 10 Nov 2023 00:58: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRL632LxYz3Cpf; Fri, 10 Nov 2023 00:58:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699577883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A5G4FPmsWKITb4kQM1XjraWlY97mBVZInQd7JNWOJ1s=; b=tVCDREgQit7jVE3kbnbg8epJCULLY7Of15d5clo3hrgOrDgVdmvcBagoD2qEPLXU1DhSNt h2x3LfLdj/4TiAAox3Nzj2TT/afX2PCxvP5t+M3h9zX2u90cM8ijKVDaszLt8l121qXCav Cdgnl8ZvbcVaRmLOpQ6zv91wOS+3E0K6Xkp1c07SU9EKT+oj3RYy8wH45xmzHnwK++iHfu fLsSZ4v8fRd5x08hTu6b7nO+gyz7rQ2GsK5+AmbZyDmxwBs48JEKGqMdS+fv/5ox5kWyfS xqqS0lhVWJdUXWhCHCYRNsWvD8QUlaQCD2gjA2IUPV6zyILxpefsuQ9Fv1vbnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699577883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A5G4FPmsWKITb4kQM1XjraWlY97mBVZInQd7JNWOJ1s=; b=xHIVu1Ja30H8HKzk3aE1nYJ3N+5mZ5n7cdetuuZFRccK5/hKlae3mK/jUHIm8hWGI6xiV7 4icMGWZyj4SxJ5wyxGwI24suxrd7PrtbwsfB9TyLvFgbJcSyQp4BtXw7GTsmoSwqOMSZCg NU06Ncp+r0QqGjVl+ZAAEwjlzajThhyj0FkXF+LpRkdYe2ecRHO7rDsXyn2pPVz34H88rr tYmklDvQlTKleX9FLU2cCugQ6UPOKzP1iY1p7U1E/uFqEnm7eilaQo22Ayta3Xq767XKa7 wE44RqjOCAXV5ol5azq1h6XEB6rpSDK/n5ALrd0cXQNRBwdB2MVYn7vqdV6/SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699577883; a=rsa-sha256; cv=none; b=yZq+eVPhaMmsSDA30FAWcp1fPQrOIEcIgFFX+4v4VsLQ2quZi2fNFRW7Ej3wumLmquf1X7 pfrpIJ8dbAcFZapmDkaK5tCSQCMp7qRgXpTKflz5tIoQJutbJwC9sl1zGLSvXQKJ4ptRFr EtVSQZ+DxXCs+9f88gs9vZ/7m2s9lpycT9O9yR+0P5Eex07ryhC7EdJsgmDjV4xLxpSB0B Ixn9f0sTLQAO9Bp4/q3bRXjOg0eNsRVS//bHfvJoJDm9Ik/+o5xFlnBE7fYkD46Pcr/2BU /SVMxfDFUByWxJfrpOeywypfWVyyTNgQZdczQFPGh3ZiCtLd2PIMrRFYpAlA3w== 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 4SRL631Q8TzdGn; Fri, 10 Nov 2023 00:58:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AA0w3mc000094; Fri, 10 Nov 2023 00:58:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AA0w3J8000091; Fri, 10 Nov 2023 00:58:03 GMT (envelope-from git) Date: Fri, 10 Nov 2023 00:58:03 GMT Message-Id: <202311100058.3AA0w3J8000091@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 88770f0c6971 - stable/13 - mpsutil: Add higher PCIe speeds. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 88770f0c69717d706b83efddd6dd282f5ddf7612 Auto-Submitted: auto-generated The branch stable/13 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=88770f0c69717d706b83efddd6dd282f5ddf7612 commit 88770f0c69717d706b83efddd6dd282f5ddf7612 Author: Alexander Motin AuthorDate: 2023-11-03 15:49:59 +0000 Commit: Alexander Motin CommitDate: 2023-11-10 00:57:58 +0000 mpsutil: Add higher PCIe speeds. There are already PCIe Gen4 HBAs, reported improperly. MFC after: 1 week (cherry picked from commit 7bca09e2bb7f812913249a1e5883742d6d6ac6b2) --- usr.sbin/mpsutil/mps_show.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/mpsutil/mps_show.c b/usr.sbin/mpsutil/mps_show.c index 7454bf15e06c..6efa9b76dd3d 100644 --- a/usr.sbin/mpsutil/mps_show.c +++ b/usr.sbin/mpsutil/mps_show.c @@ -57,7 +57,7 @@ MPS_TABLE(top, show); static int show_adapter(int ac, char **av) { - const char* pcie_speed[] = { "2.5", "5.0", "8.0" }; + const char* pcie_speed[] = { "2.5", "5.0", "8.0", "16.0", "32.0" }; const char* temp_units[] = { "", "F", "C" }; const char* ioc_speeds[] = { "", "Full", "Half", "Quarter", "Eighth" }; From nobody Fri Nov 10 07:41:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRW443gWGz50k5V; Fri, 10 Nov 2023 07:41: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRW443BJ5z4f1w; Fri, 10 Nov 2023 07:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699602116; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=klhcs8QWDINgYcojbk9snYwu8EhqVU+lT4nlLaz1/1o=; b=fmNZbMHKNsFivuh5kI6eTkZSIwyxmRJLk7OX+wxCpPMqz9bV1HJbceXypp/H5Q+Fz3tfBe 7zW9f1uQZgLJBaXM08vB6eNZjA+yUK50OEW9v9MY5M7RoVZhiVcJ15qCJYLgYo8cpbzAgv 8fyLwMX4bgY91i/SBbjSR7dF6NhARoHw7KWfTty8qrBOZrsz3DCWC8UmDXvQe3WT9/EeEj ELsrWFTybePdrK25MFEWf86c4l4O5GOyXvWmr/ODfBHns8zly14dpAoG9KX5v9Jw+UNOBR Vpc9NIiMxuXedGrF4ypwniElmZvM/48kW38BEbRL2OncxDWMEN+47uCpXopliQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699602116; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=klhcs8QWDINgYcojbk9snYwu8EhqVU+lT4nlLaz1/1o=; b=h4hQNP/k/j6w7BXVSO3bzIzkxLVuFcu/anhGxj4eSnkK6irJxSSbhil2NsiuXpSFK5nMTY NyUTEMUeobTH0LDbAwra/90Rnb929EuJJaXtuvw+Kx0iAeElCbkcF4PRLF7jWZdMsjuu0c B3jw7P6eA/Mn/0ojQ3eNbhoe1KqzkRnwhyXPhhaediEcenYp5vTWbAJhe5XNcdLOXFPI/G 24S7LtWJIRCyCrGpW3zIyknSWceyeBA1H0B/FS0Fh32aE0NJ+npX1tn+3fMAPV4o8+7xKD 1uea3dwhZRjxUT5HxoG1jldHd9rKWj9nvkD0FPRioLw9agRH/eWEdN0rfWtt3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699602116; a=rsa-sha256; cv=none; b=CiHmr/ndJSGwBtYdz2CNn2Hgagfo8Hbc60fKYDiMl3up1mM0ctyf+DGcpNWFUeCAQ7HIO5 VhEkHkal0pKq97coHrJVkzu/4BS/qdh83e6XJibartCy4U6EmcraqpGbxYweX9tydJMIDE oT/En/pwIPH09jDYDttVb1JdX3ydGEgtm/1703x7P5CPyYFx2DNvBUQo6nRBXy08e+q4Yp ed5zkV41oOHZNaWRCZ6G31r1PiamduuqcCSW5i/g2Yka/EbVKehwT3JwVlVhLbCkCSDHn2 FRfx0eqUURQrVgzd8cvO/TgimEiTZI2pSIOL6ZD4H4vJOxyzP/2wTXj40lpCsw== 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 4SRW442FKRzpdN; Fri, 10 Nov 2023 07:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AA7fueA080837; Fri, 10 Nov 2023 07:41:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AA7fuol080834; Fri, 10 Nov 2023 07:41:56 GMT (envelope-from git) Date: Fri, 10 Nov 2023 07:41:56 GMT Message-Id: <202311100741.3AA7fuol080834@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Li-Wen Hsu Subject: git: bd7dceb27c08 - stable/14 - ping6(8): Add ping6(8) as MLINK to ping(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bd7dceb27c085c0014f5a09b5d92c6a060d16f23 Auto-Submitted: auto-generated The branch stable/14 has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=bd7dceb27c085c0014f5a09b5d92c6a060d16f23 commit bd7dceb27c085c0014f5a09b5d92c6a060d16f23 Author: Antranig Vartanian AuthorDate: 2023-11-07 21:14:59 +0000 Commit: Li-Wen Hsu CommitDate: 2023-11-10 07:41:32 +0000 ping6(8): Add ping6(8) as MLINK to ping(8) Reviewed by: chuck MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42203 (cherry picked from commit d6e457328d0e57176b66ba5f5c614becca680fea) --- ObsoleteFiles.inc | 1 - sbin/ping/Makefile | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 396f4822b02b..32a044706e51 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -6718,7 +6718,6 @@ OLD_FILES+=usr/share/man/man4/if_hme.4.gz OLD_FILES+=usr/include/net/radix_mpath.h # 20201124: ping6(8) was merged into ping(8) -OLD_FILES+=usr/share/man/man8/ping6.8.gz OLD_FILES+=usr/tests/sbin/ping6/Kyuafile OLD_FILES+=usr/tests/sbin/ping6/ping6_c1_s8_t1.out OLD_FILES+=usr/tests/sbin/ping6/ping6_test diff --git a/sbin/ping/Makefile b/sbin/ping/Makefile index 4713b01cac90..1483a93ace37 100644 --- a/sbin/ping/Makefile +++ b/sbin/ping/Makefile @@ -20,6 +20,7 @@ CFLAGS+= -DINET6 -DKAME_SCOPEID SRCS+= ping6.c LIBADD+= md LINKS= ${BINDIR}/ping ${BINDIR}/ping6 +MLINKS= ping.8 ping6.8 .endif .if ${MK_DYNAMICROOT} == "no" From nobody Fri Nov 10 07:42:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRW4S2txKz50jv2; Fri, 10 Nov 2023 07:42: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRW4S2Rtnz4f3r; Fri, 10 Nov 2023 07:42:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699602136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9KV64Bv56lfoIYZEjuYeG+a/0DQJBx2RbKPQuCbkgw0=; b=QwKwKF7Mz1GW67diCgUCLhweXyWz4Tt788XkS5ciylt40WAOYzmcmq6IHNSwx98wUDWgW9 7x7sZOTEPzzEHdtPRLaoOMdV15KpjNLy55wkrE/MP/KqYroAen610G5KluJy3PjYi2EFe7 VZCjKgr5pfwPX/nBPHK5rqhdM4VDTwtr+4Mu8PkBEmrYZv0XMaSUKDN0wl6A6/seukSixm kjvpC32ZFdqD4S+ozxqSCJGw41SWJrykddrXnDo4ShRqa/4nEhbk+BmXC0klSNxK29kSeA YJHL/c693RJr8PP53KkSKdRVn0tOdCTYzvutdcYO9LtWAA2cT8i52ihsMX5g/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699602136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9KV64Bv56lfoIYZEjuYeG+a/0DQJBx2RbKPQuCbkgw0=; b=r3Y786GLyzI38yOo2a4bkMfRMloXQLE3Bz3oNB1SGcUBVP4T32IoWF77DatLwIJB5D4dpE nFENykO/lYeAfkbhY/FqfwyGku54de73QWPNln3uKWIaNlM7YqBIAlibwIyYY22jKGS/vW qpKtrlYk3YSx8jzwmnCAMN3bY2iIVbNU1cjIeNAZ+OW6NmY7ucnG+PtsecFUS5F+41wEdD SvLf0n6Ala5EW3nCJZAdj7euFeCXBBJ4zKTuK50zr4lW/nLbIgCisOc7uG3zmWakf6MOWx Ejqmyb8sOCtOHcYr+rcBWGQz5ouQ5g3jFsTmnBTRC0+otkLqKJVpTPY0LPGu7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699602136; a=rsa-sha256; cv=none; b=ALkozX4fHWHJkeKRZLtM/dzHS6VAJd0q5GHUQABlc6wJDEEXKgx6WKITo8fGbA9J00nfo0 zMkUn5VBvhV3U4veiL6sHhI/NFMU1d9jq28R0cfPKQc7cMyc7GeuCCia6+i3W5lHEuBW9C MEFcIaPzWJ5rYz+HOYEy84jvSaDf+u6KCn5YJhV8LEoNOW2pxSzSZ+MWRG59JL8v6RMU9s +ioTyhecjbWzw1jMa4/Ndjmc+giVYQy0RbH78QLJ9VeO/Lup3DTD/TmJPtSuvuLDMskOWQ Gd3foTKIJGSmPiMNGkS/UeaUniGSbZLLZfphJ3XpkNBdNHuQzn2Y8kELRzmTyg== 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 4SRW4S1VbBzqRH; Fri, 10 Nov 2023 07:42:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AA7gGRo082247; Fri, 10 Nov 2023 07:42:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AA7gGA4082244; Fri, 10 Nov 2023 07:42:16 GMT (envelope-from git) Date: Fri, 10 Nov 2023 07:42:16 GMT Message-Id: <202311100742.3AA7gGA4082244@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Li-Wen Hsu Subject: git: cddce522f185 - stable/13 - ping6(8): Add ping6(8) as MLINK to ping(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cddce522f185c3a69977917b35efcf7bf96374bb Auto-Submitted: auto-generated The branch stable/13 has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=cddce522f185c3a69977917b35efcf7bf96374bb commit cddce522f185c3a69977917b35efcf7bf96374bb Author: Antranig Vartanian AuthorDate: 2023-11-07 21:14:59 +0000 Commit: Li-Wen Hsu CommitDate: 2023-11-10 07:42:07 +0000 ping6(8): Add ping6(8) as MLINK to ping(8) Reviewed by: chuck MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42203 (cherry picked from commit d6e457328d0e57176b66ba5f5c614becca680fea) --- ObsoleteFiles.inc | 1 - sbin/ping/Makefile | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 9fa227b121a9..fd4e1d98e631 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -3156,7 +3156,6 @@ OLD_FILES+=usr/share/man/man4/hme.4.gz OLD_FILES+=usr/share/man/man4/if_hme.4.gz # 20201124: ping6(8) was merged into ping(8) -OLD_FILES+=usr/share/man/man8/ping6.8.gz OLD_FILES+=usr/tests/sbin/ping6/Kyuafile OLD_FILES+=usr/tests/sbin/ping6/ping6_c1_s8_t1.out OLD_FILES+=usr/tests/sbin/ping6/ping6_test diff --git a/sbin/ping/Makefile b/sbin/ping/Makefile index 5d98e4ca518b..3ec7656f7bc1 100644 --- a/sbin/ping/Makefile +++ b/sbin/ping/Makefile @@ -20,6 +20,7 @@ CFLAGS+= -DINET6 -DKAME_SCOPEID SRCS+= ping6.c LIBADD+= md LINKS= ${BINDIR}/ping ${BINDIR}/ping6 +MLINKS= ping.8 ping6.8 .endif .if ${MK_DYNAMICROOT} == "no" From nobody Fri Nov 10 11:53:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRcdw1r19z50Qw2; Fri, 10 Nov 2023 11:53: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRcdw1Nq6z3drK; Fri, 10 Nov 2023 11:53:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699617188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5G4WJ+9OgYdafxRYwv4R/r+TwMKATd2jWwK+TJfli38=; b=mObp+Jak4O/ERUedQ2lnohZVNT/O5sCJdgYED4O1m5Dq5YFHVfj6Lwr4oKLRZ+FNIfRLsL svfoJKWPIqhBio0EQYYNmskZ8PZfErmcc8nL+Se/cRMd4o1zcu8mtKdi4aFMAH0DFEDhjN /+HesQPAxsgo0y7tAF/F5UmA9+YHo7e8B7ai9T02q0JIiexCShyVM9mGSUWUxMUVV7+I81 IpPewPWyKjFhc7n3xQy6unqh5pWsDoOakwcee0iLrmN+coLlH0S/GLRxygvnJXpJD1C0aA 2PO4M73H1ouNaEoQge7RaLHKANDZzOu+83YyOoaq8eFVmDVZI7qDvhI8kqXGbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699617188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5G4WJ+9OgYdafxRYwv4R/r+TwMKATd2jWwK+TJfli38=; b=KmsT9NY0jgapKXo+Wnv0FQvapEm4nZNZSH7Z4V1xqM6J3uyOdwrfW4W0dm4AVC5xfTbpog gVPAaa+0ZpwsyXd3EbrmUMn2f7DjDpvDVrDwTVJzZeF7K8AO7MTMOk9gt4C6ENSGvzJCbX chgXYPPF5a2f7AZNsK2LfhTdXSN5xImqnUW33jQJD0c6IQsTbOoiaemNr2UPFicqtyQE08 gTJZL+XO5Vzi2WHUF1wrYqVTyKmLbwT8CqXGFeD7VZUYvQI4ia2c5tEQbykbNO5qN2OKZe PK8/3pX4mHY6fIwNbJfL67DAMN1y1XHHkM4aF+uTte35zahP4NobUZdWNHYGNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699617188; a=rsa-sha256; cv=none; b=DxLkqdOy45M3yrcAURS4r8S0D8u69Ud8ZD+EqGGi8JXkzAulqUiFZdOpG2bJ4ggzjkvWvz Dz5LchzLPegKVaZxp88gANQa30OYXo26HgoVrmK54G93h6S3BRUloEw8cQSMqHl4B7B1EX 6TJAr1eDXO1HvQfiVsYC2qUDXoWu2o9DcNV2om+gO5RZrS038d7VrhqK5DBP5JTRTxemjS 7zRS1eoVIz/WVni0mV0zFRBhML1V/2Whv1nSIYRJHTL2F/RgS6pGL1KUsFVr9yqNlEJYg7 Q8CALXyuZinqCJTK4jS6LDbYtiw5F4g5WZWhDqTKdLQg6Op3q6DA2E0GKtpgPQ== 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 4SRcdw0SMVzxSq; Fri, 10 Nov 2023 11:53:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AABr7no099244; Fri, 10 Nov 2023 11:53:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AABr7Ju099241; Fri, 10 Nov 2023 11:53:07 GMT (envelope-from git) Date: Fri, 10 Nov 2023 11:53:07 GMT Message-Id: <202311101153.3AABr7Ju099241@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: 83dbbe8295ff - stable/13 - libpfctl: fix label setting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 83dbbe8295ff0bb06a8f6b621c25d8224b026b77 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=83dbbe8295ff0bb06a8f6b621c25d8224b026b77 commit 83dbbe8295ff0bb06a8f6b621c25d8224b026b77 Author: Franco Fichtner AuthorDate: 2023-11-10 11:42:17 +0000 Commit: Kristof Provost CommitDate: 2023-11-10 11:47:44 +0000 libpfctl: fix label setting A mismerge caused the labels list to be added to the wrong nvlist, breaking label configuration. If you compare the change from from main and stable/13 you can see that main uses "nvl" and stable/13 has "nlvr" for nvlist_append_string_array() but the backport changes it to "nlv". This code was supposed to apply to pfctl_add_eth_rule() but instead applied to pfctl_add_rule() for otherwise interesting reasons. Since pfctl_add_eth_rule() uses "nvl" and pfctl_add_rule() uses "nvlr" but also has "nvl" this compiled fine but still broke the label set. Direct commit to stable/13. PR: 275006 --- lib/libpfctl/libpfctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index bf25a45b792f..4dec539e250b 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -643,7 +643,7 @@ pfctl_add_rule(int dev, const struct pfctl_rule *r, const char *anchor, labelcount = 0; while (labelcount < PF_RULE_MAX_LABEL_COUNT && r->label[labelcount][0] != 0) { - nvlist_append_string_array(nvl, "labels", + nvlist_append_string_array(nvlr, "labels", r->label[labelcount]); labelcount++; } From nobody Sat Nov 11 00:40:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRxg46JT0z501RW; Sat, 11 Nov 2023 00:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRxg45sQDz4Gf2; Sat, 11 Nov 2023 00:40:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXqPTET/dZ7HEpjJW4M1Ke7tZVcwCMLRPJ6b+eu//Z0=; b=UnJ9sWDeSaHKBkT/BZ3ZJjcvN/jsZBB5XaE3aNVK4XF3YAI+3+NFZn58OeQ9nvGopdOJNA bWkxbrlPGleIzsXvJ7BUR0VXwVRjV/fYs+YoT3M0QfBQCS4PI43t8sjqVBfZ7zfQwz5cYy 6zZfo24XVYuHdKePEmw9cca4YZNTigCDPR6SkgyECDmt4fQ88IxN0hMCoSZvQ4qvTayaG6 xYACKIgBkj0SDvoz6scaiNpqKvXvqZ0J0YqK6l+nwtvgSvTb5GU/F2oPB/3q2my8gmdFFD heGqHYzak/RaPdTu/F4LxUJzSuBYe5SAWTEeay+aQMMGD35YYW4h9DFGA6ZSdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXqPTET/dZ7HEpjJW4M1Ke7tZVcwCMLRPJ6b+eu//Z0=; b=aCERZCYfQ+hKb5GC7bl+s13LY4ZdkVqGeWMTvmrCftv0FHL4H3gyIbYNO9uIKOYfrAGHxq UZMVqhQWDaMUADDdgobRcPOYXMaS4+OrLTY+N/XTIiGr0BstWmt3z3kwdUwMlmEyaFjCzb SxEbs3/Yx2XcypFCxYd62/2GmBBmz9OPRluP5pbHiYcMHPFPdiHh02Fu02ldEURgdOb5bQ cwezvQq7iA1dogelk88n+6gLPdB42spYTP4/SXizDkqlAiFCM4QcZ56r1z7SocZBUaQbjq kaxNRUfp4E/U+FL/ghHm01lJ9oLOGs1PTTY5g8N+JHbCkcd+OyS5HcxMluEiKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699663216; a=rsa-sha256; cv=none; b=TCdKvJiMbuPefRKR76Gpt/xkQ7sUqyLP23dZt4KXdkPZ3PpOxSPNxzFurAJDMdFdrptvAS ODLkfYJU4gIIhbO4FFXUmRtb7AzMoKolwCQhPy/qeClt+yiPeMIrxHSo+EhKhn2IuW/h1m kehC6jAdty820j+vf9NWqiq/rhT2UK3t508zVwggWZLZd20T14q8PylGRu8O6dX013pNPw QbFSiQQMhHwtzQf4ADP3EEj0SoGV4Y1kU5O0KU//87nb9GIwVaftJeFTqN242VOKYV3cAM Kai79Wf9lgau+4VV/W+x1ZxSzZp9frct8DnjbYkcab21DZCUJfMs/pTU6K4W0w== 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 4SRxg44p7Nz4Tx; Sat, 11 Nov 2023 00:40:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AB0eG40076865; Sat, 11 Nov 2023 00:40:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AB0eGQo076857; Sat, 11 Nov 2023 00:40:16 GMT (envelope-from git) Date: Sat, 11 Nov 2023 00:40:16 GMT Message-Id: <202311110040.3AB0eGQo076857@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 0dc8af9dae2c - stable/14 - arm64: improve UVA layout for 32bit processes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0dc8af9dae2ca5419a0d3313d0dcb42c6b5d6d38 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0dc8af9dae2ca5419a0d3313d0dcb42c6b5d6d38 commit 0dc8af9dae2ca5419a0d3313d0dcb42c6b5d6d38 Author: Konstantin Belousov AuthorDate: 2023-10-25 01:03:09 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-10 12:15:46 +0000 arm64: improve UVA layout for 32bit processes PR: 274705 (cherry picked from commit 967022aa5aa60a18764a668ae0fb78e39e16fa8e) --- sys/arm64/arm64/elf32_machdep.c | 54 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 4161f9d44ae7..733aaf40541a 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -61,6 +62,9 @@ #define FREEBSD32_MAXUSER ((1ul << 32) - PAGE_SIZE) #define FREEBSD32_SHAREDPAGE (FREEBSD32_MAXUSER - PAGE_SIZE) #define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE +#define AARCH32_MAXDSIZ (512 * 1024 *n1024) +#define AARCH32_MAXSSIZ (64 * 1024 * 1024) +#define AARCH32_MAXVMEM 0 extern const char *freebsd32_syscallnames[]; @@ -74,12 +78,26 @@ static void freebsd32_set_syscall_retval(struct thread *, int); static bool elf32_arm_abi_supported(struct image_params *, int32_t *, uint32_t *); +static void elf32_fixlimit(struct rlimit *rl, int which); extern void freebsd32_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask); u_long __read_frequently elf32_hwcap; u_long __read_frequently elf32_hwcap2; +static SYSCTL_NODE(_compat, OID_AUTO, aarch32, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "aarch32 mode"); + +static u_long aarch32_maxdsiz = AARCH32_MAXDSIZ; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxdsiz, CTLFLAG_RWTUN, + &aarch32_maxdsiz, 0, ""); +u_long aarch32_maxssiz = AARCH32_MAXSSIZ; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxssiz, CTLFLAG_RWTUN, + &aarch32_maxssiz, 0, ""); +static u_long aarch32_maxvmem = AARCH32_MAXVMEM; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxvmem, CTLFLAG_RWTUN, + &aarch32_maxvmem, 0, ""); + static struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = freebsd32_sysent, @@ -102,8 +120,8 @@ static struct sysentvec elf32_freebsd_sysvec = { .sv_copyout_auxargs = elf32_freebsd_copyout_auxargs, .sv_copyout_strings = freebsd32_copyout_strings, .sv_setregs = freebsd32_setregs, - .sv_fixlimit = NULL, // XXX - .sv_maxssiz = NULL, + .sv_fixlimit = elf32_fixlimit, + .sv_maxssiz = &aarch32_maxssiz, .sv_flags = SV_ABI_FREEBSD | SV_ILP32 | SV_SHP | SV_TIMEKEEP | SV_RNG_SEED_VER | SV_SIGSYS, .sv_set_syscall_retval = freebsd32_set_syscall_retval, @@ -284,3 +302,35 @@ void elf32_dump_thread(struct thread *td, void *dst, size_t *off) { } + +static void +elf32_fixlimit(struct rlimit *rl, int which) +{ + + switch (which) { + case RLIMIT_DATA: + if (aarch32_maxdsiz != 0) { + if (rl->rlim_cur > aarch32_maxdsiz) + rl->rlim_cur = aarch32_maxdsiz; + if (rl->rlim_max > aarch32_maxdsiz) + rl->rlim_max = aarch32_maxdsiz; + } + break; + case RLIMIT_STACK: + if (aarch32_maxssiz != 0) { + if (rl->rlim_cur > aarch32_maxssiz) + rl->rlim_cur = aarch32_maxssiz; + if (rl->rlim_max > aarch32_maxssiz) + rl->rlim_max = aarch32_maxssiz; + } + break; + case RLIMIT_VMEM: + if (aarch32_maxvmem != 0) { + if (rl->rlim_cur > aarch32_maxvmem) + rl->rlim_cur = aarch32_maxvmem; + if (rl->rlim_max > aarch32_maxvmem) + rl->rlim_max = aarch32_maxvmem; + } + break; + } +} From nobody Sat Nov 11 00:40:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRxg56nG5z501Cb; Sat, 11 Nov 2023 00:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRxg55wVnz4GfR; Sat, 11 Nov 2023 00:40:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uPoKxW03AvomjDgVEpGsuTUehaxJHLBL8aT96+tP5ow=; b=SsR5bNcVDukcFoh6KvFscdmD229sF2BL+BErNaqFu0e6XiAJw4d6ScUfzozytNHKdgrLDF B3KopMmhS9sbI9AZLJQ9LyI6F6HNsg62b1LD5LtEg8eWOKu3XGjyR/6kNv5handBNhazUR 726mnQ0pPggAiq+OFBNSXOGc2G0v4E0Mirr6Gu7sxsr/BEg6GPGWQsGieczPZDAoaKqXV3 WHXGRDgSUhzkEsjOSzY+8U1GHS6fqRyW+uGhbhIkVyazY/WInkKSvqaIP22BAgV8+IB36Y OFEhpV+0SsCDpXcAaAalNnhFK1JR+GEjSQcYj1E/c3GifOJfAoXmGnxvUKWHWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uPoKxW03AvomjDgVEpGsuTUehaxJHLBL8aT96+tP5ow=; b=LxplFyYncUHN7nniVkNSVwvQ5Qqn+sGlkiPLyvFUv7Ti+rMP6yiMCbs9pBV9tXviaT/yPl ZW6NmyNkq3MGRZ2dLuZIgP/nfYz1SxsRfbLovXxqShr90iUlr+8J5hib7rvDvqvf7vhs60 hDxvTk/dGisxikV/geD2PYoiIBAC7e+cekwTMxFqIi65Ehrk6k1wGtV9sOEap5TLLREMiN JRoBGMTkkoG3albSjcmkKu6Ck05OF6AA5NbEiwIZGLU9rnSrKNA8g7RjUW1hPHmauMtRIq Nh8FJPwyugndTnK8BvtKZz9/b4UA+vzPaYGNR2nwvJZI7LnXEIE1QEKqImdyXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699663217; a=rsa-sha256; cv=none; b=TVGD10S0X3TmmKZIUnKueh/ATfNuwttu0wR3sX7ONg9wg4cM9XmZxhAoLePq/NSjhADw0/ 9bQMnhSQwRTdqgC0Fwg6uw+5zYpXODbANFDxZwFfEcB+IkxDjp580ETl5STV9Q0S1o9xBo KNZvrF0zqejx/8EZwwF1v6JDHTZN58WDc4JBAqncsEUVHb56SbENqN6WeotNyzqXWhT6Ae uSQqxSNY6yWZP1uY44/DR/dAkJssUM5NgHSD46ehMt7s/d0y/S3UL+18PrqxZ1lawXbs06 SwnIHW7CCTtUVFRhVP2NkMhYVgo+JrHyZi+Wm9EI2dNjoRMjot7hHJPvse4aew== 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 4SRxg5528bz4Jg; Sat, 11 Nov 2023 00:40:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AB0eHED077445; Sat, 11 Nov 2023 00:40:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AB0eHnC077434; Sat, 11 Nov 2023 00:40:17 GMT (envelope-from git) Date: Sat, 11 Nov 2023 00:40:17 GMT Message-Id: <202311110040.3AB0eHnC077434@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e4fb49e867ae - stable/14 - Fix typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e4fb49e867ae70412205d1aade0b76fae158b551 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e4fb49e867ae70412205d1aade0b76fae158b551 commit e4fb49e867ae70412205d1aade0b76fae158b551 Author: Konstantin Belousov AuthorDate: 2023-11-04 16:48:25 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-10 12:15:46 +0000 Fix typo (cherry picked from commit d093fe94e10f88fb5f46108f28555584f2f90d08) --- sys/arm64/arm64/elf32_machdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 733aaf40541a..26aa2cddfdb2 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -62,7 +62,7 @@ #define FREEBSD32_MAXUSER ((1ul << 32) - PAGE_SIZE) #define FREEBSD32_SHAREDPAGE (FREEBSD32_MAXUSER - PAGE_SIZE) #define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE -#define AARCH32_MAXDSIZ (512 * 1024 *n1024) +#define AARCH32_MAXDSIZ (512 * 1024 * 1024) #define AARCH32_MAXSSIZ (64 * 1024 * 1024) #define AARCH32_MAXVMEM 0 From nobody Sat Nov 11 00:40:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRxgh66Jwz501XW; Sat, 11 Nov 2023 00:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRxgh5XGyz4H1J; Sat, 11 Nov 2023 00:40:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XjZfYK9cC6Mqrj/oGt+W8ESb366hVXzj1jpo2DV87lo=; b=cGxm3F8ZV9QIA8GSQNPsY9bkohyAFTPt9Frox7248NrP0MSRtj5Pz2lmsWBziQqFzf+T4D HQSpLa1RKK75nZ3Rqllrq5CvtysFxXGVQvi0i13nbScg0Yd0QiIqv04z37xFLqUB/leOYc KfZkrcbmHjlMT9IkJoWFhnLgVrUU+c5zRIyj1KJhAmGHFCuHe4bFywG8ac3OrRX0/ch45p 6ac+cJQs+ASGsbluYDapCPrd+OqNbajYo5OcuAvBmvRfgvF33i9OeZ2KH8xFlFksyv+yUU /kV7uLvRdRnsjzs/wwmQxmJK+/PNx1ps+eLF9s2py3C5RvLkXiX3oq9sQsHkxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XjZfYK9cC6Mqrj/oGt+W8ESb366hVXzj1jpo2DV87lo=; b=GM4zl4zQQYjNn10Sgzl0ysqXjx/GqeOY2q67fGwmKs9xNgdhd+Vue4B1pAT9+LpGiE9vnp qjzav2BAkNQRSsFGoSeXSlPH+Lg3w1Hh8X93MsJWvzUFKfBcPyOVzbH2E5iWCA03q2VAxw GhjaOzz36V32AejAZBe71dGzlEBtASCZMymv4u0iIliiBp9XE68h9zdziEt4knCF5d0Yic dncSGf6Njc6rUlai9AteAV+Lw1Pylf8lCG7KLU7MAd4FJkWIyL62Cnx3M610ayrJ9o3YsW RLRpGjPtlSHkwmNK5u89eewyVEpGXRhsn8PZ0yy/qnOGMTTE71xy5AGBvLWBnA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699663248; a=rsa-sha256; cv=none; b=rCtNYKPy1b+l/WnNUyJ3N0yJNPpYuV2nLJcG7AxaiCXgmbItU2dyylVu0kFMhXM9E7RlgB zDOE7noV9B9xEpQsJmBjRcXcziBhOGy6s3R5bKtlmef9bN2pBXk/eBKSWxbFXzjd+bON5E sKDn/yL/Mf4wwuLq36Y5wIikeoJiiuUtHNFDbe1HPxTDytrQF+VoQxNJm0Yj1HdTZeQbz/ LjSxHFXSrqlRIfQ/yPy1IPts8TfqYwX6SSydks0FtWl08qbdFG0fSU0BDbejSmqrhZpLlF sNlFT9huHdzvx8Cfca5grJJhXsMbYFq6IiPVR2J9kOPw3hZ9QF8xg7kVjAKcNw== 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 4SRxgh4ZvZz564; Sat, 11 Nov 2023 00:40:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AB0emUa078828; Sat, 11 Nov 2023 00:40:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AB0emjk078825; Sat, 11 Nov 2023 00:40:48 GMT (envelope-from git) Date: Sat, 11 Nov 2023 00:40:48 GMT Message-Id: <202311110040.3AB0emjk078825@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9e1efa0f8835 - stable/13 - arm64: improve UVA layout for 32bit processes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9e1efa0f88356747d88e310209e57ba8f689fa4e Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9e1efa0f88356747d88e310209e57ba8f689fa4e commit 9e1efa0f88356747d88e310209e57ba8f689fa4e Author: Konstantin Belousov AuthorDate: 2023-10-25 01:03:09 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-11 00:40:25 +0000 arm64: improve UVA layout for 32bit processes PR: 274705 (cherry picked from commit 967022aa5aa60a18764a668ae0fb78e39e16fa8e) --- sys/arm64/arm64/elf32_machdep.c | 54 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index c59571808cd3..3668d2a3c444 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -60,6 +61,9 @@ #define FREEBSD32_MAXUSER ((1ul << 32) - PAGE_SIZE) #define FREEBSD32_SHAREDPAGE (FREEBSD32_MAXUSER - PAGE_SIZE) #define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE +#define AARCH32_MAXDSIZ (512 * 1024 *n1024) +#define AARCH32_MAXSSIZ (64 * 1024 * 1024) +#define AARCH32_MAXVMEM 0 extern const char *freebsd32_syscallnames[]; @@ -73,12 +77,26 @@ static void freebsd32_set_syscall_retval(struct thread *, int); static boolean_t elf32_arm_abi_supported(struct image_params *, int32_t *, uint32_t *); +static void elf32_fixlimit(struct rlimit *rl, int which); extern void freebsd32_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask); u_long __read_frequently elf32_hwcap; u_long __read_frequently elf32_hwcap2; +static SYSCTL_NODE(_compat, OID_AUTO, aarch32, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, + "aarch32 mode"); + +static u_long aarch32_maxdsiz = AARCH32_MAXDSIZ; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxdsiz, CTLFLAG_RWTUN, + &aarch32_maxdsiz, 0, ""); +u_long aarch32_maxssiz = AARCH32_MAXSSIZ; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxssiz, CTLFLAG_RWTUN, + &aarch32_maxssiz, 0, ""); +static u_long aarch32_maxvmem = AARCH32_MAXVMEM; +SYSCTL_ULONG(_compat_aarch32, OID_AUTO, maxvmem, CTLFLAG_RWTUN, + &aarch32_maxvmem, 0, ""); + static struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = freebsd32_sysent, @@ -102,8 +120,8 @@ static struct sysentvec elf32_freebsd_sysvec = { .sv_copyout_auxargs = elf32_freebsd_copyout_auxargs, .sv_copyout_strings = freebsd32_copyout_strings, .sv_setregs = freebsd32_setregs, - .sv_fixlimit = NULL, // XXX - .sv_maxssiz = NULL, + .sv_fixlimit = elf32_fixlimit, + .sv_maxssiz = &aarch32_maxssiz, .sv_flags = SV_ABI_FREEBSD | SV_ILP32 | SV_SHP | SV_TIMEKEEP | SV_RNG_SEED_VER | SV_SIGSYS, .sv_set_syscall_retval = freebsd32_set_syscall_retval, @@ -283,3 +301,35 @@ void elf32_dump_thread(struct thread *td, void *dst, size_t *off) { } + +static void +elf32_fixlimit(struct rlimit *rl, int which) +{ + + switch (which) { + case RLIMIT_DATA: + if (aarch32_maxdsiz != 0) { + if (rl->rlim_cur > aarch32_maxdsiz) + rl->rlim_cur = aarch32_maxdsiz; + if (rl->rlim_max > aarch32_maxdsiz) + rl->rlim_max = aarch32_maxdsiz; + } + break; + case RLIMIT_STACK: + if (aarch32_maxssiz != 0) { + if (rl->rlim_cur > aarch32_maxssiz) + rl->rlim_cur = aarch32_maxssiz; + if (rl->rlim_max > aarch32_maxssiz) + rl->rlim_max = aarch32_maxssiz; + } + break; + case RLIMIT_VMEM: + if (aarch32_maxvmem != 0) { + if (rl->rlim_cur > aarch32_maxvmem) + rl->rlim_cur = aarch32_maxvmem; + if (rl->rlim_max > aarch32_maxvmem) + rl->rlim_max = aarch32_maxvmem; + } + break; + } +} From nobody Sat Nov 11 00:40:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SRxgk2TwJz501Xj; Sat, 11 Nov 2023 00:40: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SRxgj6d7Mz4HCC; Sat, 11 Nov 2023 00:40:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L/JVhdHMBtdDd5Kqm+IabrRcm4um5LK3W+Kf1axaNZI=; b=MFR/dGpodjPvUVz79Kl30tuH8F8VkZGCyhUzcCfs3KArUWcQQZguhPFX/3Xd9DclMW2/OS e+yMLqeN96gOA4FWcJ35y07GiGEwTX9PkV4gayOxlNc3/Kck2RYOreSlHmUPob5i4pMLTI /6hvleGnQj4JwuvhiPKTxnlENfsOHpmrC4Y/RCdZ+Yceo4jxTjKvuMyihV4F5fG72nrUGm VmsaseYQ7owBNum6TbtT16IeTflMwA/CDEV8WpElYeu6/3uMNgytzFvNaMotBkG8UOFlhb kz0NwfbxtmJyYDv2bC1vsLu4K5dG2AyVnHvu62MB1KF6U+00P2d8usTIGSQA2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699663249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L/JVhdHMBtdDd5Kqm+IabrRcm4um5LK3W+Kf1axaNZI=; b=HrkwqrnbyAWJiPJ0AiWrLlTk34AFi/r++gfE7D1ZSZMhFhBtQQYskIrl/pIgEnK0GXsQR/ mhxp+RAr7W4YbVueLaHGrqD40Lkr/R90F06sEdj2GpKQIMlmrfyTDpZGIqOKHMeCqQMCFh a3hUWS/7jtzzwdaj1tJz3dkwRvI06YLNKyoDOMvR7HQxm2OQWlJYqZJAxZYI/62L1x/JkE CknNx35LkyJ8VJOEBOg8CoOrRw0OoaKJvEa+tMbTESkrbO2V8C6MA7rIHQiZXa+4OJTg1N IFpsBXt62w68ViS2/P1JVJvi9Ife+LjYM1F6kZykR1/riLaXQVqLNxcCzEfSUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699663249; a=rsa-sha256; cv=none; b=fLwkIMe2pMBVr3mfzF6HxpCyfjZQj3VciraSjxQ1FSsENK1i7M1j2i+/Lhn2YK232B8BP2 QYI5fOphj0szb1vak1vZ+7yLqiQA7PIFmXe1Or5rMxyXxREq3XPSYdEGgmasC0t0bpZwTY JedfzI/UX9L96X72lm7uuQ3WdyeBZO482TDSuJRiFrzewIBMcFJ4DAcgjn/vGtslyRz9Ps Rid0eW3yfCc04qNetl+wzyjNkBjzPJlXSIK1tl3wUdBt/3UCX+uUpq7NUnBLm6Xd07W69B UVNPEJhVQEyETadccXNB5eoz+wlPKmBuSH/GMbYNRNc5DIcZO4aKyuJsxK4gFw== 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 4SRxgj5XjRz53d; Sat, 11 Nov 2023 00:40:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AB0enB2078863; Sat, 11 Nov 2023 00:40:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AB0enTH078860; Sat, 11 Nov 2023 00:40:49 GMT (envelope-from git) Date: Sat, 11 Nov 2023 00:40:49 GMT Message-Id: <202311110040.3AB0enTH078860@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a6d08183731b - stable/13 - Fix typo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a6d08183731b28d1e9c898a0bc8708136776b250 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a6d08183731b28d1e9c898a0bc8708136776b250 commit a6d08183731b28d1e9c898a0bc8708136776b250 Author: Konstantin Belousov AuthorDate: 2023-11-04 16:48:25 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-11 00:40:26 +0000 Fix typo (cherry picked from commit d093fe94e10f88fb5f46108f28555584f2f90d08) --- sys/arm64/arm64/elf32_machdep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 3668d2a3c444..1c580e2b0de3 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -61,7 +61,7 @@ #define FREEBSD32_MAXUSER ((1ul << 32) - PAGE_SIZE) #define FREEBSD32_SHAREDPAGE (FREEBSD32_MAXUSER - PAGE_SIZE) #define FREEBSD32_USRSTACK FREEBSD32_SHAREDPAGE -#define AARCH32_MAXDSIZ (512 * 1024 *n1024) +#define AARCH32_MAXDSIZ (512 * 1024 * 1024) #define AARCH32_MAXSSIZ (64 * 1024 * 1024) #define AARCH32_MAXVMEM 0 From nobody Sat Nov 11 17:30:46 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SSN530gnBz50Tn2; Sat, 11 Nov 2023 17:30: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SSN530GGDz4VVN; Sat, 11 Nov 2023 17:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699723847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+qcSG5WxDRHjZnMdEj+Qgc5HU0ao1QIgsqz1cSn1iHU=; b=J5JCGwwdyf7PxH747VPL7LeYNVQdIL/+6fGZ/HC482+B4Z8sGmhsXoGym+PKQ+/24Dk2MH hkw2wBYUCA6Rp4WdC58PJkn/bSWss7mUmS2As1bVOqLqGpe4ZfzARkfYnxeyEtxTBiWXlL KxcgokkfNv76hFbSvbOmsMR6alRCueRlIcB/6MdsUMhtdWOowbngx26QGnjoVbs7viEzOs jnjl2oUurLqDrn+3uEtBytslMKBx2gRuhXRIA66pK3b7/LnWqzLAJeC7GVt82xi2fPu1/v Q7QkNz4psdVeFYww+zRr9rgLwr+roPrskPJPmUJIoEIIu8DhQHJoR1x5g0H9vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1699723847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+qcSG5WxDRHjZnMdEj+Qgc5HU0ao1QIgsqz1cSn1iHU=; b=kd7ytKL/b/MHLfSgkr/IjF8awHgFwJd1TV01m/rhzQowE/etFLN+DLOoW/pE4W3WZxhAP8 B+Ja9fXs4R/wRvjFPA8KXBnoLzRtkide9tTGTokZC0lVYFoRTMD0iBzYHPjBsiomkZqwP8 ZICLv1ConNu7Qo3lj8QLi0SoB0z+8Ih4nkW9RX463Vw2lDpoOtMF9F/MvupDIxWjn4L0dr 1F5PTOAwtURV+BuEhAHSIt8MAcvIigbdV20+7OGi7giZcbi0M3t6/Feg3pEqWpugOaRQLA Lyqu9HBIt12BbXmBjwvbtn+9JiTT7qDstVNnO+7Iqj6dIxgwC6h7bPaqVZnf/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1699723847; a=rsa-sha256; cv=none; b=jqjCXHpwOehEFgL0drZtjl0vMm0XZVqPu1+avf/FP5g80nLuL5RUQccS9Xrj/vq4vPcqSJ r2mpk0F3J5viDDsxT5j/k92V+EaJ31/J1PnoaZ7eabIIZsQh5jTM2jd3Cpr2CbTdnf9QJI vJtOfrYM2SbWNN9gYemNXV/pIHBWxiF8kN+vFqG5IX86+V9F4ZbbmM8xyz5P2tPpYEWtr8 xGXLFPyK2qqyUz+Qut3qHBXWqGbzr3jWNv5IT0zoIyU6iUtzhtObcDLrS5fUwN02tTgLfg 7UvxlU8hbhBzaNXdgS/nfANC58sMCWwZd0ejoacKGkB3tPEKoddWg8BTy6VaOg== 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 4SSN526RHhzpZy; Sat, 11 Nov 2023 17:30:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ABHUkga065337; Sat, 11 Nov 2023 17:30:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ABHUk8D065334; Sat, 11 Nov 2023 17:30:46 GMT (envelope-from git) Date: Sat, 11 Nov 2023 17:30:46 GMT Message-Id: <202311111730.3ABHUk8D065334@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: 5d15f0d5406b - stable/14 - kmsan: Correct the origin address in kmsan_shadow_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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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: 5d15f0d5406b6d27ecc8fa21a6d93754bf6c85f4 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5d15f0d5406b6d27ecc8fa21a6d93754bf6c85f4 commit 5d15f0d5406b6d27ecc8fa21a6d93754bf6c85f4 Author: Mark Johnston AuthorDate: 2023-11-03 19:37:09 +0000 Commit: Mark Johnston CommitDate: 2023-11-11 17:30:37 +0000 kmsan: Correct the origin address in kmsan_shadow_check() Otherwise a KMSAN report (which panics the system by default) could trigger a recursive panic. MFC after: 1 week Fixes: ca6cd604c8fc ("kmsan: Use the correct origin bytes in kmsan_check_arg()") (cherry picked from commit 346134f19aa9ba38a0384244609e2bcd4f7838f4) --- sys/kern/subr_msan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/subr_msan.c b/sys/kern/subr_msan.c index f8fdcf478b79..abac71da6d64 100644 --- a/sys/kern/subr_msan.c +++ b/sys/kern/subr_msan.c @@ -375,7 +375,7 @@ kmsan_shadow_check(uintptr_t addr, size_t size, const char *hook) for (i = 0; i < size; i++) { if (__predict_true(shad[i] == 0)) continue; - orig = (msan_orig_t *)kmsan_md_addr_to_orig((vm_offset_t)&shad[i]); + orig = (msan_orig_t *)kmsan_md_addr_to_orig(addr + i); orig = (msan_orig_t *)((uintptr_t)orig & MSAN_ORIG_MASK); kmsan_report_hook((const char *)addr + i, orig, size, i, hook); break;