Mercurial > dovecot > core-2.2
changeset 220:94382d79ae47 HEAD
make sure failure handlers don't modify errno.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 13 Sep 2002 02:09:45 +0300 |
parents | 79ae841efc11 |
children | ed0d5b17c7a4 |
files | src/lib/failures.c src/lib/failures.h |
diffstat | 2 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/failures.c Wed Sep 11 20:45:03 2002 +0300 +++ b/src/lib/failures.c Fri Sep 13 02:09:45 2002 +0300 @@ -82,6 +82,8 @@ static void default_error_handler(const char *format, va_list args) { + int old_errno = errno; + write_prefix(); fputs("Error: ", log_fd); @@ -89,10 +91,14 @@ fputc('\n', log_fd); fflush(log_fd); + + errno = old_errno; } static void default_warning_handler(const char *format, va_list args) { + int old_errno = errno; + write_prefix(); fputs("Warning: ", log_fd); @@ -100,6 +106,8 @@ fputc('\n', log_fd); fflush(log_fd); + + errno = old_errno; } void i_panic(const char *format, ...)
--- a/src/lib/failures.h Wed Sep 11 20:45:03 2002 +0300 +++ b/src/lib/failures.h Fri Sep 13 02:09:45 2002 +0300 @@ -10,6 +10,7 @@ void i_error(const char *format, ...) __attr_format__(1, 2); void i_warning(const char *format, ...) __attr_format__(1, 2); +/* Change failure handlers. Make sure they don't modify errno. */ void i_set_panic_handler(FailureFunc func __attr_noreturn__); void i_set_fatal_handler(FailureFunc func __attr_noreturn__); void i_set_error_handler(FailureFunc func);