From nobody Thu Mar 20 02:53:15 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZJ9B44txtz5r8X1; Thu, 20 Mar 2025 02:53: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZJ9B32MQKz3c6B; Thu, 20 Mar 2025 02:53:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742439195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6+m9gniq2EKnXfQV6o9yRlGzto18DAUsNwu1pkYl5Co=; b=OW3jsp+1E679z04wXGFvGGlWcfHAY18mbN/4r/reUF4heKGhyeWg4nPFwZ7PDip5uuTGOE V1UdEKtzmcHWQsOSFWoZTUOBRWq6tbQesMFGKyVT+fhLcBxQj6slmM8jGqWFG+NY/uewYM FQg4D6ZaxPMWYeLIpjuz/LUx5M3J4l5CsgFpoZj2ddreL3B7Xclr4GMnSjzjgawpJsGCRt XHzX8SqLUbtCT3ZgyGxE+/M5NAfkFsGTeLLMjRk0JRKMd7sCP9mc4cpTzqyGwg8dTRkLpS ++Eadm6o0VMYZVhkj25IeHuR9ak0hbXAJJDjEwxcOGb6fRX+bc78lF6OMhf5Mg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1742439195; a=rsa-sha256; cv=none; b=KPreUfRNkhLnNrQ4Xv25OwoNLzGhHgcQQxGSI/EP2DBJZaKGDg+Tg9IUcqSPW0QKNXCdTY ZcMz9xaLgC7PuoNiuY58MtamZ7p+7DsvVjhSD8q+is1tun2joq1pgPwIdcMI2af7VgbXN0 kSsN37GNdFEjuvirdjVEHMgktagEBb0f3jSATw+SY4OSogjw/l8/xbYCDObWnwI0A95WsL +k1UszAizO/DBTPs45zHdeJetU26Yov6yTmlpRCNbWZJrwN2ayiq64hDG8HlyYbJ0FkNSX lHdGmGxUEwE5tChT4LPOTa9lqehJgwBbWU9vz1c/4+nSx4x9xcweTuRcdFD7dA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742439195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6+m9gniq2EKnXfQV6o9yRlGzto18DAUsNwu1pkYl5Co=; b=J+rqivzMt2+yybA/SNN8CbDzRTUAdgLALDFvtMr5FTPqk6xZiAd6mIcyr+i6pbu9MWGnMs vr4XEI20iodst/h8nr/BPsiutW1mM1kXczQfiHliP+pNT5Pm1mdPlKC0TZvSzrmaPBTdAb iXDt1x61s+YFgiroDNEHPC3biZ1lVvkM+xHwEgCfl/+kYWY7tp/nCl9l+9p+0bTYjQ+UCA gY1VESvq+gg/bH7CoFO35WAFijEt6iuMySvzpWsr6oGhNLSmaeP2TW0S6Dotwoflk1EoBh iQt9R3GvEL2vgEW8Mfb3JRbqHkPJAyf/0szWkuECa2cI4ZBCujbNLdaZ7TikdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZJ9B31kvMzng6; Thu, 20 Mar 2025 02:53:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52K2rFMl046470; Thu, 20 Mar 2025 02:53:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52K2rFOK046467; Thu, 20 Mar 2025 02:53:15 GMT (envelope-from git) Date: Thu, 20 Mar 2025 02:53:15 GMT Message-Id: <202503200253.52K2rFOK046467@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 3ff865c6a794 - main - netinet: Fix getcred sysctl handlers to do nothing if no input is given List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 3ff865c6a7948b2cfc01d7056c619145b696700a Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3ff865c6a7948b2cfc01d7056c619145b696700a commit 3ff865c6a7948b2cfc01d7056c619145b696700a Author: Mark Johnston AuthorDate: 2025-03-20 01:33:44 +0000 Commit: Mark Johnston CommitDate: 2025-03-20 01:33:44 +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 --- 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 7fb7ab3418cf..94d57225c20b 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 03efc759092d..f6317815521d 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -2698,6 +2698,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); @@ -2740,6 +2742,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 b3d980956b66..dafbaf6dc672 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -844,6 +844,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 c0e758e9e12b..8964ccf54c54 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 40216ad4c420..c44510e3b65f 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -617,6 +617,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);