[dovecot/core] 2e1f46: imap: Fix assert-crash when client is disconnected...

GitHub noreply at github.com
Fri Sep 21 16:49:41 EEST 2018


  Branch: refs/heads/release-2.3.3
  Home:   https://github.com/dovecot/core
  Commit: 2e1f461513151d73e5b8787c126997b079951e10
      https://github.com/dovecot/core/commit/2e1f461513151d73e5b8787c126997b079951e10
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-14 (Tue, 14 Aug 2018)

  Changed paths:
    M src/imap/cmd-copy.c

  Log Message:
  -----------
  imap: Fix assert-crash when client is disconnected during a long COPY/MOVE

Similar fix than 481992bfe2740bdec70fcd7366dea50ed9128966

Fixes:
Panic: file cmd-copy.c: line 50 (fetch_and_copy): assertion failed: (o_stream_is_corked(client->output))


  Commit: 6a4d482e5369d8dec5734814503fb074ffc8b0c1
      https://github.com/dovecot/core/commit/6a4d482e5369d8dec5734814503fb074ffc8b0c1
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M doc/man/doveconf.1.in

  Log Message:
  -----------
  man: doveconf - Document -P flag


  Commit: df48e6a8d0b3648034bb7d7e157a22cb62f7b132
      https://github.com/dovecot/core/commit/df48e6a8d0b3648034bb7d7e157a22cb62f7b132
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/lib/strfuncs.c
    M src/lib/strfuncs.h

  Log Message:
  -----------
  lib: Add i_strstr_arr for searching string for multiple needles


  Commit: b27489cd8014342e5f3c47af12dbebacd966d60e
      https://github.com/dovecot/core/commit/b27489cd8014342e5f3c47af12dbebacd966d60e
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/lib/strescape.c
    M src/lib/strescape.h
    M src/lib/test-strescape.c

  Log Message:
  -----------
  lib: Add str_nescape

For partial escaping


  Commit: 0225967c06e5c1bb21bad74199fe3787f20d66b6
      https://github.com/dovecot/core/commit/0225967c06e5c1bb21bad74199fe3787f20d66b6
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  config: Move sensitive value hiding to own function

Simplifies next change


  Commit: 18b3f83be63ae14c49c35942805e1e51ff4669c1
      https://github.com/dovecot/core/commit/18b3f83be63ae14c49c35942805e1e51ff4669c1
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  config: Hide more sensitive information

Hide parts of values where we can see a key that has word
key, secret or pass as prefix and is a key-value pair
separated by =.


  Commit: 9ea342b7bd19a755a20c223ed290ae7c888da7d1
      https://github.com/dovecot/core/commit/9ea342b7bd19a755a20c223ed290ae7c888da7d1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Fix infinite loop when hiding sensitive information

For example with "nopassword=y". Broken in
fc02343fd81a6fab272ac0366b15fc60ec44a8b6


  Commit: 4a45ccea71969b6561bc4cf5f43acff048a42b21
      https://github.com/dovecot/core/commit/4a45ccea71969b6561bc4cf5f43acff048a42b21
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/lib/strescape.c
    M src/lib/strescape.h

  Log Message:
  -----------
  lib: Add str_append_escaped and use it with str_escape


  Commit: 86294b107bd9279f250f85683f46774406f1db26
      https://github.com/dovecot/core/commit/86294b107bd9279f250f85683f46774406f1db26
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  config: Fix crash in doveconf -n when hiding sensitive information

Broken by fc02343f


  Commit: 20f3be300fecd5372934c6916c3ab17c58952165
      https://github.com/dovecot/core/commit/20f3be300fecd5372934c6916c3ab17c58952165
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Add find_next_secret

Find start of possible next secret, and return
what the found secret was. Makes next commit easier.


  Commit: 57d83da4f51913b19a37e9f42f4e24bf0829f8f4
      https://github.com/dovecot/core/commit/57d83da4f51913b19a37e9f42f4e24bf0829f8f4
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Hide URL userpart


  Commit: 5bd69c6e22fec02c753044ce4263252f5db09792
      https://github.com/dovecot/core/commit/5bd69c6e22fec02c753044ce4263252f5db09792
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Do not skip over secrets when hiding them

All candidates for hiding need to be considered, otherwise
it might skip over some of them and leave them unhidden.


  Commit: bf11f4dc3ca8af5434775b54a5b145947969dd81
      https://github.com/dovecot/core/commit/bf11f4dc3ca8af5434775b54a5b145947969dd81
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Use key_ends_with to compare suffixes

Fixes key hiding.

Broken in 1518e085


  Commit: d79f6b110b16218ea648fb2dc99bc5e67ce05f68
      https://github.com/dovecot/core/commit/d79f6b110b16218ea648fb2dc99bc5e67ce05f68
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Improve secret hiding

Hide with more wide filtering.


  Commit: 9fde31dee6e6cc4fd4a1e1acb45e58e4b5707f56
      https://github.com/dovecot/core/commit/9fde31dee6e6cc4fd4a1e1acb45e58e4b5707f56
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/config/doveconf.c

  Log Message:
  -----------
  doveconf: Fix compiler nit

Ensure secret_r cannot be NULL unless none was found.


  Commit: efdd30284cb41751eb651b0be1f06c8350dd4ca8
      https://github.com/dovecot/core/commit/efdd30284cb41751eb651b0be1f06c8350dd4ca8
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-08-21 (Tue, 21 Aug 2018)

  Changed paths:
    M src/lib/test-strfuncs.c

  Log Message:
  -----------
  lib: test-strfuncs - Rename test i_strbegins to str_begins

Matches the real name


  Commit: 413dfa5b4b88fb11c04e4ff642c4b4cf13c3b452
      https://github.com/dovecot/core/commit/413dfa5b4b88fb11c04e4ff642c4b4cf13c3b452
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-storage/index/imapc/imapc-list.c
    M src/lib-storage/index/imapc/imapc-storage.c
    M src/lib-storage/index/imapc/imapc-storage.h
    M src/plugins/quota/quota-imapc.c

  Log Message:
  -----------
  imapc: Fix leaking memory when sending imapc commands after authentication failure


  Commit: bb813051dbef91e6532a88326e188378799eca6a
      https://github.com/dovecot/core/commit/bb813051dbef91e6532a88326e188378799eca6a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-smtp/smtp-command-parser.c

  Log Message:
  -----------
  lib-smtp: server: Fix memory leak when handling BDAT command


  Commit: d5dccffc20081b5324e8c82105967d33054947b8
      https://github.com/dovecot/core/commit/d5dccffc20081b5324e8c82105967d33054947b8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/plugins/mail-crypt/doveadm-mail-crypt.c

  Log Message:
  -----------
  mail-crypt: Fix memory leak in "doveadm mailbox cryptokey generate"


  Commit: 8cbc2c1c17067062ac367f5d98488315409d766a
      https://github.com/dovecot/core/commit/8cbc2c1c17067062ac367f5d98488315409d766a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-dcrypt/istream-decrypt.c
    M src/lib-dcrypt/istream-decrypt.h
    M src/plugins/mail-crypt/fs-crypt-common.c
    M src/plugins/mail-crypt/mail-crypt-plugin.c

  Log Message:
  -----------
  lib-dcrypt, mail-crypt: Fix leaking memory when using non-global keys

