commit 9719a7e3d22abf02f8bf0dde4a079b7263f0f7e9
Author:     Richard Ipsum <[email protected]>
AuthorDate: Thu Jul 4 22:49:29 2019 +0100
Commit:     Michael Forney <[email protected]>
CommitDate: Mon Jul 8 14:07:08 2019 -0700

    chgrp: parse gid if operand is not group name
    
    [Michael Forney: Removed unnecessary `gid == -1` check, changed *argv
     to argv[0] to match existing code]

diff --git a/chgrp.c b/chgrp.c
index 7ee3553..93d7577 100644
--- a/chgrp.c
+++ b/chgrp.c
@@ -67,13 +67,13 @@ main(int argc, char *argv[])
                usage();
 
        errno = 0;
-       if (!(gr = getgrnam(argv[0]))) {
+       if ((gr = getgrnam(argv[0]))) {
+               gid = gr->gr_gid;
+       } else {
                if (errno)
                        eprintf("getgrnam %s:", argv[0]);
-               else
-                       eprintf("getgrnam %s: no such group\n", argv[0]);
+               gid = estrtonum(argv[0], 0, UINT_MAX);
        }
-       gid = gr->gr_gid;
 
        for (argc--, argv++; *argv; argc--, argv++)
                recurse(*argv, NULL, &r);

Reply via email to