2020-07-29 11:29:12 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (502c39af9)

    Released v2.3.11.3


M	configure.ac

2020-07-29 11:28:50 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (be398a73f)

    NEWS: Add NEWS for 2.3.11.3


M	NEWS

2020-07-29 10:40:17 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (63395d545)

    pop3: Fix assert-crash when using pop3_deleted_flag

    Broken by 6d18044e1408ce98aa8ef145a9f85895829a7bc7

    Fixes: Panic: file seq-range-array.c: line 472 (seq_range_array_invert):
    assertion failed: (range[count-1].seq2 <= max_seq)

M	src/pop3/pop3-commands.c

2020-07-15 12:42:59 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (2c42881c0)

    pop3-login: Fix handling commands that are sent in multiple IP packets

    This happened especially if the commands were long, like XCLIENT.

    This got broken by recent pop3-login changes.

M	src/pop3-login/client-authenticate.c
M	src/pop3-login/client-authenticate.h
M	src/pop3-login/client.c
M	src/pop3-login/client.h

2020-07-28 13:25:44 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2c8a4e90f)

    Released v2.3.11.2


M	configure.ac

2020-07-28 11:02:06 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (7067e5d66)

    NEWS: Add NEWS for 2.3.11.2


M	NEWS

2020-07-10 11:00:14 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (b3a4eb5b3)

    lib-test: Rename s1, s2 to _temp_s1, _temp_s2 in test_assert_strcmp_idx

    Some test code uses s1 and s2 as variable names.

    Broken in 449539dc52070bebde3ae7babe96e6e272dd7101

M	src/lib-test/test-common.h

2020-07-09 09:38:37 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (624c0394f)

    pop3-login: Use struct client authenticating member

    This is what should be used instead of introducing our own.

    Broken in 6c55437036b3de11804eb68f66d84cb164c33d63

M	src/pop3-login/client-authenticate.c
M	src/pop3-login/client.c
M	src/pop3-login/client.h

2020-07-09 09:39:48 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3c8f9d898)

    pop3-login: Consume line after mech probe

    Otherwise we read next line empty and that causes -ERR.

    Broken in 6c55437036b3de11804eb68f66d84cb164c33d63

M	src/pop3-login/client-authenticate.c

2020-07-08 10:59:48 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (0da6a6995)

    lib: istream - Do not attempt read past end in i_stream_next_line_finish


M	src/lib/istream.c
M	src/lib/test-istream.c

2020-07-08 12:58:56 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9524ebad3)

    lib-test: test_assert_strcmp_idx - Avoid double evaluation


M	src/lib-test/test-common.h

2020-07-08 08:55:31 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (98e3565e9)

    pop3-login: Read command more carefully

    Ensure we don't consume '\n' or '\0' when reading command, but that we
    consume '\r' otherwise i_stream_read_next_line won't work properly.

M	src/pop3-login/client.c

2020-06-30 14:02:34 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (d8c3cfca7)

    pop3-login: Read SASL-IR properly

    This fixes issue where login would fail if SASL-IR message would be too
    long.

M	src/pop3-login/client-authenticate.c
M	src/pop3-login/client-authenticate.h
M	src/pop3-login/client.c
M	src/pop3-login/client.h

2020-06-30 14:01:12 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (ba9482dae)

    pop3-login: Read command separately

    Simplifies next commit

M	src/pop3-login/client.c

2020-07-01 14:49:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (b5afdfe1b)

    auth: db-lua - Fix user iteration

    The old code did not leave the stack empty after finishing up, that would
    lead into stack being left dirty and accumulating per each call.

M	src/auth/db-lua.c

2020-07-01 13:18:03 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (c2b339a19)

    auth: db-lua - Always set callback when iterating


M	src/auth/db-lua.c

2020-06-26 18:31:11 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (4c1b1766f)

    lib-lua: Register panic handler


M	src/lib-lua/dlua-script.c

