From ec5f4370b69de4ca4b8c5e3b3d2bc43e8fb4da7f Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Wed, 18 Jan 2017 21:10:10 +0100 Subject: Fixed #159: parsing error on invalid FETCH BODYSTRUCTURE response. --- src/vmime/net/imap/IMAPParser.hpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/vmime/net/imap/IMAPParser.hpp b/src/vmime/net/imap/IMAPParser.hpp index 448d6d6a..8b24c9ca 100644 --- a/src/vmime/net/imap/IMAPParser.hpp +++ b/src/vmime/net/imap/IMAPParser.hpp @@ -3324,7 +3324,20 @@ public: } VIMAP_PARSER_CHECK(SPACE); - VIMAP_PARSER_GET(xstring, m_string2); + + if (!parser.isStrict()) + { + // In non-strict mode, allow NIL in value + shared_ptr nstr; + VIMAP_PARSER_GET_PTR(nstring, nstr); + + m_string2 = new xstring(); + m_string2->setValue(nstr->value()); + } + else + { + VIMAP_PARSER_GET(xstring, m_string2); + } DEBUG_FOUND("body_fld_param_item", "<" << m_string1->value() << ", " << m_string2->value() << ">"); -- cgit v1.2.3