]> granicus.if.org Git - shadow/commitdiff
* src/groupmems.c: Reduce the number of checks. Isolate the
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 27 Jul 2008 01:16:13 +0000 (01:16 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Sun, 27 Jul 2008 01:16:13 +0000 (01:16 +0000)
parameters setting and permissions checking.

ChangeLog
src/groupmems.c

index 3e00cfee4d64e78b57830bb00bdb8bba03e091c0..93745d395e3ee2880e6a90ab532f71220ae1748d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-27  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * src/groupmems.c: Reduce the number of checks. Isolate the
+       parameters setting and permissions checking.
+
 2008-07-27  Nicolas François  <nicolas.francois@centraliens.net>
 
        * src/groupmems.c: Add functions process_flags() and check_perms()
index b38bdd0df66434807215ad86e99f4097e4fb6be8..202f71a0a389e416d57e6c8af79729cd87de5c83 100644 (file)
@@ -228,15 +228,18 @@ int main (int argc, char **argv)
 
        process_flags (argc, argv);
 
-       if (!isroot () && NULL != thisgroup) {
-               fputs (_("Only root can add members to different groups\n"),
-                      stderr);
-               exit (EXIT_NOT_ROOT);
-       } else if (isroot () && NULL != thisgroup) {
+       if (NULL == thisgroup) {
+               name = whoami ();
+               if (NULL == name) {
+                       fprintf (stderr, _("%s: your groupname does not match your username\n"), Prog);
+                       exit (EXIT_NOT_PRIMARY);
+               }
+       } else {
                name = thisgroup;
-       } else if (NULL == (name = whoami ())) {
-               fputs (_("Not primary owner of current group\n"), stderr);
-               exit (EXIT_NOT_PRIMARY);
+               if (!isroot ()) {
+                       fprintf (stderr, _("%s: only root can use the -g/--group option\n"), Prog);
+                       exit (EXIT_NOT_ROOT);
+               }
        }
 
        check_perms ();