projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
send use m_getfld2
[mmh]
/
sbr
/
fmt_rfc2047.c
diff --git
a/sbr/fmt_rfc2047.c
b/sbr/fmt_rfc2047.c
index
4e8231f
..
687ea57
100644
(file)
--- a/
sbr/fmt_rfc2047.c
+++ b/
sbr/fmt_rfc2047.c
@@
-209,7
+209,7
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
if (use_iconv) {
saveq = q;
savedstlen = dstlen;
if (use_iconv) {
saveq = q;
savedstlen = dstlen;
- q = convbuf = (char *) mh_xmalloc(endofmime - startofmime);
+ q = convbuf = mh_xcalloc(endofmime - startofmime, sizeof(char));
}
/*
** ADDCHR2 is for adding characters when q is or might be convbuf:
}
/*
** ADDCHR2 is for adding characters when q is or might be convbuf:
@@
-246,14
+246,16
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
while (pp < endofmime) {
/* 6 + 2 bits */
while ((pp < endofmime) &&
while (pp < endofmime) {
/* 6 + 2 bits */
while ((pp < endofmime) &&
- ((c1 = char64(*pp)) == -1)) {
+ ((c1 = char64(*pp))
+ == -1)) {
pp++;
}
if (pp < endofmime) {
pp++;
}
while ((pp < endofmime) &&
pp++;
}
if (pp < endofmime) {
pp++;
}
while ((pp < endofmime) &&
- ((c2 = char64(*pp)) == -1)) {
+ ((c2 = char64(*pp))
+ == -1)) {
pp++;
}
if (pp < endofmime && c1 != -1 && c2 != -1) {
pp++;
}
if (pp < endofmime && c1 != -1 && c2 != -1) {
@@
-262,7
+264,8
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
}
/* 4 + 4 bits */
while ((pp < endofmime) &&
}
/* 4 + 4 bits */
while ((pp < endofmime) &&
- ((c3 = char64(*pp)) == -1)) {
+ ((c3 = char64(*pp))
+ == -1)) {
pp++;
}
if (pp < endofmime && c2 != -1 && c3 != -1) {
pp++;
}
if (pp < endofmime && c2 != -1 && c3 != -1) {
@@
-271,7
+274,8
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
}
/* 2 + 6 bits */
while ((pp < endofmime) &&
}
/* 2 + 6 bits */
while ((pp < endofmime) &&
- ((c4 = char64(*pp)) == -1)) {
+ ((c4 = char64(*pp))
+ == -1)) {
pp++;
}
if (pp < endofmime && c3 != -1 && c4 != -1) {
pp++;
}
if (pp < endofmime && c3 != -1 && c4 != -1) {
@@
-314,8
+318,12
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
break;
/* skip to next input character */
if (fromutf8) {
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--;
inbytes--;
+ }
} else
start++, inbytes--;
if (start >= q)
} else
start++, inbytes--;
if (start >= q)
@@
-333,7
+341,7
@@
decode_rfc2047(char *str, char *dst, size_t dstlen)
if (!dstlen || !savedstlen)
goto buffull;
dstlen = savedstlen;
if (!dstlen || !savedstlen)
goto buffull;
dstlen = savedstlen;
- free(convbuf);
+ mh_free0(&convbuf);
}
#endif
}
#endif