aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-mime-filter-charset.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-mime-filter-charset.c')
-rw-r--r--camel/camel-mime-filter-charset.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/camel/camel-mime-filter-charset.c b/camel/camel-mime-filter-charset.c
index c91c7f061f..1fc10a1aff 100644
--- a/camel/camel-mime-filter-charset.c
+++ b/camel/camel-mime-filter-charset.c
@@ -26,6 +26,7 @@
#include "camel-mime-filter-charset.h"
+#define d(x)
static void camel_mime_filter_charset_class_init (CamelMimeFilterCharsetClass *klass);
static void camel_mime_filter_charset_init (CamelMimeFilterCharset *obj);
@@ -101,6 +102,9 @@ complete(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out,
outbuf = mf->outbuf;
outlen = mf->outsize;
+ /* temporary fix to find another bug somewhere */
+ d(memset(outbuf, 0, outlen));
+
if (inlen>0) {
converted = unicode_iconv(f->ic, &inbuf, &inlen, &outbuf, &outlen);
if (converted == -1) {
@@ -122,6 +126,15 @@ complete(CamelMimeFilter *mf, char *in, size_t len, size_t prespace, char **out,
g_warning("Conversion failed to complete: %s", strerror(errno));
}
+ /* debugging assertion - check for NUL's in output */
+ d({
+ int i;
+
+ for (i=0;i<(mf->outsize - outlen);i++) {
+ g_assert(mf->outbuf[i]);
+ }
+ });
+
*out = mf->outbuf;
*outlenptr = mf->outsize - outlen;
*outprespace = mf->outpre;