2020-06-26 18:27:18 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (8cf21fa2b)

    auth: db-lua - Ensure stack is empty at end


M	src/auth/db-lua.c

2020-06-26 18:29:46 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (97ccdbd86)

    auth: db-lua - Pop dovecot after registering


M	src/auth/db-lua.c

2020-06-26 12:21:40 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (b22e5b0b2)

    auth: db-lua - Pop result after lookup

    When doing lookups, the lookup result was not popped.

M	src/auth/db-lua.c

2020-06-26 12:16:31 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (5bf39d841)

    lib-lua: Add dlua_dump_stack

    Useful for debugging why stack leaks

M	src/lib-lua/dlua-script.c
M	src/lib-lua/dlua-script.h

2020-06-30 11:50:26 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (62b31b94a)

    NEWS: Add news for 2.3.11


M	NEWS

2020-07-02 17:31:19 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6001e4b48)

    lib-mail: Fix handling trailing "--" in MIME boundaries

    Broken by 5b8ec27fae941d06516c30476dcf4820c6d200ab

M	src/lib-mail/message-parser.c
M	src/lib-mail/test-message-parser.c

2020-06-30 11:23:53 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (76369c5f2)

    configure: Update version


M	configure.ac

2020-06-11 12:59:14 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (c64bcd4bf)

    imap: Fix assert-crash in COPY/MOVE when storage doesn't return UIDs

    For example copying mails into virtual storage crashed.

    Broken by 09413e35f764a2898cbc26cea94218eed6df5cbf

    Fixes: Panic: file cmd-copy.c: line 152 (fetch_and_copy): assertion failed:
    (copy_ctx->copy_count == seq_range_count(&copy_ctx->saved_uids))

M	src/imap/cmd-copy.c

2020-06-09 11:40:53 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (7be62107e)

    lib-compression: istream-zstd - Fix infinite loop when istream is
    nonblocking


M	src/lib-compression/istream-zstd.c

2020-06-04 13:15:11 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (275605ade)

    lib-oauth2: oauth-jwt - Ensure / and . are escaped in kid


M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2020-06-04 10:41:32 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2a74d2537)

    dovecot-oauth2.conf.ext: Update to match code


M	doc/example-config/dovecot-oauth2.conf.ext

2020-06-04 10:23:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (01008de74)

    auth: db-oauth2 - Add more performant defaults for lib-http


M	src/auth/db-oauth2.c

2020-06-03 15:40:40 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e31ba043e)

    lib-oauth2: Use azp to find token

    This validates that the token is actually for us and also allows having
    multiple tokens with same ID but different issuer.

M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2020-06-03 15:40:04 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (af387d690)

    lib-oauth2: Validate signature in jwt body process

    This way we can utilize fields from body with validation.

M	src/lib-oauth2/oauth2-jwt.c

2020-06-03 15:35:48 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (66cfb35ba)

    lib-oauth2: Rename algo to alg

    It's the field name.

M	src/lib-oauth2/oauth2-jwt.c

2020-06-02 15:59:37 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e3d591f32)

    lib-oauth2: Add iss validation support


M	src/auth/db-oauth2.c
M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/oauth2.h
M	src/lib-oauth2/test-oauth2-jwt.c

2020-06-02 15:52:34 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3aa2365c5)

    lib-oauth2: Ensure token algorithm matches with key

    Otherwise we might mistakenly use key that is not intended for the token.

M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2020-06-02 16:07:48 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (10288b7a3)

    lib-oauth2: oauth2-jwt - Always uppercase algorithm


M	src/lib-oauth2/oauth2-jwt.c

2020-05-28 12:49:33 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (b38875a48)

    lib-mail: message-parser - Fix assert-crash if parsing is stopped early

    Some callers don't want to parse the full message.

    Fixes: Panic: file message-parser.c: line 793
    (message_parser_deinit_from_parts): assertion failed:
    (ctx->nested_parts_count == 0)

