From 5a94f4ea53dd760b98e55bd33d642c09dfca3cb9 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 24 Aug 2001 03:59:36 +0000 Subject: Limit the maximum output buffer size. iconv bugs? returns E2BIG forever on 2001-08-24 Not Zed * camel-mime-part-utils.c (convert_buffer): Limit the maximum output buffer size. iconv bugs? returns E2BIG forever on some (valid) data? svn path=/trunk/; revision=12432 --- camel/ChangeLog | 4 ++++ camel/camel-mime-part-utils.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'camel') 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 + * 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; } -- cgit v1.2.3