From nobody Sun Nov 2 18:17:15 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 4d02xS262fz6FDJV; Sun, 02 Nov 2025 18:17: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4d02xR6c3wz3QMy; Sun, 02 Nov 2025 18:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762107436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=arG7TPXqoYFjtXNIN5du+c9GI3/RkfRHM1JfG/WYS+Q=; b=EULKNkSmhSA2wtlCKchKW9Jkac1Mqp3kW5eYJesBUuKZZhmnq5SR02TOa4aU3H4BaZ3myR sJnRb1c8ott8mj9O+IfbdW1jQZkWCJsts2EOWs6k5Wn+Q/Uzqnvt2dQQVU4vRiDB82u2TM ndLqEyS2ql8Emg5xXmJDt+FTnICr8lRnG4QA1sbcuGx2/TYuUTICfC4phmPAI7K0U3gU3C dmDqk3pPHg4k/SPER5CPaiudIi9gAiFDGINSxoutmW/Su4jE9MuHN/R3c38QR6+3LS9a3f aSl8rGyaKwftwEUUtuUFT/S39jnoh+duna2RDpO6glAX4lam89H572bzPS6C5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762107436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=arG7TPXqoYFjtXNIN5du+c9GI3/RkfRHM1JfG/WYS+Q=; b=erIS3Z8j+wOynT/1e2Kzr4Mxx/xySSYI0bNw8XdSRFj+10cKpW1yhdbreAyrWLRmS24ziJ vcrNx92ZBODnRMGpUuOM+zR5M4ih+4SkIaWDXGdrnhyWRBe7sXcXA2GFIVyBJj8MM0Q/uw CMpid8gichASirOYeO5zzWEm6xpzYnEI4G0C9mnDb5czTR7GB55ar/ny6VTBGmPRqKivA4 9Blo9C1ClnAAWJbeWaBvJmJFti7vqlZBRn7PgPj4d2iBxyqYuUJ4N2k35DstAW2xpy6ZfK fYeJiYc12FomXhkKgQv6pWzZEVYdJ6f9+JKhyz3HcUV7MkS8PQ0LP0fTV5aVVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762107436; a=rsa-sha256; cv=none; b=MCQXLJ1dxQvnAGxAwCYqVklxyHZChEFriYLtgreoyNZbyyj8YZAJvtS7eGl27tuhVJsq3J McGgXGzexMNJf+C0KZewLM8kaNRwsSkHJOxjPEjwRTdst+DT2mur4GNggojbjnBOrWEN+E wrPU26Gzr2lXYj/xQ88exVYsGmITBD/bc6sr+fT8OIlQ12ON6YRRA8ukm+PTFB6j5JRuq2 lU+h9QuUolNbag0XR2bkHFqFMPaBFAW5BWWb8Bt19yetYlGidoCQAc5Ui8P06NyAvyMb5b bcuH3v50bWed9VZ0sdnGAYCorJoMaL3CWboMiII9O6woK9ywxNiwilURrB1hyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4d02xR63MyzcqR; Sun, 02 Nov 2025 18:17: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 5A2IHFlh093896; Sun, 2 Nov 2025 18:17:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5A2IHFTG093892; Sun, 2 Nov 2025 18:17:15 GMT (envelope-from git) Date: Sun, 2 Nov 2025 18:17:15 GMT Message-Id: <202511021817.5A2IHFTG093892@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Olivier Certner Subject: git: 2be5127c4a31 - main - setcred(): Fix RACCT resource accounting on credentials change 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2be5127c4a31bacac9b4158395bfa844f6033626 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=2be5127c4a31bacac9b4158395bfa844f6033626 commit 2be5127c4a31bacac9b4158395bfa844f6033626 Author: Olivier Certner AuthorDate: 2025-10-29 17:07:59 +0000 Commit: Olivier Certner CommitDate: 2025-11-02 18:15:30 +0000 setcred(): Fix RACCT resource accounting on credentials change When credentials are changed, we need to adjust the sum of resources associated to the initial and new process' user IDs (and old and new login classes and jails, but setcred() does not change them) for them to stay consistent. PR: 290352 MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D53457 --- sys/kern/kern_prot.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index df725cfebd97..3c145851b683 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -696,7 +696,7 @@ kern_setcred(struct thread *const td, const u_int flags, gid_t *groups = NULL; gid_t smallgroups[CRED_SMALLGROUPS_NB]; int error; - bool cred_set; + bool cred_set = false; /* Bail out on unrecognized flags. */ if (flags & ~SETCREDF_MASK) @@ -839,17 +839,32 @@ kern_setcred(struct thread *const td, const u_int flags, if (cred_set) { setsugid(p); to_free_cred = old_cred; +#ifdef RACCT + racct_proc_ucred_changed(p, old_cred, new_cred); +#endif +#ifdef RCTL + crhold(new_cred); +#endif MPASS(error == 0); } else error = EAGAIN; unlock_finish: PROC_UNLOCK(p); + /* * Part 3: After releasing the process lock, we perform cleanups and * finishing operations. */ +#ifdef RCTL + if (cred_set) { + rctl_proc_ucred_changed(p, new_cred); + /* Paired with the crhold() just above. */ + crfree(new_cred); + } +#endif + #ifdef MAC if (mac_set_proc_data != NULL) mac_set_proc_finish(td, proc_label_set, mac_set_proc_data);