diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.in | 4 | ||||
-rw-r--r-- | src/expiry.c | 2 | ||||
-rw-r--r-- | src/gpasswd.c | 5 | ||||
-rw-r--r-- | src/login.c | 11 | ||||
-rw-r--r-- | src/newgidmap.c | 4 | ||||
-rw-r--r-- | src/newuidmap.c | 4 | ||||
-rw-r--r-- | src/su.c | 21 | ||||
-rw-r--r-- | src/sulogin.c | 2 |
8 files changed, 29 insertions, 24 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index af6b5f97..dc04b877 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -577,9 +577,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile + $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ diff --git a/src/expiry.c b/src/expiry.c index 4ae47703..41add942 100644 --- a/src/expiry.c +++ b/src/expiry.c @@ -58,7 +58,7 @@ static void process_flags (int argc, char **argv); */ static RETSIGTYPE catch_signals (unused int sig) { - exit (10); + _exit (10); } /* diff --git a/src/gpasswd.c b/src/gpasswd.c index 27ad9599..c4a492b1 100644 --- a/src/gpasswd.c +++ b/src/gpasswd.c @@ -169,9 +169,8 @@ static RETSIGTYPE catch_signals (int killed) } if (0 != killed) { - (void) putchar ('\n'); - (void) fflush (stdout); - exit (killed); + (void) write (STDOUT_FILENO, "\n", 1); + _exit (killed); } } diff --git a/src/login.c b/src/login.c index d610844d..2d2e704e 100644 --- a/src/login.c +++ b/src/login.c @@ -103,7 +103,7 @@ static bool hflg = false; static bool preauth_flag = false; static bool amroot; -static unsigned int timeout; +static char tmsg[256]; /* * External identifiers. @@ -416,8 +416,8 @@ static void init_env (void) static RETSIGTYPE alarm_handler (unused int sig) { - fprintf (stderr, _("\nLogin timed out after %u seconds.\n"), timeout); - exit (0); + write (STDERR_FILENO, tmsg, strlen (tmsg)); + _exit (0); } #ifdef USE_PAM @@ -532,6 +532,7 @@ int main (int argc, char **argv) bool is_console; #endif int err; + unsigned int timeout; const char *cp; const char *tmp; char fromhost[512]; @@ -698,8 +699,10 @@ int main (int argc, char **argv) top: /* only allow ALARM sec. for login */ - (void) signal (SIGALRM, alarm_handler); timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); + snprintf (tmsg, sizeof tmsg, + _("\nLogin timed out after %u seconds.\n"), timeout); + (void) signal (SIGALRM, alarm_handler); if (timeout > 0) { (void) alarm (timeout); } diff --git a/src/newgidmap.c b/src/newgidmap.c index 451c6a64..b1e33513 100644 --- a/src/newgidmap.c +++ b/src/newgidmap.c @@ -56,7 +56,7 @@ static bool verify_range(struct passwd *pw, struct map_range *range) if (have_sub_gids(pw->pw_name, range->lower, range->count)) return true; - /* Allow a process to map it's own gid */ + /* Allow a process to map its own gid */ if ((range->count == 1) && (pw->pw_gid == range->lower)) return true; @@ -113,7 +113,7 @@ int main(int argc, char **argv) if (argc < 2) usage(); - /* Find the process that needs it's user namespace + /* Find the process that needs its user namespace * gid mapping set. */ target_str = argv[1]; diff --git a/src/newuidmap.c b/src/newuidmap.c index 9c8bc1ba..1ba25e7a 100644 --- a/src/newuidmap.c +++ b/src/newuidmap.c @@ -56,7 +56,7 @@ static bool verify_range(struct passwd *pw, struct map_range *range) if (have_sub_uids(pw->pw_name, range->lower, range->count)) return true; - /* Allow a process to map it's own uid */ + /* Allow a process to map its own uid */ if ((range->count == 1) && (pw->pw_uid == range->lower)) return true; @@ -113,7 +113,7 @@ int main(int argc, char **argv) if (argc < 2) usage(); - /* Find the process that needs it's user namespace + /* Find the process that needs its user namespace * uid mapping set. */ target_str = argv[1]; @@ -105,6 +105,8 @@ static char caller_name[BUFSIZ]; static bool change_environment = true; #ifdef USE_PAM +static char kill_msg[256]; +static char wait_msg[256]; static pam_handle_t *pamh = NULL; static int caught = 0; /* PID of the child, in case it needs to be killed */ @@ -161,8 +163,7 @@ static RETSIGTYPE die (int killed) } if (killed != 0) { - closelog (); - exit (128+killed); + _exit (128+killed); } } @@ -182,12 +183,11 @@ static RETSIGTYPE kill_child (int unused(s)) { if (0 != pid_child) { (void) kill (-pid_child, SIGKILL); - (void) fputs (_(" ...killed.\n"), stderr); + (void) write (STDERR_FILENO, kill_msg, strlen (kill_msg)); } else { - (void) fputs (_(" ...waiting for child to terminate.\n"), - stderr); + (void) write (STDERR_FILENO, wait_msg, strlen (wait_msg)); } - exit (255); + _exit (255); } #endif /* USE_PAM */ @@ -373,6 +373,9 @@ static void prepare_pam_close_session (void) stderr); (void) kill (-pid_child, caught); + snprintf (kill_msg, 256, _(" ...killed.\n")); + snprintf (wait_msg, 256, _(" ...waiting for child to terminate.\n")); + (void) signal (SIGALRM, kill_child); (void) alarm (2); @@ -422,7 +425,7 @@ static void check_perms_pam (const struct passwd *pw) int ret; ret = pam_authenticate (pamh, 0); if (PAM_SUCCESS != ret) { - SYSLOG ((LOG_ERR, "pam_authenticate: %s", + SYSLOG (((pw->pw_uid != 0)? LOG_NOTICE : LOG_WARN, "pam_authenticate: %s", pam_strerror (pamh, ret))); fprintf (stderr, _("%s: %s\n"), Prog, pam_strerror (pamh, ret)); (void) pam_end (pamh, ret); @@ -585,7 +588,7 @@ static /*@only@*/struct passwd * check_perms (void) if (NULL == pw) { (void) fprintf (stderr, _("No passwd entry for user '%s'\n"), name); - SYSLOG ((LOG_ERR, "No passwd entry for user '%s'", name)); + SYSLOG ((LOG_NOTICE, "No passwd entry for user '%s'", name)); su_failure (caller_tty, true); } @@ -615,7 +618,7 @@ static /*@only@*/struct passwd * check_perms (void) (void) fprintf (stderr, _("No passwd entry for user '%s'\n"), name); - SYSLOG ((LOG_ERR, + SYSLOG ((LOG_NOTICE, "No passwd entry for user '%s'", name)); su_failure (caller_tty, true); } diff --git a/src/sulogin.c b/src/sulogin.c index ccbf2c5d..4264099b 100644 --- a/src/sulogin.c +++ b/src/sulogin.c @@ -70,7 +70,7 @@ static RETSIGTYPE catch_signals (int); static RETSIGTYPE catch_signals (unused int sig) { - exit (1); + _exit (1); } /* |