M	src/lib-mail/message-parser.c
M	src/lib-mail/test-message-parser.c

2020-05-27 11:35:55 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6b987907d)

    lib-mail: Fix parse_too_many_nested_mime_parts()

    This was originally correct, until it was "optimized" wrong and got merged.

M	src/lib-mail/message-parser.c

2020-05-27 09:09:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (1c944d4a7)

    auth: db-oauth2 - Remove extra oauth2 prefix from log messages


M	src/auth/db-oauth2.c

2020-05-26 12:46:29 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (3051a5efa)

    auth, lib-oauth2: Add local introspection mode

    Local introspection attempts to decode token always. This will also happen
    with password grant, saving an extra roundtrip to oauth2 server.

M	src/auth/db-oauth2.c
M	src/lib-oauth2/oauth2.h

2020-05-26 09:53:26 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (48df491c4)

    auth: db-oauth2 - Use common code for lookup and password grant


M	src/auth/db-oauth2.c

2020-05-26 13:38:09 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (997b4a657)

    auth: db-oauth2 - Clarify how introspect gets called

    This should make it more obvious when introspection actually gets called
    after lookup.

    Introspection failure is now also moved earlier, before the request would
    fail later because not all fields are available.

M	src/auth/db-oauth2.c

2020-05-26 12:12:32 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (5176cf1af)

    auth: db-oauth2 - Add token parameter to db_oauth2_local_validation


M	src/auth/db-oauth2.c

2020-05-25 21:42:08 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (573f5d7a4)

    auth: db-oauth2 - Move db_oauth2_local_validation

    Simplifies next change

M	src/auth/db-oauth2.c

2020-05-25 21:47:35 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (edd92a83c)

    auth: db-oauth2 - Move db_oauth2_lookup_continue

    Simplifies next change

M	src/auth/db-oauth2.c

2020-05-26 21:24:02 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (05e641572)

    auth: db-oauth2 - Do not fallback into remote validation anymore

    It makes no sense anymore with introspection_mode=local. One should make
    another passdb.

M	src/auth/db-oauth2.c

2020-05-25 21:18:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (ff3beafab)

    auth: db-oauth2 - Fix whitespace issue


M	src/auth/db-oauth2.c

2020-05-26 21:22:51 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (e3c088c25)

    lib-oauth2: Use hash instead of hash2

    Hash2 doesn't work as we want. Fixes key caching to actually work.

M	src/lib-oauth2/oauth2-key-cache.c

2020-05-25 16:19:14 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (225f7978b)

    lib-oauth2: Allow nbf and iat to be 0

    Some implementations set these intentionally to 0.

M	src/lib-oauth2/oauth2-jwt.c
M	src/lib-oauth2/test-oauth2-jwt.c

2020-04-23 17:09:33 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (b0041cda0)

    lib-mail: message-parser - Support limiting max number of MIME parts

    The default is to allow 10000 MIME parts. When it's reached, no more MIME
    boundary lines will be recognized, so the rest of the mail belongs to the
    last added MIME part.

M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c
M	src/lib-mail/message-parser.h
M	src/lib-mail/test-message-parser.c

2020-04-23 16:59:40 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (e2eb98d00)

    lib-mail: message-parser - Support limiting max number of nested MIME parts

    The default is to allow 100 nested MIME parts. When the limit is reached, 
    the innermost MIME part's body contains all the rest of the inner bodies 
    until a parent MIME part is reached.

M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c
M	src/lib-mail/message-parser.h
M	src/lib-mail/test-message-parser.c

2020-04-23 16:50:56 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (21dcfccce)

    lib-mail, global: message_parser_init*() - Convert flags to settings
    structure


