diff options
author | Damien Miller <djm@mindrot.org> | 2006-08-19 08:38:23 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2006-08-19 08:38:23 +1000 |
commit | bb59814cd644f78e82df07d820ed00fa7a25e68a (patch) | |
tree | 5b67f5a6e3d4a54116f77cdaf972f4288e74c83f | |
parent | 3d2d6e90e4c6f46347b7212401198babe49f2c50 (diff) |
- (djm) Disable sigdie() for platforms that cannot safely syslog inside
a signal handler (basically all of them, excepting OpenBSD);
ok dtucker@
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | defines.h | 7 | ||||
-rw-r--r-- | log.c | 2 |
4 files changed, 16 insertions, 4 deletions
@@ -42,6 +42,9 @@ | |||
42 | [gss-genr.c ssh-gss.h] | 42 | [gss-genr.c ssh-gss.h] |
43 | constify host argument to match the rest of the GSSAPI functions and | 43 | constify host argument to match the rest of the GSSAPI functions and |
44 | unbreak compilation with -Werror | 44 | unbreak compilation with -Werror |
45 | - (djm) Disable sigdie() for platforms that cannot safely syslog inside | ||
46 | a signal handler (basically all of them, excepting OpenBSD); | ||
47 | ok dtucker@ | ||
45 | 48 | ||
46 | 20060817 | 49 | 20060817 |
47 | - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c] | 50 | - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c] |
@@ -5263,4 +5266,4 @@ | |||
5263 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM | 5266 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM |
5264 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu | 5267 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu |
5265 | 5268 | ||
5266 | $Id: ChangeLog,v 1.4495 2006/08/18 14:46:43 djm Exp $ | 5269 | $Id: ChangeLog,v 1.4496 2006/08/18 22:38:23 djm Exp $ |
diff --git a/configure.ac b/configure.ac index f8e6cd4ce..9d30bff61 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: configure.ac,v 1.350 2006/08/18 08:51:20 dtucker Exp $ | 1 | # $Id: configure.ac,v 1.351 2006/08/18 22:38:23 djm Exp $ |
2 | # | 2 | # |
3 | # Copyright (c) 1999-2004 Damien Miller | 3 | # Copyright (c) 1999-2004 Damien Miller |
4 | # | 4 | # |
@@ -15,7 +15,7 @@ | |||
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | 16 | ||
17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) | 17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) |
18 | AC_REVISION($Revision: 1.350 $) | 18 | AC_REVISION($Revision: 1.351 $) |
19 | AC_CONFIG_SRCDIR([ssh.c]) | 19 | AC_CONFIG_SRCDIR([ssh.c]) |
20 | 20 | ||
21 | AC_CONFIG_HEADER(config.h) | 21 | AC_CONFIG_HEADER(config.h) |
@@ -402,6 +402,8 @@ mips-sony-bsd|mips-sony-newsos4) | |||
402 | AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) | 402 | AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) |
403 | AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) | 403 | AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) |
404 | AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way]) | 404 | AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way]) |
405 | AC_DEFINE(SYSLOG_R_SAFE_IN_SIGHAND, 1, | ||
406 | [syslog_r function is safe to use in in a signal handler]) | ||
405 | ;; | 407 | ;; |
406 | *-*-solaris*) | 408 | *-*-solaris*) |
407 | if test "x$withval" != "xno" ; then | 409 | if test "x$withval" != "xno" ; then |
@@ -25,7 +25,7 @@ | |||
25 | #ifndef _DEFINES_H | 25 | #ifndef _DEFINES_H |
26 | #define _DEFINES_H | 26 | #define _DEFINES_H |
27 | 27 | ||
28 | /* $Id: defines.h,v 1.136 2006/08/06 11:23:28 dtucker Exp $ */ | 28 | /* $Id: defines.h,v 1.137 2006/08/18 22:38:24 djm Exp $ */ |
29 | 29 | ||
30 | 30 | ||
31 | /* Constants */ | 31 | /* Constants */ |
@@ -542,6 +542,11 @@ struct winsize { | |||
542 | # undef HAVE_UPDWTMPX | 542 | # undef HAVE_UPDWTMPX |
543 | #endif | 543 | #endif |
544 | 544 | ||
545 | #if defined(HAVE_OPENLOG_R) && defined(SYSLOG_DATA_INIT) && \ | ||
546 | defined(SYSLOG_R_SAFE_IN_SIGHAND) | ||
547 | # define DO_LOG_SAFE_IN_SIGHAND | ||
548 | #endif | ||
549 | |||
545 | #if !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) | 550 | #if !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) |
546 | # define memmove(s1, s2, n) bcopy((s2), (s1), (n)) | 551 | # define memmove(s1, s2, n) bcopy((s2), (s1), (n)) |
547 | #endif /* !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) */ | 552 | #endif /* !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) */ |
@@ -142,9 +142,11 @@ sigdie(const char *fmt,...) | |||
142 | { | 142 | { |
143 | va_list args; | 143 | va_list args; |
144 | 144 | ||
145 | #ifdef DO_LOG_SAFE_IN_SIGHAND | ||
145 | va_start(args, fmt); | 146 | va_start(args, fmt); |
146 | do_log(SYSLOG_LEVEL_FATAL, fmt, args); | 147 | do_log(SYSLOG_LEVEL_FATAL, fmt, args); |
147 | va_end(args); | 148 | va_end(args); |
149 | #endif | ||
148 | _exit(1); | 150 | _exit(1); |
149 | } | 151 | } |
150 | 152 | ||