]> granicus.if.org Git - shadow/commitdiff
* lib/exitcodes.h: Define E_SUCCESS as EXIT_SUCCESS. Added FIXMEs.
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 30 Apr 2009 21:08:49 +0000 (21:08 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Thu, 30 Apr 2009 21:08:49 +0000 (21:08 +0000)
* libmisc/chowntty.c, libmisc/rlogin.c, libmisc/sub.c,
src/newusers.c, libmisc/sulog.c, libmisc/system.c, src/logoutd.c,
src/groups.c, src/id.c, lib/encrypt.c, libmisc/audit_help.c,
libmisc/limits.c: Return EXIT_FAILURE instead of 1, and
EXIT_SUCCESS instead of 0.
* libmisc/audit_help.c: Replace an fprintf() by fputs().
* libmisc/audit_help.c: Remove documentation of the audit_logger
returned values. The function returns void.
* libmisc/system.c: Only return status if waitpid succeeded.
Return -1 otherwise.

14 files changed:
ChangeLog
lib/encrypt.c
lib/exitcodes.h
libmisc/audit_help.c
libmisc/chowntty.c
libmisc/limits.c
libmisc/rlogin.c
libmisc/sub.c
libmisc/sulog.c
libmisc/system.c
src/groups.c
src/id.c
src/logoutd.c
src/newusers.c

index e0e1725dbbcd605ed5d594f85bd48a9d7d722c3f..0b475c7d419d1a1c9fbeadbdd1442b0958fe3548 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2009-04-30  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * lib/exitcodes.h: Define E_SUCCESS as EXIT_SUCCESS. Added FIXMEs.
+       * libmisc/chowntty.c, libmisc/rlogin.c, libmisc/sub.c,
+       src/newusers.c, libmisc/sulog.c, libmisc/system.c, src/logoutd.c,
+       src/groups.c, src/id.c, lib/encrypt.c, libmisc/audit_help.c,
+       libmisc/limits.c: Return EXIT_FAILURE instead of 1, and
+       EXIT_SUCCESS instead of 0.
+       * libmisc/audit_help.c: Replace an fprintf() by fputs().
+       * libmisc/audit_help.c: Remove documentation of the audit_logger
+       returned values. The function returns void.
+       * libmisc/system.c: Only return status if waitpid succeeded.
+       Return -1 otherwise.
+
 2009-04-28  Nicolas François  <nicolas.francois@centraliens.net>
 
        * NEWS, src/chpasswd.c: Added support for changing the passwords
index 1a97dc883cc17ab283d5fe2b499d51284cda90a3..78132ba4efb07fc0ec9bb805f3210ae69f47c36b 100644 (file)
@@ -53,7 +53,7 @@ char *pw_encrypt (const char *clear, const char *salt)
                 * expect us to return NULL, so...
                 */
                perror ("crypt");
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 
        /* The GNU crypt does not return NULL if the algorithm is not
@@ -82,11 +82,13 @@ char *pw_encrypt (const char *clear, const char *salt)
                fprintf (stderr,
                         _("crypt method not supported by libcrypt? (%s)\n"),
                          method);
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 
-       if (strlen (cp) != 13)
+       if (strlen (cp) != 13) {
                return cp;      /* nonstandard crypt() in libc, better bail out */
+       }
+
        strcpy (cipher, cp);
 
        return cipher;
index 7075d5664d6a06a3770c363ef155f8d3004912f4..96b2340b2937c5513cdaf3d1c08e0ad957ab6e4f 100644 (file)
 /*
  * Exit codes used by shadow programs
  */
-#define E_SUCCESS              0       /* success */
+#define E_SUCCESS              EXIT_SUCCESS    /* success */
+/*
+ * FIXME: other values should differ from EXIT_FAILURE (and EXIT_SUCCESS).
+ *
+ * FIXME: reserve EXIT_FAILURE for internal failures.
+ */
 #define E_NOPERM               1       /* permission denied */
 #define E_USAGE                2       /* invalid command syntax */
 #define E_BAD_ARG              3       /* invalid argument to option */
