X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Ffmt_rfc2047.c;h=9d5b6d3cbdea51626d07f956c48ad673b12a7dd2;hb=b47dac6540ed952b95dbdce78d2a5f48ff0db86b;hp=0eb71bd64b47684cbd49fd1a60379354e5209b16;hpb=81a21a9a97d8633f6d6231e31fdb6e328d0d3ff2;p=mmh diff --git a/sbr/fmt_rfc2047.c b/sbr/fmt_rfc2047.c index 0eb71bd..9d5b6d3 100644 --- a/sbr/fmt_rfc2047.c +++ b/sbr/fmt_rfc2047.c @@ -135,7 +135,7 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen) /* .. it can't. We'll use iconv then. */ *pp = '\0'; cd = iconv_open(get_charset(), startofmime); - fromutf8 = !strcasecmp(startofmime, "UTF-8"); + fromutf8 = !mh_strcasecmp(startofmime, "UTF-8"); *pp = '?'; if (cd == (iconv_t)-1) continue; use_iconv = 1; @@ -196,6 +196,15 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen) } #ifdef HAVE_ICONV + /* + * empty encoded text. This ensures that we don't + * malloc 0 bytes but skip on to the end + */ + if (endofmime == startofmime && use_iconv) { + use_iconv = 0; + iconv_close(cd); + } + if (use_iconv) { saveq = q; savedstlen = dstlen;