From nobody Thu Oct 30 10:38:00 2025 X-Original-To: dev-commits-src-branches@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 4cy0tx0Bqsz6FSw9; Thu, 30 Oct 2025 10:38:01 +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 4cy0tw4V1Hz3y9n; Thu, 30 Oct 2025 10:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761820680; 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=P2bB1rzHQdC/rb3BrdOKnes31qzowlZdiAmzpQ2tLkw=; b=Wrh8g1b6mOJnYNGGzl7NzrBIYWfbq7A0tLaxznBXwSjpzJOO7kYZthlET0AAxtwY/ryxr+ dUrd3mAhUGmIFEnwqwN335fpHew0pTcK6wRBvs7lzNETmIdvSkWXLr6lMiZFMXZ3p4lAAW ymlXM1D+D33XlwSD6R8ezfEjLRknpOvjpbf6Q5EouC3B8khdHmRKzVVaEel/Yzl7727eHG 2KckS8ZIwlSD8Y2TywfiJOqjSG4ztHtcKeeFwLJgpXztGjkl8We+dWXQh8uQGltlUqLT4V N2qlaSzt4t4d6oZXgHlCB4RF6eYE5FjubM5xNoXfo+URDN1OnItV5cE3mJdY/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761820680; 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=P2bB1rzHQdC/rb3BrdOKnes31qzowlZdiAmzpQ2tLkw=; b=gC7El8KKWzLoRlMphqaIAJ94baRNdBCnUB311BSzfxUTWOVixMJ63H0alVTEyfSc4iisSv OjQr+vYThSUzkvOthsnsM9WWGNaGrIiXEpZu5pTEHhERw7fihGF4UOcpitAysupAWLvqlr 46wXI4jMtJlnlepoi+H+o+mTIHrURec/UXoufzEQEUqcyiGua9wLZX2AvlcApg+TuHyq8l 5DbPWwFEofZnzigaurGjjjpmsgAxAS1Tqp84xSyVTaIbnKp0cEk3y/9bfNU9JtKtIQ3/Og qVcqDyNiQSm7DwssH6ICVYCH2vi2RtJIIQHddUHsJEWWedbTASgF7Vs5Z7ZNhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761820680; a=rsa-sha256; cv=none; b=rp04kCUknWozvqKdezarN+wieyKgdgewa4OLP7x7Se95NjYXZHEQJ0ehV589PqiCtS6dYb NFL2VCFWbhoCLngstvEPVkAXbi7EhwkihXVyJV3+1pv/MEXmuRXnesPdVRNw8lxbQnGrCO lJjGa5aQ+ScHOQofGJNXOh6PiNRnUMO+5avujEu5EBQsBW6bAzwMrL/lbxUQXnYUAeaTDK IfRVKy4JPjA6TDOK3Rig6WyHZNLa96Glgt19GD8tT1xgFIIZsnGELn6kjCyvPuG4H+g8Y4 EIrUTfgKbNdJqGJSrSDlCGkgKay8yHK+cTeU7lpJwQU4hAKtwTfTKHHU6hu+jg== 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 4cy0tw44CGz3bm; Thu, 30 Oct 2025 10:38:00 +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 59UAc0Hv082089; Thu, 30 Oct 2025 10:38:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59UAc0sk082086; Thu, 30 Oct 2025 10:38:00 GMT (envelope-from git) Date: Thu, 30 Oct 2025 10:38:00 GMT Message-Id: <202510301038.59UAc0sk082086@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 758e4565a9d6 - stable/15 - id: Clean up List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 758e4565a9d61644a3a7e5dc517612df1617f231 Auto-Submitted: auto-generated The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=758e4565a9d61644a3a7e5dc517612df1617f231 commit 758e4565a9d61644a3a7e5dc517612df1617f231 Author: Dag-Erling Smørgrav AuthorDate: 2025-10-28 16:51:50 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-10-30 10:37:35 +0000 id: Clean up No functional change intended. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D53300 (cherry picked from commit 70b72ede982f3aebe03a2bf7a8245ee6bcde352c) --- usr.bin/id/id.c | 114 +++++++++++++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 59 deletions(-) diff --git a/usr.bin/id/id.c b/usr.bin/id/id.c index 7112e0dddb91..a326aa14c7c7 100644 --- a/usr.bin/id/id.c +++ b/usr.bin/id/id.c @@ -53,79 +53,86 @@ static void pretty(struct passwd *); #ifdef USE_BSM_AUDIT static void auditid(void); #endif -static void group(struct passwd *, int); +static void group(struct passwd *, bool); static void maclabel(void); static void usage(void); static struct passwd *who(char *); -static int isgroups, iswhoami; +static bool isgroups, iswhoami; int main(int argc, char *argv[]) { struct group *gr; struct passwd *pw; - int Gflag, Mflag, Pflag, ch, gflag, id, nflag, pflag, rflag, uflag; - int Aflag, cflag; - int error; - const char *myname; +#ifdef USE_BSM_AUDIT + bool Aflag; +#endif + bool Gflag, Mflag, Pflag; + bool cflag, gflag, nflag, pflag, rflag, uflag; + int ch, combo, error, id; + const char *myname, *optstr; char loginclass[MAXLOGNAME]; - Gflag = Mflag = Pflag = gflag = nflag = pflag = rflag = uflag = 0; - Aflag = cflag = 0; +#ifdef USE_BSM_AUDIT + Aflag = false; +#endif + Gflag = Mflag = Pflag = false; + cflag = gflag = nflag = pflag = rflag = uflag = false; - myname = strrchr(argv[0], '/'); - myname = (myname != NULL) ? myname + 1 : argv[0]; + myname = getprogname(); + optstr = "AGMPacgnpru"; if (strcmp(myname, "groups") == 0) { - isgroups = 1; - Gflag = nflag = 1; + isgroups = true; + optstr = ""; + Gflag = nflag = true; } else if (strcmp(myname, "whoami") == 0) { - iswhoami = 1; - uflag = nflag = 1; + iswhoami = true; + optstr = ""; + uflag = nflag = true; } - while ((ch = getopt(argc, argv, - (isgroups || iswhoami) ? "" : "APGMacgnpru")) != -1) + while ((ch = getopt(argc, argv, optstr)) != -1) { switch(ch) { #ifdef USE_BSM_AUDIT case 'A': - Aflag = 1; + Aflag = true; break; #endif case 'G': - Gflag = 1; + Gflag = true; break; case 'M': - Mflag = 1; + Mflag = true; break; case 'P': - Pflag = 1; + Pflag = true; break; case 'a': break; case 'c': - cflag = 1; + cflag = true; break; case 'g': - gflag = 1; + gflag = true; break; case 'n': - nflag = 1; + nflag = true; break; case 'p': - pflag = 1; + pflag = true; break; case 'r': - rflag = 1; + rflag = true; break; case 'u': - uflag = 1; + uflag = true; break; - case '?': default: usage(); } + } argc -= optind; argv += optind; @@ -134,16 +141,11 @@ main(int argc, char *argv[]) if ((cflag || Aflag || Mflag) && argc > 0) usage(); - switch(Aflag + Gflag + Mflag + Pflag + gflag + pflag + uflag) { - case 1: - break; - case 0: - if (!nflag && !rflag) - break; - /* FALLTHROUGH */ - default: + combo = Aflag + Gflag + Mflag + Pflag + gflag + pflag + uflag; + if (combo > 1) + usage(); + if (combo == 0 && (nflag || rflag)) usage(); - } pw = *argv ? who(*argv) : NULL; @@ -217,7 +219,7 @@ pretty(struct passwd *pw) if (pw) { (void)printf("uid\t%s\n", pw->pw_name); (void)printf("groups\t"); - group(pw, 1); + group(pw, true); } else { if ((login = getlogin()) == NULL) err(1, "getlogin"); @@ -243,7 +245,7 @@ pretty(struct passwd *pw) (void)printf("rgid\t%u\n", rid); } (void)printf("groups\t"); - group(NULL, 1); + group(NULL, true); } } @@ -366,7 +368,7 @@ auditid(void) #endif static void -group(struct passwd *pw, int nflag) +group(struct passwd *pw, bool nflag) { struct group *gr; int cnt, id, lastid, ngroups; @@ -452,41 +454,35 @@ who(char *u) static void pline(struct passwd *pw) { - - if (!pw) { + if (pw == NULL) { if ((pw = getpwuid(getuid())) == NULL) err(1, "getpwuid"); } - (void)printf("%s:%s:%d:%d:%s:%ld:%ld:%s:%s:%s\n", pw->pw_name, - pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_class, - (long)pw->pw_change, (long)pw->pw_expire, pw->pw_gecos, - pw->pw_dir, pw->pw_shell); + pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_class, + (long)pw->pw_change, (long)pw->pw_expire, pw->pw_gecos, + pw->pw_dir, pw->pw_shell); } - static void usage(void) { - if (isgroups) (void)fprintf(stderr, "usage: groups [user]\n"); else if (iswhoami) (void)fprintf(stderr, "usage: whoami\n"); else - (void)fprintf(stderr, "%s\n%s%s\n%s\n%s\n%s\n%s\n%s\n%s\n", - "usage: id [user]", + (void)fprintf(stderr, + "usage: id [user]\n" #ifdef USE_BSM_AUDIT - " id -A\n", -#else - "", + " id -A\n" #endif - " id -G [-n] [user]", - " id -M", - " id -P [user]", - " id -c", - " id -g [-nr] [user]", - " id -p [user]", - " id -u [-nr] [user]"); + " id -G [-n] [user]\n" + " id -M\n" + " id -P [user]\n" + " id -c\n" + " id -g [-nr] [user]\n" + " id -p [user]\n" + " id -u [-nr] [user]\n"); exit(1); }