index 9a58a8b71920cde28fb9cf420031f42fe45ae59e..8e8bc2689b170abc10d29cae80bfb1778237efc7 100644 (file)
@@ -53,12 +53,14 @@ void audit_help_open (void)
        if (audit_fd < 0) {
                /* You get these only when the kernel doesn't have
                 * audit compiled in. */
-               if (errno == EINVAL || errno == EPROTONOSUPPORT ||
-                   errno == EAFNOSUPPORT)
+               if (   (errno == EINVAL)
+                   || (errno == EPROTONOSUPPORT)
+                   || (errno == EAFNOSUPPORT)) {
                        return;
-               fprintf (stderr,
-                        _("Cannot open audit interface - aborting.\n"));
-               exit (1);
+               }
+               (void) fputs (_("Cannot open audit interface - aborting.\n"),
+                             stderr);
+               exit (EXIT_FAILURE);
        }
 }
 
@@ -73,7 +75,6 @@ void audit_help_open (void)
  * name - user's account or group name. If not available use NULL.
  * id  -  uid or gid that the operation is being performed on. This is used
  *       only when user is NULL.
- * result - 1 is "success" and 0 is "failed"
  */
 void audit_logger (int type, const char *pgname, const char *op,
                    const char *name, unsigned int id,
index 6b97ab768f9e8aec1e8c79439d3f3035adb3724e..0b2d9fb483e1867923cfb551f9e7a8194f4988bb 100644 (file)
@@ -83,7 +83,7 @@ void chown_tty (const struct passwd *info)
                         info->pw_name, strerror (err)));
                if (EROFS != err) {
                        closelog ();
-                       exit (1);
+                       exit (EXIT_FAILURE);
                }
        }
 #ifdef __linux__
index c25c5f02ecc9e525307b6d40f4ab1ac8857b48c7..0eb2c4946d10bf9675df779bfdb57fff0dabbbd4 100644 (file)
@@ -436,7 +436,7 @@ void setup_limits (const struct passwd *info)
                            LOGIN_ERROR_LOGIN) {
                                (void) fputs (_("Too many logins.\n"), stderr);
                                (void) sleep (2); /* XXX: Should be FAIL_DELAY */
-                               exit (1);
+                               exit (EXIT_FAILURE);
                        }
                }
 #endif