The users' private keys had one reference too much. Because of key cache,
most likely the keys were leaked only once at deinit.

Changed the i_stream_create_decrypt_callback() API so that it allows the
callback to create the key itself without having to store it anywhere.

In this case the key was already added to cache, which increased its
refcount. So an alternative fix would have been to simply unreferenced the
key before returning it. It's a bit ugly though to rely on such caches,
since without the cache the code would be buggy.


  Commit: 035b9c3abddee052ee30f0e8d67ea735d379cc5e
      https://github.com/dovecot/core/commit/035b9c3abddee052ee30f0e8d67ea735d379cc5e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/plugins/mail-crypt/mail-crypt-acl-plugin.c

  Log Message:
  -----------
  mail-crypt-acl: Fix memory leak when updating ACLs


  Commit: 0449b581e3a906165e875df4261e3ed8b62a67fe
      https://github.com/dovecot/core/commit/0449b581e3a906165e875df4261e3ed8b62a67fe
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/plugins/virtual/virtual-config.c

  Log Message:
  -----------
  virtual: Fix memory leak when selecting mailboxes with '-' or /metadata


  Commit: e7dd8e44d45992b07ddf207c73deb6d252cce904
      https://github.com/dovecot/core/commit/e7dd8e44d45992b07ddf207c73deb6d252cce904
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib/lib-event.c

  Log Message:
  -----------
  lib: Free global_event_stack array at deinit


  Commit: af212405a4fb8355b719483c78711de7c07570e3
      https://github.com/dovecot/core/commit/af212405a4fb8355b719483c78711de7c07570e3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib/lib.c
    M src/lib/restrict-access.c
    M src/lib/restrict-access.h

  Log Message:
  -----------
  lib: restrict-access: Free chroot_dir at deinit


  Commit: 4f290b892de4c12d790f60428ae421e36ea3ea7e
      https://github.com/dovecot/core/commit/4f290b892de4c12d790f60428ae421e36ea3ea7e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-master/master-service-private.h
    M src/lib-master/master-service.c

  Log Message:
  -----------
  lib-master: Allow calling master_service_deinit() without _init_finish()


  Commit: 9705af1fa0a9314ed8b9e3c65398727c2923542d
      https://github.com/dovecot/core/commit/9705af1fa0a9314ed8b9e3c65398727c2923542d
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-dsync.c
    M src/doveadm/dsync/dsync-ibc-stream.c

  Log Message:
  -----------
  dsync: ibc - reference iostreams internally

This makes it clearer who needs to reference and unreference the streams.


  Commit: 6799c86775272d93831bfefb2924d7624d3de63e
      https://github.com/dovecot/core/commit/6799c86775272d93831bfefb2924d7624d3de63e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-dsync.c

  Log Message:
  -----------
  dsync: Fix memory leak - unreference iostreams at deinit

Only some of the code paths need unreferencing, so also add a reference to
the other code paths.


  Commit: d8bf63494df1dae82084551f2161b9d6d36536f8
      https://github.com/dovecot/core/commit/d8bf63494df1dae82084551f2161b9d6d36536f8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-auth.c

  Log Message:
  -----------
  doveadm user: Fix memory leak


  Commit: 818791b1d8d0f0e06b5724353613ac835b025bd7
      https://github.com/dovecot/core/commit/818791b1d8d0f0e06b5724353613ac835b025bd7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-log.c

  Log Message:
  -----------
  doveadm log find: Fix memory leak


  Commit: cb3e7b8ea7006cdc33ca54979111a920b85929dd
      https://github.com/dovecot/core/commit/cb3e7b8ea7006cdc33ca54979111a920b85929dd
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-dump-index.c

  Log Message:
  -----------
  doveadm dump: Fix dumping "vsize" header in dovecot.index

It was trying to print it as the "vsize" header in dovecot.list.index.
This caused confusing output, as well as potentially accessing memory
out of bounds.


  Commit: 087bcbb430f0582db59d6ce2fdc87e30cc8606c7
      https://github.com/dovecot/core/commit/087bcbb430f0582db59d6ce2fdc87e30cc8606c7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib/lib-event.c

  Log Message:
  -----------
  lib: Fix memory leak at deinit if log_core_filter is set


  Commit: 613c46b987783540d2535ba2a1c5896f60e30180
      https://github.com/dovecot/core/commit/613c46b987783540d2535ba2a1c5896f60e30180
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-storage/mail-storage.c

  Log Message:
  -----------
  lib-storage: Fix memory leak in mail_storage_set_internal_error()


  Commit: b26ecb24df2f6c3253c8a90527e02bbfe284b349
      https://github.com/dovecot/core/commit/b26ecb24df2f6c3253c8a90527e02bbfe284b349
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lda/main.c

  Log Message:
  -----------
  lda: Cleanup - reorder code

Makes the next commit cleaner.


  Commit: d628a0f9c8a33e0ae37c3bce21b48a608f21cff1
      https://github.com/dovecot/core/commit/d628a0f9c8a33e0ae37c3bce21b48a608f21cff1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lda/main.c

  Log Message:
  -----------
  lda: Cleanup - move code to lda_deliver() function

No functional changes.


  Commit: 5b4790122c67dc44d719c9c6ff7ac6ac98271e87
      https://github.com/dovecot/core/commit/5b4790122c67dc44d719c9c6ff7ac6ac98271e87
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lda/main.c

  Log Message:
  -----------
  lda: Deinitialize cleanly if mail delivery fails


  Commit: a5291c27658bd6cdcd80e9f650d70807e54a64bc
      https://github.com/dovecot/core/commit/a5291c27658bd6cdcd80e9f650d70807e54a64bc
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lda/main.c

  Log Message:
  -----------
  lda: Deinitialize cleanly if user doesn't exist in userdb


  Commit: b1e1da29a9aae5d8736c1bd42c3ae8f2a76d606c
      https://github.com/dovecot/core/commit/b1e1da29a9aae5d8736c1bd42c3ae8f2a76d606c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-dict/dict-file.c

  Log Message:
  -----------
  dict-file: Fix memory leak when file is recreated during lock wait


  Commit: 1022c021c2c268184a93872a6f3c9078b79001dc
      https://github.com/dovecot/core/commit/1022c021c2c268184a93872a6f3c9078b79001dc
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-22 (Wed, 22 Aug 2018)

  Changed paths:
    M src/lib-dict/dict-file.c

  Log Message:
  -----------
  dict-file: If write failed, file was left locked


  Commit: 6919d08d72334f3db5ea444e4f6ec20aeef7d2bd
      https://github.com/dovecot/core/commit/6919d08d72334f3db5ea444e4f6ec20aeef7d2bd
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-23 (Thu, 23 Aug 2018)

  Changed paths:
    M src/login-common/client-common.c

  Log Message:
  -----------
  *-login: Fix non-global ssl=no configuration