M	src/doveadm/doveadm-mail-fetch.c
M	src/lib-imap/test-imap-bodystructure.c
M	src/lib-imap/test-imap-envelope.c
M	src/lib-mail/istream-attachment-extractor.c
M	src/lib-mail/istream-binary-converter.c
M	src/lib-mail/message-parser-from-parts.c
M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c
M	src/lib-mail/message-parser.h
M	src/lib-mail/message-search.c
M	src/lib-mail/message-snippet.c
M	src/lib-mail/test-message-decoder.c
M	src/lib-mail/test-message-parser.c
M	src/lib-mail/test-message-part.c
M	src/lib-storage/index/index-mail-headers.c
M	src/plugins/fts/fts-build-mail.c

2020-04-23 15:00:57 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (b87a98705)

    lib-mail: message-parser - Don't use memory pool for parser

    This reduces memory usage when parsing many MIME parts where boundaries are 
    being added and removed constantly.

M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c

2020-04-23 14:53:27 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (bfba2a503)

    lib-mail: message-parser - Add boundary_remove_until() helper function


M	src/lib-mail/message-parser.c

2020-04-23 13:06:02 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (5b8ec27fa)

    lib-mail: message-parser - Optimize boundary lookups when exact boundary is
    found

    When an exact boundary is found, there's no need to continue looking for 
    more boundaries.

M	src/lib-mail/message-parser.c

2020-04-23 12:53:12 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (2e60deb68)

    lib-mail: message-parser - Truncate excessively long MIME boundaries

    RFC 2046 requires that the boundaries are a maximum of 70 characters
    (excluding the "--" prefix and suffix). We allow 80 characters for a bit of 
    extra safety. Anything longer than that is truncated and treated the same as
    if it was just 80 characters.

M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c
M	src/lib-mail/test-message-parser.c

2020-04-23 12:10:07 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (14633032c)

    lib-mail: message-parser - Minor code cleanup to finding the end of boundary
    line


M	src/lib-mail/message-parser.c

2020-04-23 12:00:38 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (211345b4a)

    lib-mail: message-parser - Optimize appending new part to linked list


M	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c

2020-04-23 11:36:48 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (238c80121)

    lib-mail: message-parser - Optimize updating children_count


M	src/lib-mail/message-parser.c

2020-04-23 11:34:22 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (41de7289f)

    lib-mail: message-parser - Change message_part_append() to do all work
    internally


M	src/lib-mail/message-parser.c

2020-04-23 11:33:31 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (13f93dbe5)

    lib-mail: message-parser - Add a message_part_finish() helper function


M	src/lib-mail/message-parser.c

2020-04-23 11:47:18 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (06beaf303)

    lib-mail: Move message_parser_init_from_parts() handling to its own file

    This helps to see what code they have in common.

M	src/lib-mail/Makefile.am
A	src/lib-mail/message-parser-from-parts.c
A	src/lib-mail/message-parser-private.h
M	src/lib-mail/message-parser.c

2020-04-23 11:27:14 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (084e788bc)

    lib-mail: test-message-parser - Test that children_count is correct


M	src/lib-mail/test-message-parser.c

2020-04-23 11:14:04 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (c86612dd8)

    lib-mail: test-message-parser - Add another test for boundary matching


M	src/lib-mail/test-message-parser.c

2020-05-19 19:11:34 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (df41bcfc5)

    lib-storage: mail_search_args_init() - Expand "*" in SEARCH_SEQSET

    This is now required by the IMAP MOVE code to correctly handle
    "MOVE * folder".

M	src/lib-storage/mail-search.c
M	src/lib-storage/mail-search.h

2020-05-19 18:31:31 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (1c06386a9)

    imap: imap_search_seqset_iter_next() - Assert-crash if iteration doesn't
    progress

    This can be done easily with seq_range_array_remove_seq_range(). This is 
    cleaner to use than invert+intersect. I originally didn't notice that this
    function existed.

M	src/imap/imap-search-args.c

2020-05-19 19:10:59 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (8069b7cc8)

    lib: Add unit test for seq_range_array_remove_range()


M	src/lib/test-seq-range-array.c

