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);