From nobody Wed Sep 17 12:19:25 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 4cRd9n5JqWz67Ht5; Wed, 17 Sep 2025 12:19: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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cRd9n2h8Yz3WKZ; Wed, 17 Sep 2025 12:19:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758111565; 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=gQoMVt+EfjnUmLlQ094mb2B1v/UBlIvjbxL/T8mTODA=; b=DmPt+Djw1qoggcu5GjBvzJvvBM0G9JrPq5HzIOQKOkqbRxFnCiRIngtL6wq8WLAfQKFBwh 3SC5B0oJrSwzP1C8TzIxPi+wnwHeW6C3+Xfgy06up/GMLVLZJNNp+ogwro89Cn6e5DIkDh DCu6s0k/lMlR+QL7ewB++ualZlBcUcf+LePwEPtrO3PNU8EZU5eQZ84+BKtrZR1zy/7k3+ 63ojqVj3lbfDCxb7SLuZFZQNqI4QKKer07jV/NoKZkSpp1cAExPqL1SUuW+hn9o/czHvIP Jr284C3TFWT+JZ+QXiZ6l5hXVy9kia4I5A+7gX9XVOkeun3KkkNnbaSwKi4gJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1758111565; 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=gQoMVt+EfjnUmLlQ094mb2B1v/UBlIvjbxL/T8mTODA=; b=yICnfwSicVNWRgWkJVgNtqoUpwsxAvk3LaZ5r5XxLScovGmQOh19es3AaIDXlIVTHr2shc uev2n1n7vkChl0QU6eDF1035mH3+Q9JNm9lJyDgHqCpPAbjs762NVatwGzl8BupfeXPayP ROiiekbXASQwC+e3FDYasUbZhgNRm6h5N2+EDm5Q3RhGOgOk6eb/3HPapXIcZ+2Ldw8UsD T/z7AUzSNC4fGd/8/YhKlPMnZB5VzCh6eG92TRym9clm7DclyhBIqzxqBG0roYYpS1QLBe tlNAP50TJ3bin2LjmUbgBO1QsPGO1noT64KYY2Q1qKu0AX6tuTvvi11G5MmOfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1758111565; a=rsa-sha256; cv=none; b=ahEVzihxnYlc0148qSMm7qdvqumgcWgEiDT5rwWrR//IrnQh+e+t2iF/tT8sUW3InzrWPU x+0bOCaFCtp5KZLCKzqMg8iTbHT1SRjc5oD5SIQosdeVv/pzVyc4JH3PQVhhRsN56qAir1 54/fPz2DBOJ92tGPPDqgVzJYP+iqZfQbMHNGBNRD3RBGwNryDzy8dPjDCkW71OlRrRAz3T C7lpgkMQOwR+B+X0DzivtnarQTMbJnaC8szWKXviQXY8tgStBrrSwswgKnwUdVKSaJMTQM nT90q7/dVaTtUceVxvw+7k5JZzJK1Ng+2RjKS63AnifJdtJ5vhbwAqcfKLCqZw== 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 4cRd9n2GsZz8wT; Wed, 17 Sep 2025 12:19:25 +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 58HCJPUl086362; Wed, 17 Sep 2025 12:19:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 58HCJPLe086359; Wed, 17 Sep 2025 12:19:25 GMT (envelope-from git) Date: Wed, 17 Sep 2025 12:19:25 GMT Message-Id: <202509171219.58HCJPLe086359@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: de4832289625 - main - stress2: Fix removal of supplementary groups 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: olce X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: de4832289625f3c1cea4200d8eb7b4c753b90648 Auto-Submitted: auto-generated The branch main has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=de4832289625f3c1cea4200d8eb7b4c753b90648 commit de4832289625f3c1cea4200d8eb7b4c753b90648 Author: Olivier Certner AuthorDate: 2025-08-29 17:01:27 +0000 Commit: Olivier Certner CommitDate: 2025-09-17 12:16:09 +0000 stress2: Fix removal of supplementary groups To this end, call setgroups(0, NULL) instead of passing the effective GID. This stance is fully compatible with older versions of FreeBSD. Fixes: 9da2fe96ff2e ("kern: fix setgroups(2) and getgroups(2) to match other platforms") MFC after: 5 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D52290 --- tools/test/stress2/misc/fdatasync.sh | 2 +- tools/test/stress2/misc/fdatasync2.sh | 2 +- tools/test/stress2/misc/fifo2.sh | 2 +- tools/test/stress2/misc/ftruncate.sh | 2 +- tools/test/stress2/misc/ftruncate2.sh | 2 +- tools/test/stress2/misc/kevent7.sh | 2 +- tools/test/stress2/misc/killpg.sh | 2 +- tools/test/stress2/misc/killpg2.sh | 2 +- tools/test/stress2/misc/killpg3.sh | 2 +- tools/test/stress2/misc/maxproc.sh | 2 +- tools/test/stress2/misc/mlockall3.sh | 2 +- tools/test/stress2/misc/mlockall7.sh | 2 +- tools/test/stress2/misc/mountu.sh | 2 +- tools/test/stress2/misc/msync.sh | 2 +- tools/test/stress2/misc/pread.sh | 2 +- tools/test/stress2/misc/sched.sh | 2 +- tools/test/stress2/misc/sigreturn3.sh | 2 +- tools/test/stress2/misc/sigreturn4.sh | 2 +- tools/test/stress2/misc/syscall4.sh | 2 +- tools/test/stress2/misc/tmpfs16.sh | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/test/stress2/misc/fdatasync.sh b/tools/test/stress2/misc/fdatasync.sh index f17e2826ad94..9abd31e5bd94 100755 --- a/tools/test/stress2/misc/fdatasync.sh +++ b/tools/test/stress2/misc/fdatasync.sh @@ -178,7 +178,7 @@ main(int argc, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/fdatasync2.sh b/tools/test/stress2/misc/fdatasync2.sh index 6011eba53698..42ade0cedbd3 100755 --- a/tools/test/stress2/misc/fdatasync2.sh +++ b/tools/test/stress2/misc/fdatasync2.sh @@ -177,7 +177,7 @@ main(int argc, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/fifo2.sh b/tools/test/stress2/misc/fifo2.sh index 4a7b986931d9..e84506cbfb01 100755 --- a/tools/test/stress2/misc/fifo2.sh +++ b/tools/test/stress2/misc/fifo2.sh @@ -167,7 +167,7 @@ main(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/ftruncate.sh b/tools/test/stress2/misc/ftruncate.sh index ddec85b6745a..f9aa1869756f 100755 --- a/tools/test/stress2/misc/ftruncate.sh +++ b/tools/test/stress2/misc/ftruncate.sh @@ -170,7 +170,7 @@ main(int argc, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/ftruncate2.sh b/tools/test/stress2/misc/ftruncate2.sh index 35db3a4c5f8d..94d9b6ca810f 100755 --- a/tools/test/stress2/misc/ftruncate2.sh +++ b/tools/test/stress2/misc/ftruncate2.sh @@ -185,7 +185,7 @@ main(int argc, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/kevent7.sh b/tools/test/stress2/misc/kevent7.sh index 8b58c35551f7..4c7718c6ae5f 100755 --- a/tools/test/stress2/misc/kevent7.sh +++ b/tools/test/stress2/misc/kevent7.sh @@ -236,7 +236,7 @@ main(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/killpg.sh b/tools/test/stress2/misc/killpg.sh index c6af55a3d593..ea99f5e0d0fd 100755 --- a/tools/test/stress2/misc/killpg.sh +++ b/tools/test/stress2/misc/killpg.sh @@ -113,7 +113,7 @@ killer(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/killpg2.sh b/tools/test/stress2/misc/killpg2.sh index 5e986f059637..cf186d686dfd 100755 --- a/tools/test/stress2/misc/killpg2.sh +++ b/tools/test/stress2/misc/killpg2.sh @@ -77,7 +77,7 @@ looper(void) if ((pw = getpwnam("TUSER")) == NULL) err(1, "no such user: TUSER"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"TUSER\""); diff --git a/tools/test/stress2/misc/killpg3.sh b/tools/test/stress2/misc/killpg3.sh index 304b3e320f2f..4fcb4fa7a643 100755 --- a/tools/test/stress2/misc/killpg3.sh +++ b/tools/test/stress2/misc/killpg3.sh @@ -109,7 +109,7 @@ looper(void) if ((pw = getpwnam("TUSER")) == NULL) err(1, "no such user: TUSER"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"TUSER\""); diff --git a/tools/test/stress2/misc/maxproc.sh b/tools/test/stress2/misc/maxproc.sh index 0574def8a605..3241e275375e 100755 --- a/tools/test/stress2/misc/maxproc.sh +++ b/tools/test/stress2/misc/maxproc.sh @@ -103,7 +103,7 @@ t1(int priv) err(1, "no such user: nobody"); if (priv == 0) { - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/mlockall3.sh b/tools/test/stress2/misc/mlockall3.sh index 0ff1e24eaa7f..aa53e75166a5 100755 --- a/tools/test/stress2/misc/mlockall3.sh +++ b/tools/test/stress2/misc/mlockall3.sh @@ -130,7 +130,7 @@ main(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/mlockall7.sh b/tools/test/stress2/misc/mlockall7.sh index 987e312f19e7..5a927043cb56 100755 --- a/tools/test/stress2/misc/mlockall7.sh +++ b/tools/test/stress2/misc/mlockall7.sh @@ -179,7 +179,7 @@ testing(unsigned long maxl) maxlock = maxl; if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/mountu.sh b/tools/test/stress2/misc/mountu.sh index abd3c744d160..95043e634ef1 100755 --- a/tools/test/stress2/misc/mountu.sh +++ b/tools/test/stress2/misc/mountu.sh @@ -241,7 +241,7 @@ main(int argc __unused, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/msync.sh b/tools/test/stress2/misc/msync.sh index 326c7e723774..df05875afb45 100755 --- a/tools/test/stress2/misc/msync.sh +++ b/tools/test/stress2/misc/msync.sh @@ -166,7 +166,7 @@ main(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/pread.sh b/tools/test/stress2/misc/pread.sh index 24ee2efb696a..985d3f643df1 100755 --- a/tools/test/stress2/misc/pread.sh +++ b/tools/test/stress2/misc/pread.sh @@ -170,7 +170,7 @@ main(int argc __unused, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/sched.sh b/tools/test/stress2/misc/sched.sh index 1a1db70eb38a..8b33d7b16094 100755 --- a/tools/test/stress2/misc/sched.sh +++ b/tools/test/stress2/misc/sched.sh @@ -107,7 +107,7 @@ work(void) if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/sigreturn3.sh b/tools/test/stress2/misc/sigreturn3.sh index a2d865b73847..6795c4fd0846 100755 --- a/tools/test/stress2/misc/sigreturn3.sh +++ b/tools/test/stress2/misc/sigreturn3.sh @@ -121,7 +121,7 @@ main(int argc, char **argv) fprintf(stderr, "Running syscall4 as root for %s.\n", argv[1]); else { - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/sigreturn4.sh b/tools/test/stress2/misc/sigreturn4.sh index c77140de0518..90ee16777e03 100755 --- a/tools/test/stress2/misc/sigreturn4.sh +++ b/tools/test/stress2/misc/sigreturn4.sh @@ -147,7 +147,7 @@ main(int argc, char **argv) fprintf(stderr, "Running sigreturn4 as root for %s.\n", argv[1]); else { - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/syscall4.sh b/tools/test/stress2/misc/syscall4.sh index 3937d45c0303..92150c782ac1 100755 --- a/tools/test/stress2/misc/syscall4.sh +++ b/tools/test/stress2/misc/syscall4.sh @@ -318,7 +318,7 @@ main(int argc, char **argv) fprintf(stderr, "Running syscall4 as root for %s.\n", argv[1]); else { - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\""); diff --git a/tools/test/stress2/misc/tmpfs16.sh b/tools/test/stress2/misc/tmpfs16.sh index 8cc3c3596a4e..683817ce6497 100755 --- a/tools/test/stress2/misc/tmpfs16.sh +++ b/tools/test/stress2/misc/tmpfs16.sh @@ -181,7 +181,7 @@ main(int argc, char **argv) if ((pw = getpwnam("nobody")) == NULL) err(1, "failed to resolve nobody"); - if (setgroups(1, &pw->pw_gid) || + if (setgroups(0, NULL) || setegid(pw->pw_gid) || setgid(pw->pw_gid) || seteuid(pw->pw_uid) || setuid(pw->pw_uid)) err(1, "Can't drop privileges to \"nobody\"");