For example local 127.0.0.2 { ssl=no } wasn't working.


  Commit: 21c899aaf81532f3e4cbaf7cea29a0f527ba10e1
      https://github.com/dovecot/core/commit/21c899aaf81532f3e4cbaf7cea29a0f527ba10e1
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-08-23 (Thu, 23 Aug 2018)

  Changed paths:
    M src/master/service-monitor.c

  Log Message:
  -----------
  master: Wait 1 second for SIGQUITs to get handled

The delay (previously 100ms, now 1s) is intended to delay our exit enough so
that the child processes have a chance to receive & handle the SIGQUITs we
just sent.  If we don't wait long enough, it is possible that we'll get
restarted before our children had the chance to stop listening on their
sockets and we'll hit "address already in use" type errors.

Increasing the delay does not fix the issue, but it masks it better.


  Commit: 600d85e3533cdfe5861ac754a5c6abad7347f400
      https://github.com/dovecot/core/commit/600d85e3533cdfe5861ac754a5c6abad7347f400
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-28 (Tue, 28 Aug 2018)

  Changed paths:
    M src/lib/event-log.c

  Log Message:
  -----------
  lib: Fix filtering by event name in log_core_filter

event->sending_name was already cleared by the time it was checked, so any
event:* filters never matched.


  Commit: f39f0a198752126e01142f34ebaa47621fccb456
      https://github.com/dovecot/core/commit/f39f0a198752126e01142f34ebaa47621fccb456
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-storage/index/index-mail-headers.c

  Log Message:
  -----------
  lib-storage: Fix truncating header values at NUL when adding to cache

For example FETCH BODY.PEEK[HEADER.FIELDS (Subject)] could have returned
the NUL on the first fetch when the mail wasn't in dovecot.index.cache,
but the second FETCH would have returned it truncated at the NUL.


  Commit: 163d14ed038a9b946fb4b83c711fb0ed90fa2634
      https://github.com/dovecot/core/commit/163d14ed038a9b946fb4b83c711fb0ed90fa2634
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-snippet.c
    M src/lib-mail/test-message-snippet.c

  Log Message:
  -----------
  lib-mail: message_snippet_generate() - Ignore NULs without shrinking snippet size

Previously the NULs also weren't in the snippet content, but they were
included in the snippet size.


  Commit: 06475096673f611bd753fcea687ac49de0e782b9
      https://github.com/dovecot/core/commit/06475096673f611bd753fcea687ac49de0e782b9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c

  Log Message:
  -----------
  lib-mail: rfc822-parser: Don't truncate comment/quoted-string/domain-literal at NUL

The other tokens couldn't have contained NULs in the first place.


  Commit: f9775668e0c7760be0a53a8854a43d69c18bc068
      https://github.com/dovecot/core/commit/f9775668e0c7760be0a53a8854a43d69c18bc068
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-dump-index.c

  Log Message:
  -----------
  doveadm dump: Don't truncate dovecot.index.cache values at NULs


  Commit: 7f94502ced15c4daf1769f8c94e727c883fc01f1
      https://github.com/dovecot/core/commit/7f94502ced15c4daf1769f8c94e727c883fc01f1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-print-table.c

  Log Message:
  -----------
  doveadm: Fix table printer to not truncate output at NULs


  Commit: aa40bd11877385f4f802c22cb09b647ee05fb0bb
      https://github.com/dovecot/core/commit/aa40bd11877385f4f802c22cb09b647ee05fb0bb
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/auth/db-checkpassword.c

  Log Message:
  -----------
  auth: checkpassword - Fail if input from script contains NULs

Previously the input was just silently truncated at NULs.


  Commit: 92836cfe252e7e9320ef350b5f80fafd19ff61a0
      https://github.com/dovecot/core/commit/92836cfe252e7e9320ef350b5f80fafd19ff61a0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-dict-extra/dict-fs.c
    M src/lib-dict/dict-memcached-ascii.c
    M src/lib-dict/dict-redis.c

  Log Message:
  -----------
  dict-fs/memcached-ascii/redis: Consistently truncate value at NULs

The dict API currently doesn't support NULs in values, so they have to be
truncated. However, previously they were truncated at NULs, but more data
may have still been appended to the value. This could have produced
somewhat random results.


  Commit: 505a449db07d226430fa78414afda829993c32a8
      https://github.com/dovecot/core/commit/505a449db07d226430fa78414afda829993c32a8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/config/config-parser.c

  Log Message:
  -----------
  config: Consistently truncate value at the first NUL in value input file

When value contained "<file", the file was added as a value. The setting
values don't currently support NULs, so the value gets truncated at the
first NUL. However, the previous code could have appended more data to
the value. This could have produced somewhat confusing results.


  Commit: 217c2c091c80a6fb56ea464649f90ff725939a24
      https://github.com/dovecot/core/commit/217c2c091c80a6fb56ea464649f90ff725939a24
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-master/master-login.c
    M src/util/script-login.c

  Log Message:
  -----------
  lib-master, util: Consistently truncate tabescaped input at the first NUL

The NULs are supposed to come tab-escaped, so there's no need to support
actual NUL characters. The previous code truncated at NULs, but could
have kept appending more data to the value. This could have produced
somewhat random results.


  Commit: d1e71fadb4567d6e4840baa4e28025bc59fda349
      https://github.com/dovecot/core/commit/d1e71fadb4567d6e4840baa4e28025bc59fda349
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/login-common/client-common-auth.c

  Log Message:
  -----------
  login-common: Consistently truncate client SASL input at first NUL

The input is supposed to be base64-encoded, so there's no need to support
actual NUL characters. The previous code truncated at NULs, but could have
kept appending more data to the value. This could have produced somewhat
random results.


  Commit: 6285cce30b555955450fd66bb1538e5fa5fb10aa
      https://github.com/dovecot/core/commit/6285cce30b555955450fd66bb1538e5fa5fb10aa
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/plugins/fts-squat/fts-backend-squat.c

  Log Message:
  -----------
  fts-squat: Fix truncating headers at NULs while indexing


  Commit: 43d38f4232410aefb0868f4ad7f255cb2fef665c
      https://github.com/dovecot/core/commit/43d38f4232410aefb0868f4ad7f255cb2fef665c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc2231-parser.c
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/rfc822-parser.h
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: Change rfc822_parse_content_param() API to allow NULs in value

This was the only function in rfc822-parser.h that wasn't NUL-safe.
This won't fix anything, but it makes the rfc822-parser.h API fully
consistent with the NUL handling.

Normally rfc2231_parse() should be called instead of calling
rfc822_parse_content_param() directly, so this shouldn't break any plugins.


  Commit: bf9c2696a6be27462ac74dd5b77cc3899cd58a24
      https://github.com/dovecot/core/commit/bf9c2696a6be27462ac74dd5b77cc3899cd58a24
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: rfc822-parser: Don't allow preserving escaped [CR]LF