index b4fd82f0f5caf61644dbb864c442cdfaf7e3b55f..b19f5e8fa8c303ac3ef87b13372ff008d6ac27d8 100644 (file)
@@ -114,7 +114,7 @@ static void get_remote_string (char *buf, size_t size)
 {
        for (;;) {
                if (read (0, buf, 1) != 1) {
-                       exit (1);
+                       exit (EXIT_FAILURE);
                }
                if ('\0' == *buf) {
                        return;
index ad11c1003c9f3729deef15f280d1fdd795e09328..ed879c206cd843653f9474b21970a9415eb02821 100644 (file)
@@ -58,7 +58,7 @@ void subsystem (const struct passwd *pw)
                printf (_("Invalid root directory '%s'\n"), pw->pw_dir);
                SYSLOG ((LOG_WARN, BAD_SUBROOT2, pw->pw_dir, pw->pw_name));
                closelog ();
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 
        /*
@@ -71,6 +71,6 @@ void subsystem (const struct passwd *pw)
                        pw->pw_dir);
                SYSLOG ((LOG_WARN, NO_SUBROOT2, pw->pw_dir, pw->pw_name));
                closelog ();
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 }
index 1948324b08a2a3ceffe07207c38bb9d1fe4bd48d..76ae556ad3268839aebd3afed0131631d47e7063 100644 (file)
@@ -83,7 +83,7 @@ void sulog (const char *tty, bool success, const char *oldname, const char *name
                         "can't switch back to group `%d' in sulog",
                         oldgid));
                /* Do not return if the group permission were raised. */
-               exit (1);
+               exit (EXIT_FAILURE);
        }
        if (fp == (FILE *) 0) {
                return;         /* can't open or create logfile */
index da9adc7969f59bc4164a203057ae8969a0c75886..14221d1c002cdc1560fb5b2d9b8e07e7da60e826 100644 (file)
@@ -51,8 +51,11 @@ int safe_system (const char *command,
        }
 
        if (pid) {       /* Parent */
-               waitpid (pid, &status, 0);
-               return status;
+               if (waitpid (pid, &status, 0) > 0) {
+                       return status;
+               } else {
+                       return -1;
+               }
        }
 
        fd = open ("/dev/null", O_RDWR);
@@ -64,6 +67,6 @@ int safe_system (const char *command,
 
        execve (command, (char *const *) argv, (char *const *) env);
        fprintf (stderr, _("Failed to exec '%s'\n"), argv[0]);
-       exit (-1);
+       exit (EXIT_FAILURE);
 }
 
index 4a1536449c83414658eab63fc2b74fa377c4ab95..d260a3540f42d2490d5eb9fddff1d00558efa029 100644 (file)
@@ -64,7 +64,7 @@ static void print_groups (const char *member)
        if (NULL == pwd) {
                (void) fprintf (stderr, _("%s: unknown user %s\n"),
                                Prog, member);
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 
        setgrent ();
@@ -146,7 +146,7 @@ int main (int argc, char **argv)
                ngroups = getgroups (sys_ngroups, groups);
                if (ngroups < 0) {
                        perror ("getgroups");
-                       exit (1);
+                       exit (EXIT_FAILURE);
                }
 
                /*
@@ -203,7 +203,7 @@ int main (int argc, char **argv)
                if (NULL != logname) {
                        print_groups (logname);
                } else {
-                       exit (1);
+                       exit (EXIT_FAILURE);
                }
 #endif
        } else {
@@ -214,6 +214,6 @@ int main (int argc, char **argv)
                 */
                print_groups (argv[1]);
        }
-       exit (0);
+       return EXIT_SUCCESS;
 }
 
index 87e86a05b10984f56c266db8a81c5e6036f11876..f0c10d6aeb032272654728851f6ff1b1669b549f 100644 (file)
--- a/src/id.c
+++ b/src/id.c
@@ -57,7 +57,7 @@ static void usage (void)
 #else
        (void) fputs (_("Usage: id\n"), stderr);
 #endif
-       exit (1);
+       exit (EXIT_FAILURE);
 }
 
  /*ARGSUSED*/ int main (int argc, char **argv)
@@ -201,7 +201,7 @@ static void usage (void)
         * Finish off the line.
         */
        (void) putchar ('\n');
-       exit (0);
-       /* NOT REACHED */
+
+       return EXIT_SUCCESS;
 }
 
index 4acb83971c2f9b7b8fa50f18762fa3ced6149c4a..e89e55c92844982aa9ef9206bbd517e3d0f83d78 100644 (file)
@@ -175,11 +175,11 @@ int main (int argc, char **argv)
        pid = fork ();
        if (pid > 0) {
                /* parent */
-               exit (0);
+               exit (EXIT_SUCCESS);
        } else if (pid < 0) {
                /* error */
                perror ("fork");
-               exit (1);
+               exit (EXIT_FAILURE);
        }
 #endif                         /* !DEBUG */
 
@@ -276,7 +276,7 @@ int main (int argc, char **argv)
                        /*
                         * This child has done all it can, drop dead.
                         */
-                       exit (0);
+                       exit (EXIT_SUCCESS);
                }
 
 #ifdef USE_UTMPX
@@ -293,7 +293,7 @@ int main (int argc, char **argv)
                 */
                while (wait (&status) != -1);
        }
-       return 1;
-       /* NOT REACHED */
+
+       return EXIT_FAILURE;
 }
 
index c6290ece4f552c14a4e978565fe4c6ccc5230b7e..c8b3865faaa25f7ef8ad978e2fb765720542fdf4 100644 (file)
@@ -126,7 +126,7 @@ static void usage (void)
                           "                                crypt algorithms\n")
 #endif
                         );
