[log.c log.h sshd.c]
     make signal handler termination path shorter; risky code pointed out by
     mark dowd; ok djm markus
This commit is contained in:
Damien Miller 2006-08-19 00:32:20 +10:00
parent a1f6840a4f
commit 99a648e592
4 changed files with 22 additions and 7 deletions

View File

@ -22,6 +22,10 @@
[sshd.c] [sshd.c]
factor inetd connection, TCP listen and main TCP accept loop out of factor inetd connection, TCP listen and main TCP accept loop out of
main() into separate functions to improve readability; ok markus@ main() into separate functions to improve readability; ok markus@
- deraadt@cvs.openbsd.org 2006/08/18 09:13:26
[log.c log.h sshd.c]
make signal handler termination path shorter; risky code pointed out by
mark dowd; ok djm markus
20060817 20060817
- (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c] - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c]
@ -5243,4 +5247,4 @@
- (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Trim deprecated options from INSTALL. Mention UsePAM
- (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
$Id: ChangeLog,v 1.4490 2006/08/18 14:31:39 djm Exp $ $Id: ChangeLog,v 1.4491 2006/08/18 14:32:20 djm Exp $

14
log.c
View File

@ -1,4 +1,4 @@
/* $OpenBSD: log.c,v 1.38 2006/08/03 03:34:42 deraadt Exp $ */ /* $OpenBSD: log.c,v 1.39 2006/08/18 09:13:25 deraadt Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -137,6 +137,18 @@ error(const char *fmt,...)
va_end(args); va_end(args);
} }
void
sigdie(const char *fmt,...)
{
va_list args;
va_start(args, fmt);
do_log(SYSLOG_LEVEL_FATAL, fmt, args);
va_end(args);
_exit(1);
}
/* Log this message (information that usually should go to the log). */ /* Log this message (information that usually should go to the log). */
void void

3
log.h
View File

@ -1,4 +1,4 @@
/* $OpenBSD: log.h,v 1.14 2006/08/03 03:34:42 deraadt Exp $ */ /* $OpenBSD: log.h,v 1.15 2006/08/18 09:13:25 deraadt Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
@ -53,6 +53,7 @@ LogLevel log_level_number(char *);
void fatal(const char *, ...) __dead __attribute__((format(printf, 1, 2))); void fatal(const char *, ...) __dead __attribute__((format(printf, 1, 2)));
void error(const char *, ...) __attribute__((format(printf, 1, 2))); void error(const char *, ...) __attribute__((format(printf, 1, 2)));
void sigdie(const char *, ...) __attribute__((format(printf, 1, 2)));
void logit(const char *, ...) __attribute__((format(printf, 1, 2))); void logit(const char *, ...) __attribute__((format(printf, 1, 2)));
void verbose(const char *, ...) __attribute__((format(printf, 1, 2))); void verbose(const char *, ...) __attribute__((format(printf, 1, 2)));
void debug(const char *, ...) __attribute__((format(printf, 1, 2))); void debug(const char *, ...) __attribute__((format(printf, 1, 2)));

6
sshd.c
View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshd.c,v 1.345 2006/08/16 11:47:15 djm Exp $ */ /* $OpenBSD: sshd.c,v 1.346 2006/08/18 09:13:26 deraadt Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -344,13 +344,11 @@ main_sigchld_handler(int sig)
static void static void
grace_alarm_handler(int sig) grace_alarm_handler(int sig)
{ {
/* XXX no idea how fix this signal handler */
if (use_privsep && pmonitor != NULL && pmonitor->m_pid > 0) if (use_privsep && pmonitor != NULL && pmonitor->m_pid > 0)
kill(pmonitor->m_pid, SIGALRM); kill(pmonitor->m_pid, SIGALRM);
/* Log error and exit. */ /* Log error and exit. */
fatal("Timeout before authentication for %s", get_remote_ipaddr()); sigdie("Timeout before authentication for %s", get_remote_ipaddr());
} }
/* /*