It's not valid to have "\<CR>" or "\<LF>", so the old behavior isn't really
wrong either. However, rfc822_parse_quoted_string() callers are more likely
to expect that the output won't contain any [CR]LF so this new behavior is
a bit better.


  Commit: 5991d3518d653e5c13e21ff53bb29f97bd6c8ab9
      https://github.com/dovecot/core/commit/5991d3518d653e5c13e21ff53bb29f97bd6c8ab9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: rfc822-parser: Improve domain-literal parsing

Strip away folding whitespace. Treat any extra '[' as an error.


  Commit: 83059eb6f37d43ccaccad7ef2c40ad3ddf77760c
      https://github.com/dovecot/core/commit/83059eb6f37d43ccaccad7ef2c40ad3ddf77760c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: rfc822-parser: Strip away folding whitespace from comments


  Commit: 4729a2765b82884f27f60857a292624427c346a1
      https://github.com/dovecot/core/commit/4729a2765b82884f27f60857a292624427c346a1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/rfc822-parser.h
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: rfc822-parser: Add nul_replacement_char


  Commit: f3139c4b0d746cbd6045dda3db2e61c33f446df3
      https://github.com/dovecot/core/commit/f3139c4b0d746cbd6045dda3db2e61c33f446df3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-address.c
    M src/lib-mail/test-message-address.c

  Log Message:
  -----------
  lib-mail: message_address_parse*() - Replace NULs with 0x80

Instead of truncating the strings at NULs.


  Commit: 4b6bf5290b58594e7360dfdc3f1ccaae6d3c8589
      https://github.com/dovecot/core/commit/4b6bf5290b58594e7360dfdc3f1ccaae6d3c8589
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc2231-parser.c
    M src/lib-mail/rfc2231-parser.h
    M src/lib-mail/test-rfc2231-parser.c

  Log Message:
  -----------
  lib-mail: rfc2231_parse() - Replace NULs with 0x80

Instead of truncating the strings at NULs.


  Commit: ee1a1f5440d919b01265dd500c5eb7dee4a14d90
      https://github.com/dovecot/core/commit/ee1a1f5440d919b01265dd500c5eb7dee4a14d90
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-header-parser.c
    M src/lib-mail/message-header-parser.h

  Log Message:
  -----------
  lib-mail: Add MESSAGE_HEADER_REPLACE_NULS_WITH_0x80 flag

The flag signals that input stream for message_parse_header() should replace
0x0 symbols with 0x80.


  Commit: dbd99e76aaa5b7d677d9b3039fd63b7a16d0a155
      https://github.com/dovecot/core/commit/dbd99e76aaa5b7d677d9b3039fd63b7a16d0a155
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib/str.h

  Log Message:
  -----------
  lib: Improve str_append_n() comment


  Commit: 90a8fad77e4f0d668028cab12bc20696a730640a
      https://github.com/dovecot/core/commit/90a8fad77e4f0d668028cab12bc20696a730640a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib/str.c
    M src/lib/str.h
    M src/lib/test-str.c

  Log Message:
  -----------
  lib: Add str_append_max()

It's otherwise the same as str_append_n(), except it takes const char* as
input instead of const void*. This, as well as its name, should make it
less likely to be used wrong when the input may legitimately have NULs.

The unit test is changed from str_append_n() to str_append_max(), because
str_append_n() will be deprecated.


  Commit: d396d01f8a6bcc32837a68312a4714217204e09e
      https://github.com/dovecot/core/commit/d396d01f8a6bcc32837a68312a4714217204e09e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/auth/auth-cache.c
    M src/auth/db-dict-cache-key.c
    M src/auth/db-ldap.c
    M src/auth/password-scheme-md5crypt.c
    M src/config/config-parser.c
    M src/config/doveconf.c
    M src/lib-dict-backend/dict-ldap.c
    M src/lib-dict/dict.c
    M src/lib-fs/fs-posix.c
    M src/lib-fs/fs-sis.c
    M src/lib-fts/fts-tokenizer-address.c
    M src/lib-http/http-auth.c
    M src/lib-http/http-header-parser.c
    M src/lib-http/http-parser.c
    M src/lib-http/http-url.c
    M src/lib-imap/imap-quote.c
    M src/lib-imap/imap-url.c
    M src/lib-imap/imap-utf7.c
    M src/lib-mail/message-header-parser.c
    M src/lib-mail/message-snippet.c
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-istream-dot.c
    M src/lib-mail/test-istream-header-filter.c
    M src/lib-mail/test-istream-qp-decoder.c
    M src/lib-mail/test-istream-qp-encoder.c
    M src/lib-mail/test-message-header-parser.c
    M src/lib-mail/test-message-parser.c
    M src/lib-settings/settings-parser.c
    M src/lib-settings/settings.c
    M src/lib-smtp/smtp-address.c
    M src/lib-smtp/smtp-parser.c
    M src/lib-smtp/smtp-reply-parser.c
    M src/lib-smtp/smtp-server-reply.c
    M src/lib-smtp/smtp-syntax.c
    M src/lib-storage/index/index-mail-headers.c
    M src/lib-storage/index/maildir/maildir-uidlist.c
    M src/lib-storage/index/mbox/mbox-save.c
    M src/lib-storage/index/mbox/mbox-sync-parse.c
    M src/lib-storage/mailbox-attribute.c
    M src/lib-storage/mailbox-list.c
    M src/lib-storage/mailbox-tree.c
    M src/lib/failures.c
    M src/lib/file-dotlock.c
    M src/lib/istream.c
    M src/lib/str-sanitize.c
    M src/lib/strescape.c
    M src/lib/test-path-util.c
    M src/lib/uri-util.c
    M src/plugins/fts-solr/fts-backend-solr-old.c
    M src/plugins/fts-solr/fts-backend-solr.c

  Log Message:
  -----------
  global: Replace str_append_n() with str_append_data() wherever possible

It shouldn't be possible for input to have NULs in any of these places.
This makes the extra NUL-check in str_append_n() unnecessary.


  Commit: f37afa6d8a2ab8785da934585d0b2099acc492f7
      https://github.com/dovecot/core/commit/f37afa6d8a2ab8785da934585d0b2099acc492f7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib/strescape.c

  Log Message:
  -----------
  lib: str_append_[tab]unescaped(): Don't truncate input at NULs

For str_append_tabunescaped() the input is supposed to have NULs already
escaped though, so it was truncating only with invalid input.


  Commit: 6689030b00a3e43939bd2027e75de5f5bacbfa29
      https://github.com/dovecot/core/commit/6689030b00a3e43939bd2027e75de5f5bacbfa29
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-fts/fts-tokenizer-address.c

  Log Message:
  -----------
  lib-fts: fts-tokenizer-address - Cleanup NUL handling in parent_data

