diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vmime/net/imap/IMAPParser.hpp | 15 |
1 files changed, 14 insertions, 1 deletions
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 <nstring> 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() << ">"); |