if (use_iconv) {
saveq = q;
savedstlen = dstlen;
- q = convbuf = (char *) mh_xcalloc(endofmime - startofmime, sizeof(char));
+ q = convbuf = mh_xcalloc(endofmime - startofmime, sizeof(char));
}
/*
** ADDCHR2 is for adding characters when q is or might be convbuf:
break;
/* skip to next input character */
if (fromutf8) {
- for (start++;(start < q) && ((*start & 192) == 128);start++)
+ inbytes--;
+ start++;
+ while ((start < q) && ((*start & 192) == 128)) {
+ start++;
inbytes--;
+ }
} else
start++, inbytes--;
if (start >= q)
if (!dstlen || !savedstlen)
goto buffull;
dstlen = savedstlen;
- free(convbuf);
+ mh_free0(&convbuf);
}
#endif