-       exit (1);
+       exit (EXIT_FAILURE);
 }
 
 /*
@@ -529,7 +529,7 @@ static void process_flags (int argc, char **argv)
                        char buf[BUFSIZ];
                        snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
                        perror (buf);
-                       fail_exit (1);
+                       fail_exit (EXIT_FAILURE);
                }
        }
 
@@ -593,7 +593,7 @@ static void check_perms (void)
                fprintf (stderr,
                         _("%s: Cannot determine your user name.\n"),
                         Prog);
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
 
        retval = pam_start ("newusers", pampw->pw_name, &conv, &pamh);
@@ -611,7 +611,7 @@ static void check_perms (void)
        }
        if (PAM_SUCCESS != retval) {
                fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
 #endif                         /* USE_PAM */
 #endif                         /* ACCT_TOOLS_SETUID */
@@ -632,7 +632,7 @@ static void open_files (void)
                fprintf (stderr,
                         _("%s: cannot lock %s; try again later.\n"),
                         Prog, pw_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        pw_locked = true;
        if (is_shadow) {
@@ -640,7 +640,7 @@ static void open_files (void)
                        fprintf (stderr,
                                 _("%s: cannot lock %s; try again later.\n"),
                                 Prog, spw_dbname ());
-                       fail_exit (1);
+                       fail_exit (EXIT_FAILURE);
                }
                spw_locked = true;
        }
@@ -648,7 +648,7 @@ static void open_files (void)
                fprintf (stderr,
                         _("%s: cannot lock %s; try again later.\n"),
                         Prog, gr_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        gr_locked = true;
 #ifdef SHADOWGRP
@@ -657,7 +657,7 @@ static void open_files (void)
                        fprintf (stderr,
                                 _("%s: cannot lock %s; try again later.\n"),
                                 Prog, sgr_dbname ());
-                       fail_exit (1);
+                       fail_exit (EXIT_FAILURE);
                }
                sgr_locked = true;
        }
@@ -665,20 +665,20 @@ static void open_files (void)
 
        if (pw_open (O_RDWR) == 0) {
                fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        if (is_shadow && (spw_open (O_RDWR) == 0)) {
                fprintf (stderr, _("%s: cannot open %s\n"), Prog, spw_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        if (gr_open (O_RDWR) == 0) {
                fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
 #ifdef SHADOWGRP
        if (is_shadow_grp && (sgr_open (O_RDWR) == 0)) {
                fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ());
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
 #endif
 }
@@ -691,7 +691,7 @@ static void close_files (void)
        if (pw_close () == 0) {
                fprintf (stderr, _("%s: failure while writing changes to %s\n"), Prog, pw_dbname ());
                SYSLOG ((LOG_ERR, "failure while writing changes to %s", pw_dbname ()));
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        if (pw_unlock () == 0) {
                fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, pw_dbname ());
@@ -706,7 +706,7 @@ static void close_files (void)
                                 _("%s: failure while writing changes to %s\n"),
                                 Prog, spw_dbname ());
                        SYSLOG ((LOG_ERR, "failure while writing changes to %s", spw_dbname ()));
-                       fail_exit (1);
+                       fail_exit (EXIT_FAILURE);
                }
                if (spw_unlock () == 0) {
                        fprintf (stderr,
@@ -723,7 +723,7 @@ static void close_files (void)
                         _("%s: failure while writing changes to %s\n"),
                         Prog, gr_dbname ());
                SYSLOG ((LOG_ERR, "failure while writing changes to %s", gr_dbname ()));
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
        if (gr_unlock () == 0) {
                fprintf (stderr,
@@ -741,7 +741,7 @@ static void close_files (void)
                                 _("%s: failure while writing changes to %s\n"),
                                 Prog, sgr_dbname ());
                        SYSLOG ((LOG_ERR, "failure while writing changes to %s", sgr_dbname ()));
-                       fail_exit (1);
+                       fail_exit (EXIT_FAILURE);
                }
                if (sgr_unlock () == 0) {
                        fprintf (stderr,
@@ -963,7 +963,7 @@ int main (int argc, char **argv)
        if (0 != errors) {
                fprintf (stderr,
                         _("%s: error detected, changes ignored\n"), Prog);
-               fail_exit (1);
+               fail_exit (EXIT_FAILURE);
        }
 
        close_files ();
@@ -971,6 +971,6 @@ int main (int argc, char **argv)
        nscd_flush_cache ("passwd");
        nscd_flush_cache ("group");
 
-       return 0;
+       return EXIT_SUCCESS;
 }