* 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.
This commit is contained in:
parent
0f448edf19
commit
a326ffa435
14
ChangeLog
14
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>
|
2009-04-28 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
* NEWS, src/chpasswd.c: Added support for changing the passwords
|
* NEWS, src/chpasswd.c: Added support for changing the passwords
|
||||||
|
@ -53,7 +53,7 @@ char *pw_encrypt (const char *clear, const char *salt)
|
|||||||
* expect us to return NULL, so...
|
* expect us to return NULL, so...
|
||||||
*/
|
*/
|
||||||
perror ("crypt");
|
perror ("crypt");
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The GNU crypt does not return NULL if the algorithm is not
|
/* 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,
|
fprintf (stderr,
|
||||||
_("crypt method not supported by libcrypt? (%s)\n"),
|
_("crypt method not supported by libcrypt? (%s)\n"),
|
||||||
method);
|
method);
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen (cp) != 13)
|
if (strlen (cp) != 13) {
|
||||||
return cp; /* nonstandard crypt() in libc, better bail out */
|
return cp; /* nonstandard crypt() in libc, better bail out */
|
||||||
|
}
|
||||||
|
|
||||||
strcpy (cipher, cp);
|
strcpy (cipher, cp);
|
||||||
|
|
||||||
return cipher;
|
return cipher;
|
||||||
|
@ -32,7 +32,12 @@
|
|||||||
/*
|
/*
|
||||||
* Exit codes used by shadow programs
|
* 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_NOPERM 1 /* permission denied */
|
||||||
#define E_USAGE 2 /* invalid command syntax */
|
#define E_USAGE 2 /* invalid command syntax */
|
||||||
#define E_BAD_ARG 3 /* invalid argument to option */
|
#define E_BAD_ARG 3 /* invalid argument to option */
|
||||||
|
@ -53,12 +53,14 @@ void audit_help_open (void)
|
|||||||
if (audit_fd < 0) {
|
if (audit_fd < 0) {
|
||||||
/* You get these only when the kernel doesn't have
|
/* You get these only when the kernel doesn't have
|
||||||
* audit compiled in. */
|
* audit compiled in. */
|
||||||
if (errno == EINVAL || errno == EPROTONOSUPPORT ||
|
if ( (errno == EINVAL)
|
||||||
errno == EAFNOSUPPORT)
|
|| (errno == EPROTONOSUPPORT)
|
||||||
|
|| (errno == EAFNOSUPPORT)) {
|
||||||
return;
|
return;
|
||||||
fprintf (stderr,
|
}
|
||||||
_("Cannot open audit interface - aborting.\n"));
|
(void) fputs (_("Cannot open audit interface - aborting.\n"),
|
||||||
exit (1);
|
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.
|
* 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
|
* id - uid or gid that the operation is being performed on. This is used
|
||||||
* only when user is NULL.
|
* only when user is NULL.
|
||||||
* result - 1 is "success" and 0 is "failed"
|
|
||||||
*/
|
*/
|
||||||
void audit_logger (int type, const char *pgname, const char *op,
|
void audit_logger (int type, const char *pgname, const char *op,
|
||||||
const char *name, unsigned int id,
|
const char *name, unsigned int id,
|
||||||
|
@ -83,7 +83,7 @@ void chown_tty (const struct passwd *info)
|
|||||||
info->pw_name, strerror (err)));
|
info->pw_name, strerror (err)));
|
||||||
if (EROFS != err) {
|
if (EROFS != err) {
|
||||||
closelog ();
|
closelog ();
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
@ -436,7 +436,7 @@ void setup_limits (const struct passwd *info)
|
|||||||
LOGIN_ERROR_LOGIN) {
|
LOGIN_ERROR_LOGIN) {
|
||||||
(void) fputs (_("Too many logins.\n"), stderr);
|
(void) fputs (_("Too many logins.\n"), stderr);
|
||||||
(void) sleep (2); /* XXX: Should be FAIL_DELAY */
|
(void) sleep (2); /* XXX: Should be FAIL_DELAY */
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -114,7 +114,7 @@ static void get_remote_string (char *buf, size_t size)
|
|||||||
{
|
{
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (read (0, buf, 1) != 1) {
|
if (read (0, buf, 1) != 1) {
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if ('\0' == *buf) {
|
if ('\0' == *buf) {
|
||||||
return;
|
return;
|
||||||
|
@ -58,7 +58,7 @@ void subsystem (const struct passwd *pw)
|
|||||||
printf (_("Invalid root directory '%s'\n"), pw->pw_dir);
|
printf (_("Invalid root directory '%s'\n"), pw->pw_dir);
|
||||||
SYSLOG ((LOG_WARN, BAD_SUBROOT2, pw->pw_dir, pw->pw_name));
|
SYSLOG ((LOG_WARN, BAD_SUBROOT2, pw->pw_dir, pw->pw_name));
|
||||||
closelog ();
|
closelog ();
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -71,6 +71,6 @@ void subsystem (const struct passwd *pw)
|
|||||||
pw->pw_dir);
|
pw->pw_dir);
|
||||||
SYSLOG ((LOG_WARN, NO_SUBROOT2, pw->pw_dir, pw->pw_name));
|
SYSLOG ((LOG_WARN, NO_SUBROOT2, pw->pw_dir, pw->pw_name));
|
||||||
closelog ();
|
closelog ();
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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",
|
"can't switch back to group `%d' in sulog",
|
||||||
oldgid));
|
oldgid));
|
||||||
/* Do not return if the group permission were raised. */
|
/* Do not return if the group permission were raised. */
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (fp == (FILE *) 0) {
|
if (fp == (FILE *) 0) {
|
||||||
return; /* can't open or create logfile */
|
return; /* can't open or create logfile */
|
||||||
|
@ -51,8 +51,11 @@ int safe_system (const char *command,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pid) { /* Parent */
|
if (pid) { /* Parent */
|
||||||
waitpid (pid, &status, 0);
|
if (waitpid (pid, &status, 0) > 0) {
|
||||||
return status;
|
return status;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fd = open ("/dev/null", O_RDWR);
|
fd = open ("/dev/null", O_RDWR);
|
||||||
@ -64,6 +67,6 @@ int safe_system (const char *command,
|
|||||||
|
|
||||||
execve (command, (char *const *) argv, (char *const *) env);
|
execve (command, (char *const *) argv, (char *const *) env);
|
||||||
fprintf (stderr, _("Failed to exec '%s'\n"), argv[0]);
|
fprintf (stderr, _("Failed to exec '%s'\n"), argv[0]);
|
||||||
exit (-1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ static void print_groups (const char *member)
|
|||||||
if (NULL == pwd) {
|
if (NULL == pwd) {
|
||||||
(void) fprintf (stderr, _("%s: unknown user %s\n"),
|
(void) fprintf (stderr, _("%s: unknown user %s\n"),
|
||||||
Prog, member);
|
Prog, member);
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
setgrent ();
|
setgrent ();
|
||||||
@ -146,7 +146,7 @@ int main (int argc, char **argv)
|
|||||||
ngroups = getgroups (sys_ngroups, groups);
|
ngroups = getgroups (sys_ngroups, groups);
|
||||||
if (ngroups < 0) {
|
if (ngroups < 0) {
|
||||||
perror ("getgroups");
|
perror ("getgroups");
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -203,7 +203,7 @@ int main (int argc, char **argv)
|
|||||||
if (NULL != logname) {
|
if (NULL != logname) {
|
||||||
print_groups (logname);
|
print_groups (logname);
|
||||||
} else {
|
} else {
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
@ -214,6 +214,6 @@ int main (int argc, char **argv)
|
|||||||
*/
|
*/
|
||||||
print_groups (argv[1]);
|
print_groups (argv[1]);
|
||||||
}
|
}
|
||||||
exit (0);
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
src/id.c
6
src/id.c
@ -57,7 +57,7 @@ static void usage (void)
|
|||||||
#else
|
#else
|
||||||
(void) fputs (_("Usage: id\n"), stderr);
|
(void) fputs (_("Usage: id\n"), stderr);
|
||||||
#endif
|
#endif
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGSUSED*/ int main (int argc, char **argv)
|
/*ARGSUSED*/ int main (int argc, char **argv)
|
||||||
@ -201,7 +201,7 @@ static void usage (void)
|
|||||||
* Finish off the line.
|
* Finish off the line.
|
||||||
*/
|
*/
|
||||||
(void) putchar ('\n');
|
(void) putchar ('\n');
|
||||||
exit (0);
|
|
||||||
/* NOT REACHED */
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,11 +175,11 @@ int main (int argc, char **argv)
|
|||||||
pid = fork ();
|
pid = fork ();
|
||||||
if (pid > 0) {
|
if (pid > 0) {
|
||||||
/* parent */
|
/* parent */
|
||||||
exit (0);
|
exit (EXIT_SUCCESS);
|
||||||
} else if (pid < 0) {
|
} else if (pid < 0) {
|
||||||
/* error */
|
/* error */
|
||||||
perror ("fork");
|
perror ("fork");
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#endif /* !DEBUG */
|
#endif /* !DEBUG */
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ int main (int argc, char **argv)
|
|||||||
/*
|
/*
|
||||||
* This child has done all it can, drop dead.
|
* This child has done all it can, drop dead.
|
||||||
*/
|
*/
|
||||||
exit (0);
|
exit (EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_UTMPX
|
#ifdef USE_UTMPX
|
||||||
@ -293,7 +293,7 @@ int main (int argc, char **argv)
|
|||||||
*/
|
*/
|
||||||
while (wait (&status) != -1);
|
while (wait (&status) != -1);
|
||||||
}
|
}
|
||||||
return 1;
|
|
||||||
/* NOT REACHED */
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ static void usage (void)
|
|||||||
" crypt algorithms\n")
|
" crypt algorithms\n")
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -529,7 +529,7 @@ static void process_flags (int argc, char **argv)
|
|||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
|
snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
|
||||||
perror (buf);
|
perror (buf);
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +593,7 @@ static void check_perms (void)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: Cannot determine your user name.\n"),
|
_("%s: Cannot determine your user name.\n"),
|
||||||
Prog);
|
Prog);
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = pam_start ("newusers", pampw->pw_name, &conv, &pamh);
|
retval = pam_start ("newusers", pampw->pw_name, &conv, &pamh);
|
||||||
@ -611,7 +611,7 @@ static void check_perms (void)
|
|||||||
}
|
}
|
||||||
if (PAM_SUCCESS != retval) {
|
if (PAM_SUCCESS != retval) {
|
||||||
fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
|
fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#endif /* USE_PAM */
|
#endif /* USE_PAM */
|
||||||
#endif /* ACCT_TOOLS_SETUID */
|
#endif /* ACCT_TOOLS_SETUID */
|
||||||
@ -632,7 +632,7 @@ static void open_files (void)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot lock %s; try again later.\n"),
|
_("%s: cannot lock %s; try again later.\n"),
|
||||||
Prog, pw_dbname ());
|
Prog, pw_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
pw_locked = true;
|
pw_locked = true;
|
||||||
if (is_shadow) {
|
if (is_shadow) {
|
||||||
@ -640,7 +640,7 @@ static void open_files (void)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot lock %s; try again later.\n"),
|
_("%s: cannot lock %s; try again later.\n"),
|
||||||
Prog, spw_dbname ());
|
Prog, spw_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
spw_locked = true;
|
spw_locked = true;
|
||||||
}
|
}
|
||||||
@ -648,7 +648,7 @@ static void open_files (void)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot lock %s; try again later.\n"),
|
_("%s: cannot lock %s; try again later.\n"),
|
||||||
Prog, gr_dbname ());
|
Prog, gr_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
gr_locked = true;
|
gr_locked = true;
|
||||||
#ifdef SHADOWGRP
|
#ifdef SHADOWGRP
|
||||||
@ -657,7 +657,7 @@ static void open_files (void)
|
|||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot lock %s; try again later.\n"),
|
_("%s: cannot lock %s; try again later.\n"),
|
||||||
Prog, sgr_dbname ());
|
Prog, sgr_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
sgr_locked = true;
|
sgr_locked = true;
|
||||||
}
|
}
|
||||||
@ -665,20 +665,20 @@ static void open_files (void)
|
|||||||
|
|
||||||
if (pw_open (O_RDWR) == 0) {
|
if (pw_open (O_RDWR) == 0) {
|
||||||
fprintf (stderr, _("%s: cannot open %s\n"), Prog, pw_dbname ());
|
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)) {
|
if (is_shadow && (spw_open (O_RDWR) == 0)) {
|
||||||
fprintf (stderr, _("%s: cannot open %s\n"), Prog, spw_dbname ());
|
fprintf (stderr, _("%s: cannot open %s\n"), Prog, spw_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (gr_open (O_RDWR) == 0) {
|
if (gr_open (O_RDWR) == 0) {
|
||||||
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
|
fprintf (stderr, _("%s: cannot open %s\n"), Prog, gr_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#ifdef SHADOWGRP
|
#ifdef SHADOWGRP
|
||||||
if (is_shadow_grp && (sgr_open (O_RDWR) == 0)) {
|
if (is_shadow_grp && (sgr_open (O_RDWR) == 0)) {
|
||||||
fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ());
|
fprintf (stderr, _("%s: cannot open %s\n"), Prog, sgr_dbname ());
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -691,7 +691,7 @@ static void close_files (void)
|
|||||||
if (pw_close () == 0) {
|
if (pw_close () == 0) {
|
||||||
fprintf (stderr, _("%s: failure while writing changes to %s\n"), Prog, pw_dbname ());
|
fprintf (stderr, _("%s: failure while writing changes to %s\n"), Prog, pw_dbname ());
|
||||||
SYSLOG ((LOG_ERR, "failure while writing changes to %s", pw_dbname ()));
|
SYSLOG ((LOG_ERR, "failure while writing changes to %s", pw_dbname ()));
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (pw_unlock () == 0) {
|
if (pw_unlock () == 0) {
|
||||||
fprintf (stderr, _("%s: failed to unlock %s\n"), Prog, pw_dbname ());
|
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"),
|
_("%s: failure while writing changes to %s\n"),
|
||||||
Prog, spw_dbname ());
|
Prog, spw_dbname ());
|
||||||
SYSLOG ((LOG_ERR, "failure while writing changes to %s", spw_dbname ()));
|
SYSLOG ((LOG_ERR, "failure while writing changes to %s", spw_dbname ()));
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (spw_unlock () == 0) {
|
if (spw_unlock () == 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
@ -723,7 +723,7 @@ static void close_files (void)
|
|||||||
_("%s: failure while writing changes to %s\n"),
|
_("%s: failure while writing changes to %s\n"),
|
||||||
Prog, gr_dbname ());
|
Prog, gr_dbname ());
|
||||||
SYSLOG ((LOG_ERR, "failure while writing changes to %s", gr_dbname ()));
|
SYSLOG ((LOG_ERR, "failure while writing changes to %s", gr_dbname ()));
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (gr_unlock () == 0) {
|
if (gr_unlock () == 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
@ -741,7 +741,7 @@ static void close_files (void)
|
|||||||
_("%s: failure while writing changes to %s\n"),
|
_("%s: failure while writing changes to %s\n"),
|
||||||
Prog, sgr_dbname ());
|
Prog, sgr_dbname ());
|
||||||
SYSLOG ((LOG_ERR, "failure while writing changes to %s", sgr_dbname ()));
|
SYSLOG ((LOG_ERR, "failure while writing changes to %s", sgr_dbname ()));
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (sgr_unlock () == 0) {
|
if (sgr_unlock () == 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
@ -963,7 +963,7 @@ int main (int argc, char **argv)
|
|||||||
if (0 != errors) {
|
if (0 != errors) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: error detected, changes ignored\n"), Prog);
|
_("%s: error detected, changes ignored\n"), Prog);
|
||||||
fail_exit (1);
|
fail_exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
close_files ();
|
close_files ();
|
||||||
@ -971,6 +971,6 @@ int main (int argc, char **argv)
|
|||||||
nscd_flush_cache ("passwd");
|
nscd_flush_cache ("passwd");
|
||||||
nscd_flush_cache ("group");
|
nscd_flush_cache ("group");
|
||||||
|
|
||||||
return 0;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user