From 38799b94a663e7b20851923a98e199c6e31fbb87 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Thu, 16 Jun 2016 07:46:11 -0400 Subject: [PATCH] Fixed MimeParser.ParseHeaders() for MessageSeliveryStatus.StatusGroups Fixes bug #253 --- MimeKit/MimeParser.cs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/MimeKit/MimeParser.cs b/MimeKit/MimeParser.cs index f8383d5fe0..6bc6f38be1 100644 --- a/MimeKit/MimeParser.cs +++ b/MimeKit/MimeParser.cs @@ -1358,10 +1358,8 @@ unsafe HeaderList ParseHeaders (byte* inbuf) try { headersOnly = true; state = MimeParserState.Headers; - while (state < MimeParserState.Content) { - if (Step (inbuf) == MimeParserState.Error) - throw new FormatException ("Failed to parse headers."); - } + if (Step (inbuf) == MimeParserState.Error) + throw new FormatException ("Failed to parse headers."); } finally { headersOnly = false; } @@ -1412,10 +1410,8 @@ unsafe MimeEntity ParseEntity (byte* inbuf) stream.Seek (offset, SeekOrigin.Begin); state = MimeParserState.Headers; - while (state < MimeParserState.Content) { - if (Step (inbuf) == MimeParserState.Error) - throw new FormatException ("Failed to parse entity headers."); - } + if (Step (inbuf) == MimeParserState.Error) + throw new FormatException ("Failed to parse entity headers."); var type = GetContentType (null); BoundaryType found; @@ -1487,10 +1483,8 @@ unsafe MimeMessage ParseMessage (byte* inbuf) } // parse the headers - while (state < MimeParserState.Content) { - if (Step (inbuf) == MimeParserState.Error) - throw new FormatException ("Failed to parse message headers."); - } + if (state < MimeParserState.Content && Step (inbuf) == MimeParserState.Error) + throw new FormatException ("Failed to parse message headers."); var message = new MimeMessage (options, headers);