2020-05-18 12:01:44 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (8f5de1339)

    lib-storage: mail_search_args_init() - Fix converting UIDSET * to SEQSET on
    empty mailbox

    The "*" caused seq=0 to be added to the seqset. This could have caused 
    unexpected issues.

    Fixes at least UID MOVE on empty mailbox: Panic: file seq-range-array.c:
    line 471 (seq_range_array_invert): assertion failed: (range[0].seq1 >=
    min_seq)

    Before 1a5d89d2bfa031903e88af9aff7eafc1b373d521 this assert-crash didn't 
    happen, but it went to infinite loop.

M	src/lib-storage/mail-search.c

2020-05-18 13:08:45 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (98c39fd63)

    auth: test-mech - Add tests for RPA and NTLM bug


M	src/auth/test-mech.c

2020-05-18 12:33:39 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (1c6405d30)

    lib-ntlm: Check buffer length on responses

    Add missing check for buffer length.

    If this is not checked, it is possible to send message which causes read
    past buffer bug.

    Broken in c7480644202e5451fbed448508ea29a25cffc99c

M	src/lib-ntlm/ntlm-message.c

2020-05-06 13:40:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (bd9d2fe7d)

    auth: mech-rpa - Fail on zero len buffer


M	src/auth/mech-rpa.c

2020-05-11 19:00:25 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (dc542c1e4)

    pop3: Use separate search queries for expunging and setting \Seen flags

    Using a single shared search query causes mail prefetching to behave 
    inefficiently. Especially lazy_expunge plugin could have done refcount 
    prefetch for non-deleted mails as well.

M	src/pop3/pop3-commands.c

2020-05-11 19:00:04 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (5daa181d6)

    pop3: Split off pop3_search_build_seqset()


M	src/pop3/pop3-commands.c

2020-05-11 18:50:18 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6aae508da)

    pop3: Minor optimization to unexpected client disconnections

    There's no need to build deleted messages seqset if it's not used.

M	src/pop3/pop3-commands.c

2020-05-14 22:55:05 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (10cc3dec9)

    dict: When client is disconnected, make sure its input IO is removed

    Just in case it takes a while to fully unreference the client, make sure its 
    input callback won't be called rapidly.

M	src/dict/dict-connection.c

2020-05-14 22:52:34 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (a7061d8f8)

    dict: Fix deinitializing dict iteration if client disconnects

    If the client's ostream was full at the disconnection time, the iteration 
    wasn't aborted. Instead, the connection was kept forever and its input 
    callback was kept being called rapidly, causing 100% CPU usage.

M	src/dict/dict-commands.c

2020-05-14 22:52:08 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (d262de1c6)

    dict: Split off cmd_iterate_flush_finish()


M	src/dict/dict-commands.c

2020-03-20 13:38:41 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (f0ea88118)

    lmtp: lmtp-commands - Explicity prohibit empty RCPT path.

    The empty path <""> will yield an empty username.

M	src/lmtp/lmtp-commands.c

2020-03-20 13:37:04 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (0b4a304dd)

    lib-smtp: smtp-address - Only produce a <> address in smtp_address_clone()
    when that is the input.

    It also produced an effective null address when the localpart was empty.

M	src/lib-smtp/smtp-address.c

2020-03-20 13:35:19 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (6791403a2)

    lib-smtp: smtp-address - Don't recognize an address with empty localpart as
    <>.

    Depending on context, the addresses <""@domain.tld> and <""> are potentially 
    valid non-null addresses.

M	src/lib-smtp/smtp-address.h

2020-03-22 18:14:44 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (13fb37ca6)

    lib-smtp: smtp-address - Don't return NULL from smtp_address_clone*() unless
    the input is NULL.


M	src/lib-smtp/smtp-address.c

2020-03-24 12:59:15 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (228481324)

    lib-smtp: test-smtp-server-errors - Add tests for large series of empty and
    bad commands.


M	src/lib-smtp/test-smtp-server-errors.c

