Mercurial > dovecot > original-hg > dovecot-1.2
changeset 9586:97b702abd132 HEAD
lib-charset: Don't assert-crash when iconv() skips lots of invalid input.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 21 Jun 2010 21:17:58 +0100 |
parents | cdc66c6e0c6f |
children | 659f72bf92ae |
files | src/lib-charset/charset-iconv.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-charset/charset-iconv.c Sat Jun 19 01:13:47 2010 +0300 +++ b/src/lib-charset/charset-iconv.c Mon Jun 21 21:17:58 2010 +0100 @@ -131,7 +131,7 @@ { bool dtcase = (t->flags & CHARSET_FLAG_DECOMP_TITLECASE) != 0; enum charset_result result; - size_t pos, used, size, prev_used = 0; + size_t pos, used, size, prev_pos = 0, prev_used = 0; bool ret; for (pos = 0;;) { @@ -151,7 +151,8 @@ (void)buffer_append_space_unsafe(dest, size); buffer_set_used_size(dest, used); } else { - i_assert(dest->used != prev_used); + i_assert(dest->used != prev_used || pos != prev_pos); + prev_pos = pos; prev_used = dest->used; } }