dovecot-1.0: Logging: Make sure we don't recurse infinitely when...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jul 20 17:58:26 EEST 2008
details: http://hg.dovecot.org/dovecot-1.0/rev/c311c66a2d1b
changeset: 5564:c311c66a2d1b
user: Timo Sirainen <tss at iki.fi>
date: Sun Jul 20 17:58:22 2008 +0300
description:
Logging: Make sure we don't recurse infinitely when running out of memory.
diffstat:
1 file changed, 7 insertions(+)
src/lib/failures.c | 7 +++++++
diffs (26 lines):
diff -r f700b7b822f1 -r c311c66a2d1b src/lib/failures.c
--- a/src/lib/failures.c Fri Jul 18 16:21:04 2008 +0300
+++ b/src/lib/failures.c Sun Jul 20 17:58:22 2008 +0300
@@ -376,8 +376,14 @@ void i_set_failure_file(const char *path
static int internal_handler(char log_type, const char *format, va_list args)
{
+ static int recursed = 0;
string_t *str;
int ret;
+
+ if (recursed != 0)
+ return -1;
+
+ recursed++;
t_push();
str = t_str_new(512);
@@ -388,6 +394,7 @@ static int internal_handler(char log_typ
ret = write_full(2, str_data(str), str_len(str));
t_pop();
+ recursed--;
return ret;
}
More information about the dovecot-cvs
mailing list