diff options
-rw-r--r-- | camel/ChangeLog | 4 | ||||
-rw-r--r-- | camel/camel-mime-part-utils.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index ea2d2911e4..c3a5abf485 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,5 +1,9 @@ 2001-08-24 Not Zed <NotZed@Ximian.com> + * camel-mime-part-utils.c (convert_buffer): Limit the maximum + output buffer size. iconv bugs? returns E2BIG forever on some + (valid) data? + * providers/local/camel-spool-summary.c (summary_rebuild): Likewise. * providers/local/camel-mbox-summary.c (summary_rebuild): diff --git a/camel/camel-mime-part-utils.c b/camel/camel-mime-part-utils.c index 7dd156a141..bcbc1a2583 100644 --- a/camel/camel-mime-part-utils.c +++ b/camel/camel-mime-part-utils.c @@ -150,8 +150,9 @@ static GByteArray *convert_buffer(GByteArray *in, const char *to, const char *fr convlen = iconv(ic, (const char **)&inbuf, &inlen, &outbuf, &outlen); if (convlen == -1) { g_free(buffer); + g_warning("conversion failed: %s", strerror(errno)); /* we didn't have enough space */ - if (errno == E2BIG) { + if (errno == E2BIG && i<6) { i++; continue; } |