Commit Graph

218 Commits

Author SHA1 Message Date
Jan Engelhardt
b06e9e6f86 Skip delimiter lines that are not exactly equal to the boundary
There is crap software out there that generates mails violating the
prefix ban clause from RFC 2046 §5.1 ¶2.

Switch vmime from a prefix match to an equality match, similar to
what Alpine and Thunderbird do too.
2019-10-05 11:37:09 +02:00
Jan Engelhardt
df32418df5 Disregard whitespace between leading boundary hyphens and marker
The way I read the RFC is that whitespace is not allowed before the
boundary marker, only afterwards, so the checks for leading WS are
removed, and the missing check for trailing WS is added.

See RFC 2046 §5.1.1: """The boundary delimiter line is then defined
as a line consisting entirely of two hyphen characters ("-", decimal
value 45) followed by the boundary parameter value from the
Content-Type header field, optional linear whitespace, and a
terminating CRLF."""
2019-10-05 11:31:51 +02:00
Vincent Richard
e2fc1911f1 Merge branch 'master' of https://github.com/kisli/vmime 2019-04-18 11:29:28 +02:00
Vincent Richard
b59e97d0a7 #213 Add support for invalid empty () in FETCH body structure (non-strict) 2019-04-18 11:28:48 +02:00
Jan Engelhardt
d1190b496f Improve address parser for malformed mailbox specifications
Spammers use "Name <addr> <addr>" to trick some parsers.
My expectations as to what the outcome should be is presented
in the updated mailboxTest.cpp.

