[evolution-data-server] Bug 791475 - Incorrectly parses headers in certain case ][
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 791475 - Incorrectly parses headers in certain case ][
- Date: Wed, 28 Feb 2018 11:25:26 +0000 (UTC)
commit ed25ae562adae128e132203b45a1450d879777fc
Author: Milan Crha <mcrha redhat com>
Date: Wed Feb 28 12:26:36 2018 +0100
Bug 791475 - Incorrectly parses headers in certain case ][
src/camel/camel-mime-parser.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/src/camel/camel-mime-parser.c b/src/camel/camel-mime-parser.c
index 09811c8..c8869f1 100644
--- a/src/camel/camel-mime-parser.c
+++ b/src/camel/camel-mime-parser.c
@@ -1314,10 +1314,10 @@ folder_scan_header (struct _header_scan_state *s,
s->outptr[0] = 0;
/* The outbuf can contain an extra \r\n, thus remove it */
- if (s->outptr > s->outbuf && s->outptr[-1] == '\n')
+ if (s->outptr > s->outbuf && (s->outptr[-1] == '\r' ||
s->outptr[-1] == '\n'))
s->outptr[-1] = 0;
- if (s->outptr - 1 > s->outbuf && s->outptr[-2] == '\r')
+ if (s->outptr - 1 > s->outbuf && (s->outptr[-2] == '\r' ||
s->outptr[-2] == '\n'))
s->outptr[-2] = 0;
h (printf ("header not folded '%s' at %d\n", s->outbuf,
(gint) s->header_start));
@@ -1408,6 +1408,16 @@ header_truncated:
header_append (s, start, inptr);
s->outptr[0] = 0;
+
+ if (s->check_header_folded && s->midline) {
+ /* The outbuf can contain an extra \r\n, thus remove it */
+ if (s->outptr > s->outbuf && (s->outptr[-1] == '\r' || s->outptr[-1] == '\n'))
+ s->outptr[-1] = 0;
+
+ if (s->outptr - 1 > s->outbuf && (s->outptr[-2] == '\r' || s->outptr[-2] == '\n'))
+ s->outptr[-2] = 0;
+ }
+
if (s->outbuf == s->outptr)
goto header_done;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]