The end result is anyway that the token will be truncated at the first NUL.
This change just makes the code a bit more understandable on where the
truncation will happen.


  Commit: d6afcb8e92158d868ca3395e1889a4db013135e5
      https://github.com/dovecot/core/commit/d6afcb8e92158d868ca3395e1889a4db013135e5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/config/doveconf.c
    M src/doveadm/dsync/dsync-mailbox-tree-sync.c
    M src/lib/failures.c
    M src/lib/var-expand.c

  Log Message:
  -----------
  global: Replace str_append_n() with str_append_max()


  Commit: 847a4fe9c7de237258a9cb1809639901b30f06a5
      https://github.com/dovecot/core/commit/847a4fe9c7de237258a9cb1809639901b30f06a5
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib/compat.h
    M src/lib/macros.h

  Log Message:
  -----------
  lib: Add ATTR_DEPRECATED macro


  Commit: 0663cd573da162ab6520df8f36c5995151cf446b
      https://github.com/dovecot/core/commit/0663cd573da162ab6520df8f36c5995151cf446b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib/str.h

  Log Message:
  -----------
  lib: Mark str_append_n() deprecated

It was almost always used wrongly. Most of the time str_append_data()
should have been used instead. str_append_max() has the old functionality.


  Commit: 6b3d0a3c8daf719891bdef05c6158609bc0c9555
      https://github.com/dovecot/core/commit/6b3d0a3c8daf719891bdef05c6158609bc0c9555
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-part-data.c

  Log Message:
  -----------
  lib-mail: message_part_*_parse_from_header() - Replace NULs with 0x80

This avoids truncation of Content-*, Subject, Message-ID, In-Reply-To and
Date headers in IMAP ENVELOPE, BODY and BODYSTRUCTURE replies. Of course,
NULs in headers are violating RFCs already, so the previous behavior wasn't
really wrong either.


  Commit: 2ed851d654adcaf0233cd6ad974f6f9ad60b86dd
      https://github.com/dovecot/core/commit/2ed851d654adcaf0233cd6ad974f6f9ad60b86dd
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-address.c
    M src/lib-mail/rfc2231-parser.c
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/rfc822-parser.h
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: Change rfc822_parser_context.nul_replacement_char to string


  Commit: cb716afd3377dc18e0cafd149fa28a0669b2732e
      https://github.com/dovecot/core/commit/cb716afd3377dc18e0cafd149fa28a0669b2732e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-part-data.c
    M src/lib-mail/rfc2231-parser.h
    M src/lib-mail/rfc822-parser.h
    M src/lib-mail/test-message-address.c
    M src/lib-mail/test-rfc2231-parser.c

  Log Message:
  -----------
  lib-mail: Change NUL -> 0x80 replacement to use unicode replacement char instead

Using 0x80 produces invalid UTF-8 output, which we should avoid. Some places
in Dovecot code already requires that input is valid UTF-8, so it's also
safer and easier to use the unicode replacement character.

Fixes: Panic: file fts-tokenizer-generic.c: line 210 (fts_tokenizer_generic_simple_next): assertion failed: (char_size > 0)


  Commit: 56a43b7ce49174370a4ba7d964fa4f87e701d3db
      https://github.com/dovecot/core/commit/56a43b7ce49174370a4ba7d964fa4f87e701d3db
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-header-parser.c
    M src/lib-mail/message-header-parser.h

  Log Message:
  -----------
  lib-mail: Remove MESSAGE_HEADER_REPLACE_NULS_WITH_0x80 flag

As mentioned in previous commit, 0x80 isn't valid UTF-8 and we shouldn't
encourage using it. This implementation also can't be easily changed to
use unicode replacement character without larger changes to istream-nonuls.

Reverts 95fba2c295bb84639dc64ca5c9f2ccb9edc00ba7.


  Commit: b835b4d09f7e309389cc57d9b8c0c697be15ea76
      https://github.com/dovecot/core/commit/b835b4d09f7e309389cc57d9b8c0c697be15ea76
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-rfc822-parser.c

  Log Message:
  -----------
  lib-mail: Fix rfc822_parse_dot_atom() to reject if dot isn't followed by atom


  Commit: d4aa3ee9b9e04c6feded5a8732f9166aacdb6c25
      https://github.com/dovecot/core/commit/d4aa3ee9b9e04c6feded5a8732f9166aacdb6c25
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/doveadm/doveadm-mail-fetch.c
    M src/lib-lda/mail-deliver.c
    M src/lib-mail/message-address.c
    M src/lib-mail/message-address.h
    M src/lib-mail/message-part-data.c
    M src/lib-mail/test-message-address.c
    M src/lib-smtp/smtp-params.c
    M src/lib-storage/index/index-search.c
    M src/lib-storage/index/index-sort.c
    M src/lib-storage/mail-storage-settings.c
    M src/plugins/fts/fts-build-mail.c

  Log Message:
  -----------
  lib-mail: message_address_parse() - Change fill_missing parameter to flags

This change allows adding more flags. The API is also backwards compatible
in a way that the old FALSE/TRUE values still map to compatible 0/1 flags.


  Commit: d103d4f89860921a2a1132022312ff2ddcf433ad
      https://github.com/dovecot/core/commit/d103d4f89860921a2a1132022312ff2ddcf433ad
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-address.c
    M src/lib-mail/message-address.h
    M src/lib-mail/test-message-address.c

  Log Message:
  -----------
  lib-mail: Add MESSAGE_ADDRESS_PARSE_FLAG_NON_STRICT_DOTS

This code is somewhat copy&pasted from parse_local_part() in Pigeonhole.


  Commit: c95e5cbdb428ab2c5920296fe2293c32eed60f9b
      https://github.com/dovecot/core/commit/c95e5cbdb428ab2c5920296fe2293c32eed60f9b
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-address.c
    M src/lib-mail/message-address.h
    M src/lib-mail/test-message-address.c

  Log Message:
  -----------
  lib-mail: Change MESSAGE_ADDRESS_PARSE_FLAG_NON_STRICT_DOTS to _FLAG_STRICT_DOTS

Generally we want it to be enabled everywhere, so it's easier to just enable
it by default.