The DFA in mailbox::parseImpl is hereby redone so as to pick the
rightmost address-looking portion as the address, rather than
something in between. While doing so, it will also no longer mangle
the name part anymore (it does this by keeping a "as_if_name"
variable around until the end).
2019-01-25 08:11:07 +01:00
Jan Engelhardt
cc18aa39c1 tests: add more malformation tests to mailboxTest 2019-01-24 13:17:52 +01:00
Vincent Richard
df135b5a8b Removed 'stringProxy' since COW std::string is no longer valid in C++11. 2018-09-15 07:41:26 +02:00
Vincent Richard
cfd4492915 More tests. 2018-09-06 00:22:34 +02:00
Vincent Richard
7e29cf01fa Fixed bug in implementation of isStringEqualNoCase(). 2018-09-06 00:16:48 +02:00
Vincent Richard
b55bdc9c0b Code style and clarity. 2018-09-05 23:54:48 +02:00
Vincent Richard
f173b0a535 Avoid copy by passing shared_ptr<> with const reference. 2018-08-18 16:08:25 +02:00
Vincent Richard
abba40e97d Added unit test related to PR #192. 2018-03-12 20:33:27 +01:00
Vincent Richard
d7a1b5817e Issue #186: SMTPUTF8 is not an argument to RCPT + UTF8 in recipient address must switch the whole message to SMTPUTF8. 2017-12-14 22:11:58 +01:00
Vincent Richard
1592cccb61 Fixed #186: use SMTPUTF8 only when needed. 2017-12-14 21:39:29 +01:00
Vincent Richard
604b713562 Issue #168: multiple sequences of 'LF..' not replaced correctly. 2017-03-28 22:31:04 +02:00
Vincent Richard
9a3d6880e8 Fixed issue #160: invalid characters in hostname. 2017-02-10 21:20:22 +01:00
Vincent Richard
e973619d7e Issue #163: default encoder (fallback). 2017-02-08 21:27:10 +01:00
Vincent Richard
ec5f4370b6 Fixed #159: parsing error on invalid FETCH BODYSTRUCTURE response. 2017-01-18 21:10:10 +01:00
Vincent Richard
c53e914ea5 Always ignore newlines between words. 2017-01-02 21:40:38 +01:00
Vincent Richard
5424aa2381 Fixed #149: don't loose charset when fixing invalid broken words. 2016-11-05 13:31:54 +01:00
Vincent Richard
b1c2d4b61e Clarified object construction where 'enabled_shared_from_this' is used. Use it only where it is needed. 2016-04-05 22:11:47 +02:00
Vincent Richard
12781598bd Fixed special value 'last' in message sets. 2016-03-24 20:34:27 +01:00
Vincent Richard
b03c398b47 Fixed types. 2016-03-23 20:32:13 +01:00
Vincent Richard
4b62ae4174 Issue #126: fixed warnings about sign mismatch. 2016-03-23 20:05:59 +01:00
Vincent Richard
4fd8976515 Issue #126: more warnings fixed. 2016-03-13 20:15:22 +01:00
Vincent Richard
3dd5975422 Fixed possible endless loop with some buffer sizes (thanks to John van der Kamp). 2015-06-11 20:03:38 +02:00
Vincent Richard
c446afddd4 Estimate generated size of parameterized field. 2015-06-07 21:32:44 +02:00
Vincent Richard
e88b8eeac2 Fixed parsing of UTF8 email addresses (RFC-2047 local part + IDNA domain name). 2015-05-03 19:17:00 +02:00
Vincent Richard
19321f9026 Fixed unit test so that is does not depend on the current locale charset. 2015-02-19 21:24:41 +01:00
Vincent Richard
c5c66f9fdc Issue #103: fix badly encoded words. 2015-02-16 18:43:03 +01:00
Vincent Richard
e7739c0efe Fixed issue #98: support for wrongly padded B64 words. 2015-01-14 19:35:28 +01:00
Vincent Richard
a32bb6c954 Fixed 'body_fld_lang' optional in IMAP response. 2014-09-19 18:31:43 +02:00
Vincent Richard
03a0e36e91 Added support for language specification in RFC-2047 encoded words and RFC-2231 parameter values. 2014-06-30 22:48:42 +02:00
Vincent Richard
0863f50c26 Allow choosing between encoding modes for parameter values. 2014-06-17 21:08:22 +02:00
Vincent Richard
a46e520902 Fixed issue #86: workaround for invalid response from Exchange server. 2014-06-08 18:34:01 +02:00
Vincent Richard
4aefcca374 Removed useless 'virtual' inheritance (fixed issue #84). 2014-06-06 19:26:01 +02:00
Vincent Richard
30ea54f269 Fixed parsing of empty lines in header field value. 2014-06-01 20:46:17 +02:00
Vincent Richard
17d764d65c Fixed segfault in POP3 test. 2014-06-01 19:57:43 +02:00
Vincent Richard
99d919c6d7 Fixed unit test. 2014-04-21 20:13:17 +02:00
Vincent Richard
bbfdcc36a0 Trace socket/connection events. 2014-03-25 23:34:03 +01:00
Vincent Richard
9b3f8124f1 Unit tests for IMAP utils. 2014-03-17 23:51:54 +01:00
Vincent Richard
84e570bbbb Connection trace facility. 2014-03-16 22:52:40 +01:00
Vincent Richard
cfe9c6b1e7 Modified IMAP parser constructor to make testing easier. 2014-03-16 09:57:36 +01:00
Vincent Richard
9d73fc5382 IMAP commands. 2014-03-15 23:33:20 +01:00
Vincent Richard
c860c273d3 Added support for initial response in SASL authentication. 2014-02-13 22:23:59 +01:00
Vincent Richard
0d20ee083b Better polling. Fixed possible connection issues on POSIX with slow network. Better error handling in POSIX sockets. 2014-02-05 20:18:20 +01:00
Vincent Richard
58bad6e488 Path to/from string conversion. 2014-01-19 17:25:25 +01:00
Vincent Richard
2afe340b7b In SSL socket, use timeout handler of underlying socket. Throw exception when reading from/writing to disconnected SSL socket. 2014-01-19 16:36:45 +01:00
Vincent Richard
24eff0069b Added test for "+" not followed by space in continue_req. 2014-01-16 22:51:33 +01:00
Vincent Richard
ef892af655 Do not make calls to setlocale() in a library. Use default user locale in tests and examples. 2014-01-16 00:27:51 +01:00