]> granicus.if.org Git - shadow/blobdiff - src/id.c
* src/chpasswd.c: Add annotations to indicate that usage() does
[shadow] / src / id.c
index f8231ce3eef481ee93858ad7b544b42467e883d2..4462ae098438e016be25002459f9739e49b00251 100644 (file)
--- a/src/id.c
+++ b/src/id.c
@@ -57,14 +57,13 @@ static void usage (void)
 #else
        (void) fputs (_("Usage: id\n"), stderr);
 #endif
-       exit (1);
+       exit (EXIT_FAILURE);
 }
 
  /*ARGSUSED*/ int main (int argc, char **argv)
 {
        uid_t ruid, euid;
        gid_t rgid, egid;
-       int i;
        long sys_ngroups;
 
 /*
@@ -94,7 +93,7 @@ static void usage (void)
         */
        sys_ngroups = sysconf (_SC_NGROUPS_MAX);
 #ifdef HAVE_GETGROUPS
-       groups = (GETGROUPS_T *) malloc (sys_ngroups * sizeof (GETGROUPS_T));
+       groups = (GETGROUPS_T *) malloc (sizeof (GETGROUPS_T) * sys_ngroups);
        /*
         * See if the -a flag has been given to print out the concurrent
         * group set.
@@ -125,16 +124,18 @@ static void usage (void)
 
        pw = getpwuid (ruid); /* local, no need for xgetpwuid */
        if (NULL != pw) {
-               (void) printf ("UID=%u(%s)", ruid, pw->pw_name);
+               (void) printf ("UID=%lu(%s)",
+                              (unsigned long) ruid, pw->pw_name);
        } else {
-               (void) printf ("UID=%u", ruid);
+               (void) printf ("UID=%lu", (unsigned long) ruid);
        }
 
        gr = getgrgid (rgid);; /* local, no need for xgetgrgid */
        if (NULL != gr) {
-               (void) printf (" GID=%u(%s)", rgid, gr->gr_name);
+               (void) printf (" GID=%lu(%s)",
+                              (unsigned long) rgid, gr->gr_name);
        } else {
-               (void) printf (" GID=%u", rgid);
+               (void) printf (" GID=%lu", (unsigned long) rgid);
        }
 
        /*
@@ -145,17 +146,19 @@ static void usage (void)
        if (ruid != euid) {
                pw = getpwuid (euid); /* local, no need for xgetpwuid */
                if (NULL != pw) {
-                       (void) printf (" EUID=%u(%s)", euid, pw->pw_name);
+                       (void) printf (" EUID=%lu(%s)",
+                                      (unsigned long) euid, pw->pw_name);
                } else {
-                       (void) printf (" EUID=%u", euid);
+                       (void) printf (" EUID=%lu", (unsigned long) euid);
                }
        }
        if (rgid != egid) {
                gr = getgrgid (egid); /* local, no need for xgetgrgid */
                if (NULL != gr) {
-                       (void) printf (" EGID=%u(%s)", egid, gr->gr_name);
+                       (void) printf (" EGID=%lu(%s)",
+                                      (unsigned long) egid, gr->gr_name);
                } else {
-                       (void) printf (" EGID=%u", egid);
+                       (void) printf (" EGID=%lu", (unsigned long) egid);
                }
        }
 #ifdef HAVE_GETGROUPS
@@ -164,6 +167,7 @@ static void usage (void)
         * The group numbers will be printed followed by their names.
         */
        if (aflg && (ngroups = getgroups (sys_ngroups, groups)) != -1) {
+               int i;
 
                /*
                 * Start off the group message. It will be of the format
@@ -181,10 +185,12 @@ static void usage (void)
                        /* local, no need for xgetgrgid */
                        gr = getgrgid (groups[i]);
                        if (NULL != gr) {
-                               (void) printf ("%u(%s)",
-                                              groups[i], gr->gr_name);
+                               (void) printf ("%lu(%s)",
+                                              (unsigned long) groups[i],
+                                              gr->gr_name);
                        } else {
-                               (void) printf ("%u", groups[i]);
+                               (void) printf ("%lu",
+                                              (unsigned long) groups[i]);
                        }
                }
        }
@@ -195,7 +201,7 @@ static void usage (void)
         * Finish off the line.
         */
        (void) putchar ('\n');
-       exit (0);
-       /* NOT REACHED */
+
+       return EXIT_SUCCESS;
 }