2020-03-24 12:25:03 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (f05400263)

    lib-smtp: smtp-server-connection - Hold a command reference while executing
    a command.

    This fixes a use-after-free problem at the end of 
    smtp_server_connection_handle_command().

M	src/lib-smtp/smtp-server-connection.c

2020-03-24 12:23:32 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (8ab81b2db)

    lib-smtp: smtp-server-command - Perform initial command execution in
    separate function.


M	src/lib-smtp/smtp-server-command.c
M	src/lib-smtp/smtp-server-connection.c
M	src/lib-smtp/smtp-server-private.h

2020-03-24 12:13:43 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (bc9681ee5)

    lib-smtp: smtp-server-command - Guarantee that non-destroy hooks aren't
    called for an ended command.


M	src/lib-smtp/smtp-server-command.c

2020-03-24 22:33:45 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (326b63bb9)

    lib-smtp: test-smtp-server-errors - Add tests for VRFY and NOOP commands
    with invalid parameters.


M	src/lib-smtp/test-smtp-server-errors.c

2020-03-24 22:24:20 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (066ba19c3)

    lib-smtp: Add tests for smtp_string_parse() and smtp_string_write().


M	src/lib-smtp/Makefile.am
A	src/lib-smtp/test-smtp-syntax.c

2020-03-24 22:42:15 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (c4e4b47a9)

    lib-smtp: smtp-syntax - Return 0 for smtp_string_parse() with empty input.

    This is what the current users of this function actually expect.

M	src/lib-smtp/smtp-syntax.c

2020-03-24 21:14:34 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (96ad23439)

    lib-smtp: smtp-syntax - Do not allow NULL return parameters for
    smtp_ehlo_line_parse().


M	src/lib-smtp/smtp-syntax.c

2020-03-24 21:11:01 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (544060fb5)

    lib-smtp: smtp-syntax - Do not allow NULL return parameters for
    smtp_xtext_parse().


M	src/lib-smtp/smtp-syntax.c

2020-03-24 20:57:03 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (865441236)

    lib-smtp: smtp-syntax - Do not allow NULL return parameters for
    smtp_string_parse().


M	src/lib-smtp/smtp-server-cmd-noop.c
M	src/lib-smtp/smtp-syntax.c

2020-03-24 21:05:17 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (1e410cc4d)

    lib-smtp: smtp-server-cmd-vrfy - Restructure parameter parsing.


M	src/lib-smtp/smtp-server-cmd-vrfy.c

2020-03-24 21:00:19 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (905334bb2)

    lib-smtp: Reformat smtp-server-cmd-vrfy.c.


M	src/lib-smtp/smtp-server-cmd-vrfy.c

2020-03-24 21:08:37 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (6807314a3)

    lib-smtp: Reformat smtp-server-cmd-noop.c.


M	src/lib-smtp/smtp-server-cmd-noop.c

2020-03-24 20:51:24 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (17fb6ecaf)

    lib-smtp: Reformat smtp-syntax.c.


M	src/lib-smtp/smtp-syntax.c

2020-03-24 20:45:21 +0100 Stephan Bosch <stephan.bosch@open-xchange.com> (5f620d6f3)

    lib-smtp: Reformat smtp-syntax.h.


M	src/lib-smtp/smtp-syntax.h

2020-05-13 10:52:50 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2faf3f4e0)

    auth: test-mech - Remove auth-token-secret.dat after test suite


M	src/auth/test-mech.c

2020-05-12 09:48:06 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (a6f12894b)

    auth: mech-digest-md5 - Do not read past buffer on right trim

    If the string does not have comma at the end, do not progress the pointer
    past buffer end.

M	src/auth/mech-digest-md5.c

2020-05-12 09:22:20 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (2da8b458a)

    auth: test-mech - Fix memory leaks

    Forgotten in f6bb82a222e7973e9f9b7056dfe015fe3d8632f7

