From nobody Thu Jan 29 15:42:43 2026 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 4f23LX2xD5z6Qrvg for ; Thu, 29 Jan 2026 15:42:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f23LW5WQbz45Gl for ; Thu, 29 Jan 2026 15:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769701363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aCHzhkVYuNV8GArJQ4hpPphAHlf8nexb21KwffHiZB4=; b=QHOg/JwK+rMHdb2kJAQ+Rlvlyy+w4wV/I0fGJO5WCXpAOBTCYDd2wxA+DuHepy4pV1KgU7 yCm3NuOFBXlRPDgBcj2n8qJ5LdR8fWcj2B15+C7+8NJLC5w1mz/eYfYOvBnPJa9gnsh3Ni H17KkbfPzI+C4PxtU+RSUbO0fOZ8OcJkVHwVTw8syYflHPXxFSf70kJnIcWp+9tORxYkfA iqG7jWaZrhUBjBuGkTlErrZ1jFUxo+X4jqxcRp6sH8Gp7hHMrHXTEadJsolbQUZW8gK3zU YabdwEAINzJk2B41+MhUSykovA0Dtwjr07v3gCMZtwVKXb39gQBimWry/F/57g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769701363; a=rsa-sha256; cv=none; b=cHgXYp7KKwDt8Oo5GY5m1KKMvMcBbzmOB6CplNSVl6Gp/o3yhF/1ysNZylwGJ5y2tlp/rN 5yHx5ua/9KV86milcjJyNGiIkqrh+PZFqAnpQLumRVrRchVwnrsTdz79d+DR8sQV+og/3j SjsduAvZK5DCXsmv6DeuFXdWCvaLOWFS/ZjnIPFioex6DndMJgoqDKMLjviZTyUcD35miV fls8+PwwwFt7/HtaAo71krsAbsQSdSocPy76jXuVY66iuj6PY0PY96/sV4FQU/AT/ffA7C GxwWKbf4UAbAcqHVOS8OGn0EzUGFPVIE+dRCdeXTfAROlWE/eURfiz/ePitJIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769701363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aCHzhkVYuNV8GArJQ4hpPphAHlf8nexb21KwffHiZB4=; b=uS5XmtUC3NWOkjDKaa37/UMpQpcrl+rZS59ys2PQtad+kGDeIOyPTeIBBLVn0Hf/t6rL7A 1eTCLXjdP5fxByn8t1BBCoUGx+v5U3UBANEU0p4LyHzUZEMyw+GhheTOLKtEqNnkOQI6Sa 0nrX7qSqD4NZ8P2ZREn2beqio48kBkL2+NinU3ruXzlK1qAW0Ta+q9j6jXRz0NJYR3EBII 4E/Tud+jyxyJRIIqENOun4iyTgoDMQsPqI6TpK6Qp5xqEN5iUgAn60lcJqaQ4/yWVFN5+8 2CUhFrc7u4H6Es6YvwKnLUBlR2b5Li7JNCJ0h+yYQl2vijQ5pl9LGIWwIVU0yQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f23LW4wL8zl7d for ; Thu, 29 Jan 2026 15:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37877 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Jan 2026 15:42:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 4b89fb6af98e - stable/15 - freebsd32_setcred: Copy all of the setcred fields individually 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4b89fb6af98e9783b0c51d1b2110bff613531574 Auto-Submitted: auto-generated Date: Thu, 29 Jan 2026 15:42:43 +0000 Message-Id: <697b7ff3.37877.6fa6e497@gitrepo.freebsd.org> The branch stable/15 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=4b89fb6af98e9783b0c51d1b2110bff613531574 commit 4b89fb6af98e9783b0c51d1b2110bff613531574 Author: John Baldwin AuthorDate: 2025-11-24 15:49:09 +0000 Commit: John Baldwin CommitDate: 2026-01-29 15:30:33 +0000 freebsd32_setcred: Copy all of the setcred fields individually This is the more typical style used in compat syscalls. Modern compilers are smart enough to coalesce multiple member assignments into a bulk copy. Reviewed by: olce, brooks Obtained from: CheriBSD Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D53757 (cherry picked from commit f7ab908244e50c8c8edf314424c860e34ea3d7e9) --- sys/compat/freebsd32/freebsd32_misc.c | 12 ++++++++---- sys/sys/ucred.h | 2 -- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index d31bd1a65d93..8a2c179926d8 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -4250,10 +4250,14 @@ freebsd32_setcred(struct thread *td, struct freebsd32_setcred_args *uap) error = copyin(uap->wcred, &wcred32, sizeof(wcred32)); if (error != 0) return (error); - /* These fields have exactly the same sizes and positions. */ - memcpy(&wcred, &wcred32, __rangeof(struct setcred32, - setcred32_copy_start, setcred32_copy_end)); - /* Remaining fields are pointers and need PTRIN*(). */ + memset(&wcred, 0, sizeof(wcred)); + CP(wcred32, wcred, sc_uid); + CP(wcred32, wcred, sc_ruid); + CP(wcred32, wcred, sc_svuid); + CP(wcred32, wcred, sc_gid); + CP(wcred32, wcred, sc_rgid); + CP(wcred32, wcred, sc_svgid); + CP(wcred32, wcred, sc_supp_groups_nb); PTRIN_CP(wcred32, wcred, sc_supp_groups); PTRIN_CP(wcred32, wcred, sc_label); return (user_setcred(td, uap->flags, &wcred)); diff --git a/sys/sys/ucred.h b/sys/sys/ucred.h index 12d34d990bff..ba241cf9ff3a 100644 --- a/sys/sys/ucred.h +++ b/sys/sys/ucred.h @@ -181,7 +181,6 @@ struct setcred { SETCREDF_MAC_LABEL) struct setcred32 { -#define setcred32_copy_start sc_uid uid_t sc_uid; uid_t sc_ruid; uid_t sc_svuid; @@ -190,7 +189,6 @@ struct setcred32 { gid_t sc_svgid; u_int sc_pad; u_int sc_supp_groups_nb; -#define setcred32_copy_end sc_supp_groups uint32_t sc_supp_groups; /* gid_t [*] */ uint32_t sc_label; /* struct mac32 [*] */ };