(This is kept as a separate commit from the previous one so it'll be easy to
revert this in case we actually don't want this to be the default.)


  Commit: db9b51176ddb467c23681cfacf78866beeaf449a
      https://github.com/dovecot/core/commit/db9b51176ddb467c23681cfacf78866beeaf449a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/test-message-address.c

  Log Message:
  -----------
  lib-mail: test-message-address - Test NULs in display-name


  Commit: 5f65ff7bff943ba8dfeb7c52c50fb8f50881feec
      https://github.com/dovecot/core/commit/5f65ff7bff943ba8dfeb7c52c50fb8f50881feec
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/rfc822-parser.c
    M src/lib-mail/test-message-address.c

  Log Message:
  -----------
  lib-mail: rfc822-parser - Handle \<NUL> in quoted-string and domain-literal

It was already handled in comments. Previously this caused the strings and
domain-literals to be truncated at that position.


  Commit: 9f222e06c6f7cfd7c565821de6c7931a86bd38f6
      https://github.com/dovecot/core/commit/9f222e06c6f7cfd7c565821de6c7931a86bd38f6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-part-data.c

  Log Message:
  -----------
  lib-mail: Cleanup - Rename internal hdr_strdup() to message_header_strdup()


  Commit: d309654ac3dc9196eeebb4dedb9c5fc5b8335649
      https://github.com/dovecot/core/commit/d309654ac3dc9196eeebb4dedb9c5fc5b8335649
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-mail/message-header-parser.c
    M src/lib-mail/message-header-parser.h
    M src/lib-mail/message-part-data.c

  Log Message:
  -----------
  lib-mail: Make message_header_strdup() public

Also move it to a better file.


  Commit: 34d826b4ca13757b83f47aa59a16412c347c10e3
      https://github.com/dovecot/core/commit/34d826b4ca13757b83f47aa59a16412c347c10e3
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-storage/index/index-mail-headers.c

  Log Message:
  -----------
  lib-storage: Fix NUL handling in mail_get_first_header*(), mail_get_headers*()

These functions return NUL-terminated values, so they got truncated whenever
a header value contained a NUL. Fix this by converting NULs to unicode
replacement characters in the output.


  Commit: 17f8c0b8caf85872391e51b4770cb1b497586b94
      https://github.com/dovecot/core/commit/17f8c0b8caf85872391e51b4770cb1b497586b94
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/lib-index/mail-cache-lookup.c

  Log Message:
  -----------
  lib-index: mail_cache_lookup_headers() - Allow using datastack pool

This fixes assert caused by 53712af0e7f357e7279d9ff03831428aae85aa45:
Panic: pool_data_stack_realloc(): stack frame changed


  Commit: 4afa42b8e9523faeeb364f848e0836bb31e9b203
      https://github.com/dovecot/core/commit/4afa42b8e9523faeeb364f848e0836bb31e9b203
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/plugins/fts/fts-build-mail.c

  Log Message:
  -----------
  fts: Fix indexing mails with NULs in headers

After the first NUL all the rest of the string was converted to spaces.
This was broken already in the initial commit that attempted to fix this:
4d27f95c76bd008bb38f9c442567046da2b6ce14


  Commit: 5bf2f17a15a2d3b531ad10c6b0528fdc9bf7f931
      https://github.com/dovecot/core/commit/5bf2f17a15a2d3b531ad10c6b0528fdc9bf7f931
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-08-30 (Thu, 30 Aug 2018)

  Changed paths:
    M src/plugins/fts/fts-build-mail.c

  Log Message:
  -----------
  fts: Optimize replacing NULs in header


  Commit: 3eb689841f013e9c940bbacebfbf257863950b52
      https://github.com/dovecot/core/commit/3eb689841f013e9c940bbacebfbf257863950b52
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M src/plugins/quota/quota.c

  Log Message:
  -----------
  quota: Cleanup - Move enforce checking out of quota_root_visible()

Non-enforcing quota roots need to be visible even when enforcing quotas,
otherwise we cannot update them.


  Commit: 6c7a7b286aef6be79b38346442bb4eaebe7499f1
      https://github.com/dovecot/core/commit/6c7a7b286aef6be79b38346442bb4eaebe7499f1
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-09-04 (Tue, 04 Sep 2018)

  Changed paths:
    M src/plugins/quota/quota.c

  Log Message:
  -----------
  quota: Mark noenforcing quotas with unlimited quota

This allows quota to be properly updated for unenforced quotas
so they can be used for tracking only.

This fixes issue where using noenforcing would not update quota
during mail save, but requires a manual quota update.


  Commit: 0a63978337eebe3f1717a80de355a11c0433c8ef
      https://github.com/dovecot/core/commit/0a63978337eebe3f1717a80de355a11c0433c8ef
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Notify definitive connection failure only within a peer pool.

Other peer pools have different configuration, which may actually succeed and
will arrive at this point when their own connections fail anyway.


  Commit: e8f137bb37faaa8989e3dec468b275bfc5b6726b
      https://github.com/dovecot/core/commit/e8f137bb37faaa8989e3dec468b275bfc5b6726b
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Determine number of pending peers in http_client_peer_shared_connection_failure() itself.

Before, the number of pending peers was a parameter, but that was only for a
single peer pool. This is wrong, since the one peer can have many different
pools (depending on how many clients with incompatible configs share this
peer).


  Commit: 4675367e9ac669daa79d4316c1122adf12988694
      https://github.com/dovecot/core/commit/4675367e9ac669daa79d4316c1122adf12988694
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-queue.c

  Log Message:
  -----------
  lib-http: client: queue: Fix the number of pending requests listed in http_client_queue_connection_failure() debug message.


  Commit: a8f17f33f981e97d83ecc7c474fc92179361a783
      https://github.com/dovecot/core/commit/a8f17f33f981e97d83ecc7c474fc92179361a783
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-queue.c

  Log Message:
  -----------
  lib-http: client: queue: Do not fail claimed requests unless the queue is being destroyed.

Before, connection failure would also abort requests already being sent on
another connection, which is premature at best.


  Commit: 57f8094d65f1be68a548a97f42b61508c7e5baf0
      https://github.com/dovecot/core/commit/57f8094d65f1be68a548a97f42b61508c7e5baf0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Move http_client_peer_connection_failure().


  Commit: 985cd1ebff926885698119d56c54d5eadc850a8c
      https://github.com/dovecot/core/commit/985cd1ebff926885698119d56c54d5eadc850a8c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Always run http_client_queue_connection_failure() upon definitive connection failure.

The recorded peer->connecting flag was highly unreliable in a scenario involving
starting parallel connections. This way, the linked queues can update their
state accordingly. Also, this will not cause empty queues to initiate new
connection, because empty queues will do nothing after updating the connection
state.

This problem caused a client ioloop hang in high-load conditions.


  Commit: 6ce5436ad92c501f344c13432dd83adfd6b3a261
      https://github.com/dovecot/core/commit/6ce5436ad92c501f344c13432dd83adfd6b3a261
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Rename http_client_peer_connection_failed_any() to http_client_peer_connection_failed_pool().


  Commit: ab2c55469c60cf51430ef71e5413b1ad337d0126
      https://github.com/dovecot/core/commit/ab2c55469c60cf51430ef71e5413b1ad337d0126
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Log debug message before calling peer pool in http_client_peer_connection_success().


  Commit: 715338bccb46cf3e1ea780a33655aac66917add0
      https://github.com/dovecot/core/commit/715338bccb46cf3e1ea780a33655aac66917add0
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Clarify debug message in http_client_peer_connection_failed_pool().


  Commit: e73699af4d1976a420d6b496e5e6a1dd09ba95a3
      https://github.com/dovecot/core/commit/e73699af4d1976a420d6b496e5e6a1dd09ba95a3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Add debug message for http_client_peer_connection_failure().


  Commit: 4031ea3f49ac60f6563350f6a5197f0ba986dfa6
      https://github.com/dovecot/core/commit/4031ea3f49ac60f6563350f6a5197f0ba986dfa6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Notify all peers in a peer pool about a successful connection.

This allows peers for which the last connection attempt failed (which was not
the last pending attempt in the pool) to try again. This solves a problem that
could potentially cause a hang with multiple parallel clients creating serveral
new connections at once.


  Commit: 71120b6645d3ec5cc89509c618227f4194de93c4
      https://github.com/dovecot/core/commit/71120b6645d3ec5cc89509c618227f4194de93c4
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c

  Log Message:
  -----------
  lib-http: client: connection: Remove the connection from the peer pool pending list in a separate function.


  Commit: a5d4658dc97fc6e4dbffed82d8d98623845c989c
      https://github.com/dovecot/core/commit/a5d4658dc97fc6e4dbffed82d8d98623845c989c
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: connection: Unlist the connection as pending immediately in http_client_connection_failure().


  Commit: 652724a2af139d0153575111e704558607f28c82
      https://github.com/dovecot/core/commit/652724a2af139d0153575111e704558607f28c82
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: peer: Maintain a list of connections pending on behalf of a peer.

Before, pending connections were only listed in the peer pool.


  Commit: 97ef926ed14880d49ef4a104b78d6cd49e8df691
      https://github.com/dovecot/core/commit/97ef926ed14880d49ef4a104b78d6cd49e8df691
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Log the number of pending connections consistently in relevant debug messages.

Use the same style everywhere and log it where it makes sense.


  Commit: 43f45800779ff60d9aeec775afb09fe405c04242
      https://github.com/dovecot/core/commit/43f45800779ff60d9aeec775afb09fe405c04242
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/lib-event.c
    M src/lib/lib-event.h

  Log Message:
  -----------
  lib: Add some event handling functions.

event_has_all_categories() - checks if given event contains all the
categories of an another event.
event_has_all_fields() - checks if given event contains all the fields
of an another event.
event_dup() - duplicates an event.
event_copy_categories_fields() - copies all categories and fields from
source to dest.


  Commit: 334f0390b50c7b2d962c42b0994eaa360d3fbc45
      https://github.com/dovecot/core/commit/334f0390b50c7b2d962c42b0994eaa360d3fbc45
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-master/stats-client.c

  Log Message:
  -----------
  lib-master: stats_event_write use BEGIN only when event and parent_event create timestamps differ


  Commit: 4ae56d07ec3617161185016c8159c94a4dd38171
      https://github.com/dovecot/core/commit/4ae56d07ec3617161185016c8159c94a4dd38171
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-master/stats-client.c

  Log Message:
  -----------
  lib-master: stats_event_get_merged() - Remove unnecessary variable assignment

Fixes scan-build complaint.


  Commit: 0574f9fa221d8dff6b47dacbb2b81ad45e0e212c
      https://github.com/dovecot/core/commit/0574f9fa221d8dff6b47dacbb2b81ad45e0e212c
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib-master/stats-client.c

  Log Message:
  -----------
  lib-master: Fix crash when stats events are merged all the way to the root


  Commit: 236276026a7c8d8b27ba9061b3bcaa8ccdc20532
      https://github.com/dovecot/core/commit/236276026a7c8d8b27ba9061b3bcaa8ccdc20532
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Introduce abstraction for failure logging implementations.


  Commit: 7867f9f333f151d115abe6ab1a405ca2fad117e0
      https://github.com/dovecot/core/commit/7867f9f333f151d115abe6ab1a405ca2fad117e0
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Implement vfuncs for logging to default location and common failure logging handling


  Commit: 723a84238e0ae4e03443f904edce5ab541947707
      https://github.com/dovecot/core/commit/723a84238e0ae4e03443f904edce5ab541947707
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Implement vfuncs for logging to syslog


  Commit: 00f94a425fc6b9e6610c7eae1da5cd1ce31faec2
      https://github.com/dovecot/core/commit/00f94a425fc6b9e6610c7eae1da5cd1ce31faec2
  Author: Sergey Kitov <sergey.kitov at open-xchange.com>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Implement vfuncs for logging to stderr


  Commit: 136ecaeb0d0f992b9b34bafe171839aa54caa4d9
      https://github.com/dovecot/core/commit/136ecaeb0d0f992b9b34bafe171839aa54caa4d9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Rename handler_config variable to failure_handler

It's a global variable, so it needs to have a proper prefix.


  Commit: 4576851eeb878c4d80dd44484f18ad3ce90966c4
      https://github.com/dovecot/core/commit/4576851eeb878c4d80dd44484f18ad3ce90966c4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Make failure handler variables static


  Commit: 7ebce772882b2fee317112efc209fc0431ef65a1
      https://github.com/dovecot/core/commit/7ebce772882b2fee317112efc209fc0431ef65a1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/Makefile.am
    A src/lib/failures-private.h
    M src/lib/failures.c

  Log Message:
  -----------
  lib: Move failure handler structs and typedefs to failures-private.h

Also change the function typedefs to be non-pointers, like they usually are
in Dovecot code.


  Commit: da55b6a750cf3d4237fd9ca8ece171c5df2483c0
      https://github.com/dovecot/core/commit/da55b6a750cf3d4237fd9ca8ece171c5df2483c0
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: failures - Move adding LF from default_format() to default_write()

This makes it similar to internal_format/write()


  Commit: d0a7f6c69782a328c10844479e7777a508b3997f
      https://github.com/dovecot/core/commit/d0a7f6c69782a328c10844479e7777a508b3997f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/Makefile.am
    A src/lib/test-event-log.c
    M src/lib/test-lib.inc

  Log Message:
  -----------
  lib: Add unit test for event log prefix handling

Some of the tests are commented out until they're fixed in a following
commit.


  Commit: 38dade51b594a7a9de84259712ac0ff3baf60dc4
      https://github.com/dovecot/core/commit/38dade51b594a7a9de84259712ac0ff3baf60dc4
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c

  Log Message:
  -----------
  lib: failures - Use common log_prefix_add() for default and syslog formatters


  Commit: 83a59a536fc2dfc6730d15c48b0853f888bbf1b1
      https://github.com/dovecot/core/commit/83a59a536fc2dfc6730d15c48b0853f888bbf1b1
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/log/log-connection.c

  Log Message:
  -----------
  log: Avoid unnecessary global log prefix changes

If the context specifies a log prefix, the global prefix isn't going to be
used.


  Commit: 6571120bd49b3bb7043fb5bf2819044e171600c2
      https://github.com/dovecot/core/commit/6571120bd49b3bb7043fb5bf2819044e171600c2
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/log/log-connection.c

  Log Message:
  -----------
  log: Move data stack frame allocation to parent function

This simplifies the next commit, which requires data stack nearly always
when logging. The data stack frames are cheap enough that we don't really
need to optimize for avoiding the cases when they're not needed.


  Commit: f69253fd42faf71bb2c46f080ebd1d794c2f4baf
      https://github.com/dovecot/core/commit/f69253fd42faf71bb2c46f080ebd1d794c2f4baf
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c
    M src/lib/failures.h
    M src/log/log-connection.c

  Log Message:
  -----------
  lib, log: Add log prefix length to internal logging protocol

This way log process knows which part of the text is the log prefix, and
which part is the logged text.


  Commit: a50f08645a0d125fa6851baecf6204713a9d5015
      https://github.com/dovecot/core/commit/a50f08645a0d125fa6851baecf6204713a9d5015
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/failures.c
    M src/lib/failures.h

  Log Message:
  -----------
  lib: Add failure_context.log_prefix_type_pos

If non-zero, this specifies where the log type (e.g. "Info: ") is written
within the log prefix. By default it's appended.


  Commit: d54d97c060fd8ab36ca248e45d300e62e1070baf
      https://github.com/dovecot/core/commit/d54d97c060fd8ab36ca248e45d300e62e1070baf
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-07 (Fri, 07 Sep 2018)

  Changed paths:
    M src/lib/event-log.c
    M src/lib/lib-event.h
    M src/lib/test-event-log.c

  Log Message:
  -----------
  lib: Move log type to be written before appended log prefix

This changes the logging format back to how it used to be before the event
logging changes.


  Commit: 8c87b941727b9b2e3c3309d00211f78a29430ef6
      https://github.com/dovecot/core/commit/8c87b941727b9b2e3c3309d00211f78a29430ef6
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
    M src/lib-storage/index/index-mail-headers.c

  Log Message:
  -----------
  lib-storage: Don't try to process header if we haven't parsed the body structure

Fixes:
Panic: file index-mail-headers.c: line 294 (index_mail_parse_header): assertion failed: (part != NULL)


  Commit: 97e8c8279dca6d4884892d939117e32a83e56109
      https://github.com/dovecot/core/commit/97e8c8279dca6d4884892d939117e32a83e56109
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
    M src/lib-storage/index/index-mail-headers.c

  Log Message:
  -----------
  lib-storage: Simplify an assertion condition

Since the i_assert() is guarded by a check for save_bodystructure_header
being true, the whole condition can be simplified.


  Commit: 3ecffb14a011714e4d39b4cbfa117a60d9c9d083
      https://github.com/dovecot/core/commit/3ecffb14a011714e4d39b4cbfa117a60d9c9d083
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-09-10 (Mon, 10 Sep 2018)

  Changed paths:
    M src/lib-storage/index/index-mail.c

  Log Message:
  -----------
  lib-storage: Don't try to deserialize bodystructure if we already have it

Fixes:
Panic: file message-part-data.c: line 37 (message_part_data_is_plain_7bit): assertion failed: (data != NULL)


  Commit: 16fd1766df62b5b614e481ccd5375fd1c03cdbc2
      https://github.com/dovecot/core/commit/16fd1766df62b5b614e481ccd5375fd1c03cdbc2
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-12 (Wed, 12 Sep 2018)

  Changed paths:
    M src/lib/ioloop-epoll.c
    M src/lib/ioloop-kqueue.c
    M src/lib/ioloop-poll.c
    M src/lib/ioloop-private.h
    M src/lib/ioloop-select.c
    M src/lib/ioloop.c

  Log Message:
  -----------
  lib: Add and use io_loop_run_get_wait_time()

This is going to be called just before running an ioloop iteration.
The next commit improves its behavior.


  Commit: e7341571511de412e0051254e8f2772dbb974af7
      https://github.com/dovecot/core/commit/e7341571511de412e0051254e8f2772dbb974af7
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-12 (Wed, 12 Sep 2018)

  Changed paths:
    M src/lib/ioloop-private.h
    M src/lib/ioloop.c
    M src/lib/ioloop.h

  Log Message:
  -----------
  lib: Add io_set_never_wait_alone()

If ioloop is run without any timeouts and without IOs that don't have this
flag, assert-crash rather than going to infinite wait.


  Commit: 658e58b024652fbe869445b10f522c833113898f
      https://github.com/dovecot/core/commit/658e58b024652fbe869445b10f522c833113898f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-12 (Wed, 12 Sep 2018)

  Changed paths:
    M src/lib/ioloop-epoll.c
    M src/lib/ioloop-kqueue.c

  Log Message:
  -----------
  lib: ioloop-epoll/kqueue: Remove now unnecessary infinite wait check.

The previous change adds this globally to io_loop_run_get_wait_time().


  Commit: 313be4a02e16676e8124d8faeda4dece01c9dfd9
      https://github.com/dovecot/core/commit/313be4a02e16676e8124d8faeda4dece01c9dfd9
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-12 (Wed, 12 Sep 2018)

  Changed paths:
    M src/lib/lib-signals.c

  Log Message:
  -----------
  lib: Mark signal waiting IO as "never wait alone"

This signal is being automatically moved to nested ioloops. It can't be the
only IO being waited, since there's no code that simply wants to wait for a
signal.


  Commit: c19068daf6ae788420766146fbc02556171eb932
      https://github.com/dovecot/core/commit/c19068daf6ae788420766146fbc02556171eb932
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-20 (Thu, 20 Sep 2018)

  Changed paths:
    M src/doveadm/doveadm-stats.c

  Log Message:
  -----------
  doveadm stats dump: Fix potentially not writing all stats output

It depended on whether uninitialized stack memory was 0 or not.


  Commit: fafbf8400f6711cdd712cc6b8d302adf15fb7c87
      https://github.com/dovecot/core/commit/fafbf8400f6711cdd712cc6b8d302adf15fb7c87
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-20 (Thu, 20 Sep 2018)

  Changed paths:
    M src/auth/password-scheme-sodium.c
    M src/lib-master/master-service-haproxy.c

  Log Message:
  -----------
  lib-master, auth: Fix clearing memory

It doesn't look like these being wrong were causing any bugs.


  Commit: 8561dd7735590803476fd3d43883ef4f94789e8a
      https://github.com/dovecot/core/commit/8561dd7735590803476fd3d43883ef4f94789e8a
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-20 (Thu, 20 Sep 2018)

  Changed paths:
    M src/lib/macros.h

  Log Message:
  -----------
  lib: i_zero*() - Give compiler error if it's wrongly used on an array


  Commit: 1e1acce32d99eb9998ae0857114eadeea50abca8
      https://github.com/dovecot/core/commit/1e1acce32d99eb9998ae0857114eadeea50abca8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2018-09-20 (Thu, 20 Sep 2018)

  Changed paths:
    M NEWS
    M configure.ac

  Log Message:
  -----------
  Released v2.3.3.rc1.


  Commit: 8b8464b5dc58ecd27291fc1d46597effd3d030be
      https://github.com/dovecot/core/commit/8b8464b5dc58ecd27291fc1d46597effd3d030be
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-09-21 (Fri, 21 Sep 2018)

  Changed paths:
    M src/lib-smtp/smtp-reply-parser.c

  Log Message:
  -----------
  lib-smtp: reply-parser: Fix closing the text_lines array with NULL sentinel.

For (EHLO) replies with more than 7 lines, the text_lines array of the reply did
not end in NULL, causing a segfault.


  Commit: 14e4920d8ced8f6b0189687707f291c5faaf3274
      https://github.com/dovecot/core/commit/14e4920d8ced8f6b0189687707f291c5faaf3274
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2018-09-21 (Fri, 21 Sep 2018)

  Changed paths:
    M src/lib/printf-format-fix.c
    M src/lib/test-printf-format-fix.c

  Log Message:
  -----------
  lib/printf-format-fix: fix rejection of "%.0f" as a valid string

Sometimes you want to calculate in floats, but don't want the decimals
printed.

Signed-off-by: Phil Carmody <phil at dovecot.fi>


Compare: https://github.com/dovecot/core/compare/2e1f46151315^...14e4920d8ced
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the dovecot-cvs mailing list