M	src/auth/test-mech.c

2020-05-11 17:25:41 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (e23d3b907)

    lib-index: Index rebuilding lost fields in cache

    Regression caused by 5f6d2134690e4b84d38d556e3086668e32f30b50

M	src/lib-index/mail-cache-purge.c

2020-05-11 17:23:19 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (6a728e6d8)

    lib-index: Fix setting initial last_used for fields in
    mail_[always_]cache_fields

    These fields had last_used=0 until the field was accessed. If cache was 
    purged before this access, the field was dropped. Fixed by assuming
    (last_used=0, decision!=NO) is still the first time the field is being used.
    This also causes it to trigger mail_cache_decision_changed event.

M	src/lib-index/mail-cache-decisions.c
M	src/lib-index/test-mail-cache.c

2020-05-12 11:23:23 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (d65235321)

    lib-index: mail_cache_decision_add() - Add priv helper variable


M	src/lib-index/mail-cache-decisions.c

2020-05-12 11:20:57 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (cfaf3e406)

    lib-index: Make mail_cache_decision_to_string() public


M	src/lib-index/mail-cache-decisions.c
M	src/lib-index/mail-cache-private.h
M	src/lib-index/mail-cache-purge.c

2020-04-24 17:17:46 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (545ba9664)

    auth: auth_request_finished event - policy_result=delayed didn't work

    It was returned as "ok" instead of "delayed".

M	src/auth/auth-request.c

2020-05-08 16:18:29 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (f6ef63aa9)

    lib-http: test-http-client-errors: "reply payload" test - Make server
    announce that connection is closed.

    This prevents race condition between connection closure and client trying to
    reuse the connection.

M	src/lib-http/test-http-client-errors.c

2020-05-08 16:22:48 +0200 Stephan Bosch <stephan.bosch@open-xchange.com> (c38fbb262)

    lib-http: test-http-client-errors: "reply payload" test - Fix name of server
    context struct.


M	src/lib-http/test-http-client-errors.c

2020-05-07 13:57:14 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f6bb82a22)

    auth: test-mech - Rewrote test


M	src/auth/test-mech.c

2020-05-08 13:12:39 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (5190cd740)

    auth: test-mock - Add credentials lookup support


M	src/auth/test-mock.c

2020-05-08 13:08:19 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (469540431)

    auth: test - Export passdb mock settings


M	src/auth/test-auth.h
M	src/auth/test-db-dict.c
M	src/auth/test-main.c
M	src/auth/test-mock.c
M	src/auth/test-username-filter.c

2020-05-07 14:15:14 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (16abfc0f3)

    auth: Move auth_request_fail_on_nuls to auth-request.c

    Where is belongs to

M	src/auth/auth-request.c
M	src/auth/mech.c
M	src/auth/mech.h

2020-05-06 13:47:36 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (eaa62bfa5)

    lib-sasl: dsasl-client - Check for NULs in server response

    If server response unexpectedly contains embedded NULs, fail authentication.

M	src/lib-sasl/dsasl-client-private.h
M	src/lib-sasl/dsasl-client.c

2020-05-06 13:12:33 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (8f6bf02c2)

    auth: mech - Remove redundant NUL checks

    Partially reverts ce7a61301cb233647c447dd917d5df1184d02317

    The check is moved to higher up in call chain.

M	src/auth/mech-external.c
M	src/auth/mech-login.c
M	src/auth/mech-otp.c
M	src/auth/mech-scram.c
M	src/auth/mech-skey.c

2020-05-06 13:07:01 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (d196f4c83)

    auth: mech - Add MECH_SEC_ALLOW_NULS flag

    Prevent embedded NULs for any mechs that do not have this flag

M	src/auth/auth-request.c
M	src/auth/mech-anonymous.c
M	src/auth/mech-apop.c
M	src/auth/mech-dovecot-token.c
M	src/auth/mech-gssapi.c
M	src/auth/mech-ntlm.c
