From 36f2290a0c108a9308d56badcf6e2fd971c3fb28 Mon Sep 17 00:00:00 2001 From: Chotiwat Chawannakul Date: Mon, 10 Nov 2014 14:34:50 +0700 Subject: [PATCH] Parser: ignore invalid first line that starts with a whitespace --- lib/Parser.js | 2 ++ test/test-parse-header.js | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/Parser.js b/lib/Parser.js index 1580b48..d6d673e 100644 --- a/lib/Parser.js +++ b/lib/Parser.js @@ -978,6 +978,8 @@ function parseHeader(str, noDecode) { if (lines[i].length === 0) break; // empty line separates message's header and body if (lines[i][0] === '\t' || lines[i][0] === ' ') { + if (!Array.isArray(header[h])) + continue; // ignore invalid first line // folded header content val = lines[i]; if (!noDecode) { diff --git a/test/test-parse-header.js b/test/test-parse-header.js index d86c137..43e787f 100644 --- a/test/test-parse-header.js +++ b/test/test-parse-header.js @@ -70,6 +70,11 @@ var CRLF = '\r\n'; expected: { subject: [ 'รูปภาพที่ embed ในเนื้อเมลล์ไม่แสดง' ] }, what: 'Folded header value (consecutive partial base64-encoded words)' }, + { source: [' ', CRLF, + 'To: Foo', CRLF], + expected: { to: [ 'Foo' ] }, + what: 'Invalid first line' + }, // header with body { source: ['Subject: test subject', CRLF, 'X-Another-Header: test', CRLF,