From nobody Sun Apr 06 22:51:10 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZW6yR2HqHz5s83Y; Sun, 06 Apr 2025 22:51: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZW6yQ6cW9z3KbV; Sun, 06 Apr 2025 22:51:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1743979870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F97T+rs/L+EnZ2MHPb9qdCzZ8nJgrm1Xu/mOOL5h1Bk=; b=FRlIY8u7OOmUM99meT1H0dKLMDiBKsxhDngsbpLHlAa3uTw7KL0b/0mBJfGwRR7UMWTVKb xGOjCBOJCs6SqlMM5lAsS0Iwf1ExxCslqL0lWVEiX8XZEXJjWzqsYXEFccAhem5CXtY891 LY7HAeqpPGLeyE2+I8JO96pAKQzXjF6XMVLz8UgJ/kMfiV6j8rJCOtEQ76LfzZMTP/FOFA O8RaWnTUtBm21pmeKrwQpb1cZjy+i3GWTlz53/MFAev9CkFaS9G2d826SXYgq2kWD2mz9b uGjkhWjwbsUCHtpLbckWMByYdv/CQoDlXGFG6dje3v/2l+/+bGF1wJ+netOJ9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1743979870; a=rsa-sha256; cv=none; b=Hs6Qv3wVNHTlIvVaRRfMRL5bC7Qui+xFy3MIb0wrfTmSdJ+NAhQUgECJ7UHxekhbrv3GfH u6EQbYUsc7TZaPshQkGBUe4YB/FeqQl1R/Kxs/ICLWYFeGvhAprmn/+a9gn3tbArb8ybVt 2Fm1jL7cPANvkdM2No56WrpfN9vMsx36GfeRQb8++Y4J5BstQkJTvUrcrn3Abcc1nUIdxT QrqFtWThXu2d5BO5InPiKQO3x29nh96LiaVE5TevmN1TkQjxgwnY6XW4ViJGGgnoeBC2+5 zROiVAWkzlYnrLZ7wJSvAZHDEzCCMwCowqZzpBx3Zke7MvNJGxnI6yo9ggE6gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1743979870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F97T+rs/L+EnZ2MHPb9qdCzZ8nJgrm1Xu/mOOL5h1Bk=; b=X8iA8R7EFvnLxPBwXwf7O1qsVXmUuPG8CZAN5PQFzO5+zSHH5vueOIqlOS1TsywmNiLz6b XUWYHgYg33mOFHDrYRbTraFST5RJuv4mZZ4n138dk5ppycHZzxB9pj09pkiCJUvN8Qslji jriJwJfyUZSjY7VUW3SR3+YUu7RDhImsvTjbnSrn74FoBqEsFmD1wioOLeO7XG6UX9P3Nb u9q5dKRYG896WpCZtZ2Jz4igMvoJYHVHvABkjnABqqUUmF5aCjgNgNZh6rviPvAayz/Ard uEC6x56d3TVmvXxa1DUEHrw9MkmKUcCVM2oYCiko1XqcN2l5uak7fwsOlpb6sQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZW6yQ6Cjxz50p; Sun, 06 Apr 2025 22:51:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 536MpA89077086; Sun, 6 Apr 2025 22:51:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 536MpA12077083; Sun, 6 Apr 2025 22:51:10 GMT (envelope-from git) Date: Sun, 6 Apr 2025 22:51:10 GMT Message-Id: <202504062251.536MpA12077083@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: 85ff908020d0 - stable/14 - netinet: Fix getcred sysctl handlers to do nothing if no input is given List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org 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: 85ff908020d0169f9415852c7b63a4f15cac1294 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=85ff908020d0169f9415852c7b63a4f15cac1294 commit 85ff908020d0169f9415852c7b63a4f15cac1294 Author: Mark Johnston AuthorDate: 2025-03-20 01:33:44 +0000 Commit: Mark Johnston CommitDate: 2025-04-06 13:54:03 +0000 netinet: Fix getcred sysctl handlers to do nothing if no input is given These routines were all assuming that the sysctl handler has some new value, but this is not the case. SYSCTL_IN() returns 0 in this scenario, so they were all operating on an uninitialized address. This is mostly harmless, but trips KMSAN checks, so let's fix them. Reviewed by: zlei, rrs, glebius MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49348 (cherry picked from commit 3ff865c6a7948b2cfc01d7056c619145b696700a) --- sys/netinet/sctp_usrreq.c | 3 ++- sys/netinet/tcp_subr.c | 4 ++++ sys/netinet/udp_usrreq.c | 2 ++ sys/netinet6/sctp6_usrreq.c | 2 ++ sys/netinet6/udp6_usrreq.c | 2 ++ 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c index 29d63f989e79..4c9239f84df8 100644 --- a/sys/netinet/sctp_usrreq.c +++ b/sys/netinet/sctp_usrreq.c @@ -361,8 +361,9 @@ sctp_getcred(SYSCTL_HANDLER_ARGS) /* FIX, for non-bsd is this right? */ vrf_id = SCTP_DEFAULT_VRFID; + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); - if (error) return (error); diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index d633bd660346..dcd947384d99 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -2751,6 +2751,8 @@ tcp_getcred(SYSCTL_HANDLER_ARGS) struct inpcb *inp; int error; + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); if (error) return (error); @@ -2793,6 +2795,8 @@ tcp6_getcred(SYSCTL_HANDLER_ARGS) int mapped = 0; #endif + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); if (error) return (error); diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 178b5b431cf3..d65343fc9997 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -846,6 +846,8 @@ udp_getcred(SYSCTL_HANDLER_ARGS) struct inpcb *inp; int error; + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); if (error) return (error); diff --git a/sys/netinet6/sctp6_usrreq.c b/sys/netinet6/sctp6_usrreq.c index e38bf2b4ae6c..0d59209ceedd 100644 --- a/sys/netinet6/sctp6_usrreq.c +++ b/sys/netinet6/sctp6_usrreq.c @@ -375,6 +375,8 @@ sctp6_getcred(SYSCTL_HANDLER_ARGS) vrf_id = SCTP_DEFAULT_VRFID; + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); if (error) return (error); diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index a23bbabab236..8ab159b4e622 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -609,6 +609,8 @@ udp6_getcred(SYSCTL_HANDLER_ARGS) struct inpcb *inp; int error; + if (req->newptr == NULL) + return (EINVAL); error = priv_check(req->td, PRIV_NETINET_GETCRED); if (error) return (error);