d54067d8e67de5aa2bcfc35619514541342d0690 |
|
02-Oct-2015 |
Timo Sirainen <tss@iki.fi> |
pop3: Fixed buffer overflow with handling pop3_deleted_flag setting.
This has been broken since v2.2.10, although the setting wasn't working
completely correctly before that version either. Afterwards it should have
become obvious quickly enough that the setting is broken, because it started
crashing POP3 sessions in normal use quite soon. So I doubt there are any
installations that are accidentally exploitable. |
3a63761473624fa4c126f6928b27195134a32b1d |
|
11-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
pop3: Added pop3_delete_type setting with values "default", "expunge" or "flag".
This is related to pop3_deleted_flag setting. The main behefit here is that
you can now hide messages from POP3 by setting pop3_deleted_flag, but
without changing the actual deletion behavior by setting
pop3_delete_type=expunge. |
a9d6c2ebcd88ea8ede8df8d8c0bc10e7780499b3 |
|
15-Aug-2014 |
Phil Carmody <phil@dovecot.fi> |
pop3: satisfy some strict parsing rules in RFC 1939
"Commands in the POP3 consist of a case-insensitive keyword, possibly
followed by one or more arguments. All commands are terminated by a
CRLF pair. Keywords and arguments consist of printable ASCII
characters. Keywords and arguments are each separated by a single
SPACE character."
"A server MUST respond to an unrecognized, unimplemented, or
syntactically invalid command by responding with a negative status
indicator."
Therefore the following commands must be rejected:
LIST 2600Hz
LIST 99 red balloons
TOP 1 2 buckle-my-shoe
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
797dc456af3059777ed48319cfaec56f9ca4909d |
|
15-Aug-2014 |
Phil Carmody <phil@dovecot.fi> |
pop3: fix msgnum/size parsers
The outer if()s are completely unnecessary, and permit `num'
to remain uninitialised. Spotted by clang's static analysis.
Bug introduced in changeset: 17563:2ed2ab04b63d
Note that the lack of a parameter from a broken client is no longer
treated as "0". Before the bug was introduced:
DELE
-ERR There's no message 0.
After this patch:
DELE
-ERR Invalid message number:
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
8ce201908dbfde2ab49df10c946df3d1d9ffa4d1 |
|
02-Jul-2014 |
Phil Carmody <phil@dovecot.fi> |
pop3: pop3-commands - harden integer parsers against integer overflow
In get_msgnum(), the invalid input "4772185884" (2^32*10/9) would be
parsed as being valid.
In get_size(), the invalid input "204963823041217240178" (2^64*10/9)
would be parsed as being valid.
We have helpers now, so use them.
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
698545b00566380790ee7a4ea63e32954767a79d |
|
14-Apr-2010 |
Timo Sirainen <tss@iki.fi> |
pop3: Added %u=old/new UIDL hash to pop3_logout_format.
It expands to "<old msg count>/<old hash> -> <new msg count>/<new hash>" or
if they're the same, simply "<msg count>/<hash>".
The idea is that if previous session's <new hash> doesn't match next one's
<old hash> and prev.new_msg_count = next.old_msg_count, it could indicate
that the UIDLs changed for some reason. But if they do match and client
still redownloaded messages, it's most likely a client side problem.
--HG--
branch : HEAD |