pop3-migration-plugin.c (dovecot-2.3.16) | : | pop3-migration-plugin.c (dovecot-2.3.17) | ||
---|---|---|---|---|
skipping to change at line 184 | skipping to change at line 184 | |||
struct message_header_line *hdr, | struct message_header_line *hdr, | |||
bool *matched, struct pop3_hdr_context *ctx) | bool *matched, struct pop3_hdr_context *ctx) | |||
{ | { | |||
if (hdr == NULL) | if (hdr == NULL) | |||
return; | return; | |||
if (hdr->eoh) { | if (hdr->eoh) { | |||
ctx->have_eoh = TRUE; | ctx->have_eoh = TRUE; | |||
if (ctx->stop) | if (ctx->stop) | |||
*matched = TRUE; | *matched = TRUE; | |||
} else { | } else { | |||
if (strspn(hdr->name, "\r") == hdr->name_len) { | if (hdr->value_len > 0 && hdr->middle_len == 0 && hdr->name_len = | |||
= 0 && | ||||
i_memspn(hdr->value, hdr->value_len, "\r", 1U) == hdr->value_ | ||||
len) { | ||||
/* CR+CR+LF - some servers stop the header processing | /* CR+CR+LF - some servers stop the header processing | |||
here while others don't. To make sure they can be | here while others don't. To make sure they can be | |||
matched correctly we want to stop here entirely. */ | matched correctly we want to stop here entirely. */ | |||
ctx->stop = TRUE; | ctx->stop = TRUE; | |||
} else if (!hdr->continued && hdr->middle_len == 0) { | } else if (!hdr->continued && hdr->middle_len == 0) { | |||
/* not a valid "key: value" header - | /* not a valid "key: value" header - | |||
Zimbra's BODY[HEADER] strips this line away. */ | Zimbra's BODY[HEADER] strips this line away. */ | |||
*matched = TRUE; | *matched = TRUE; | |||
} else if (hdr->continued && header_value_want_skip(hdr)) { | } else if (hdr->continued && header_value_want_skip(hdr)) { | |||
*matched = TRUE; | *matched = TRUE; | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 4 lines changed or added |