From 4c8bad86bc817974603304cb6e7db7db617daec1 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 1 Dec 2013 11:31:36 +0000 Subject: [PATCH 1/2] curproc() isn't needed in id(1) --- id.c | 60 +++++++----------------------------------------------------- 1 file changed, 7 insertions(+), 53 deletions(-) diff --git a/id.c b/id.c index ce72e70..ce618fd 100644 --- a/id.c +++ b/id.c @@ -10,7 +10,6 @@ #include "util.h" static void user(struct passwd *pw); -static void curproc(void); static void usage(void) @@ -28,12 +27,17 @@ main(int argc, char *argv[]) usage(); } ARGEND; + errno = 0; switch (argc) { case 0: - curproc(); + pw = getpwuid(getuid()); + if (errno != 0) + eprintf("getpwuid %d:", getuid()); + else if (!pw) + eprintf("getpwuid %d: no such user\n", getuid()); + user(pw); break; case 1: - errno = 0; pw = getpwnam(argv[0]); if (errno != 0) eprintf("getpwnam %s:", argv[0]); @@ -73,53 +77,3 @@ user(struct passwd *pw) } putchar('\n'); } - -static void -curproc(void) -{ - struct passwd *pw; - struct group *gr; - uid_t uid, euid; - gid_t gid, egid, groups[NGROUPS_MAX]; - int ngroups; - int i; - - /* Print uid/euid info */ - uid = getuid(); - printf("uid=%u", uid); - if (!(pw = getpwuid(uid))) - eprintf("getpwuid:"); - printf("(%s)", pw->pw_name); - if ((euid = geteuid()) != uid) { - printf(" euid=%u", euid); - if (!(pw = getpwuid(euid))) - eprintf("getpwuid:"); - printf("(%s)", pw->pw_name); - } - - /* Print gid/egid info */ - gid = getgid(); - printf(" gid=%u", gid); - if (!(gr = getgrgid(gid))) - eprintf("getgrgid:"); - printf("(%s)", gr->gr_name); - if ((egid = getegid()) != gid) { - printf(" egid=%u", egid); - if (!(gr = getgrgid(egid))) - eprintf("getgrgid:"); - printf("(%s)", gr->gr_name); - } - - /* Print groups */ - ngroups = getgroups(NGROUPS_MAX, groups); - if (ngroups < 0) - eprintf("getgroups:"); - for (i = 0; i < ngroups; i++) { - gid = groups[i]; - printf("%s%u", !i ? " groups=" : ",", gid); - if (!(gr = getgrgid(gid))) - eprintf("getgrgid:"); - printf("(%s)", gr->gr_name); - } - putchar('\n'); -} -- 1.7.10.4