Issue: #339
Reported by: @patrakov
end = p + len;
c = p;
- while (p < end) {
+ while (p <= end) {
/* FSM for processing headers */
switch (state) {
case 0:
next_state = 3;
err_state = 4;
}
- else if (*(p + 1) == '\0') {
+ else if (p + 1 == end) {
state = 4;
}
else {
if (*(tp - 1) == ' ') {
tp--;
}
+
*tp = '\0';
new->value = tmp;
new->decoded = g_mime_utils_header_decode_text (new->value);
break;
case 99:
/* Folding state */
- if (*(p + 1) == '\0') {
+ if (p + 1 == end) {
state = err_state;
}
else {
p++;
state = next_state;
}
- else if (*(p + 1) == '\0') {
+ else if (p + 1 == end) {
state = next_state;
p++;
}