[dovecot/core] 91f029: lmtp: Always read settings before dropping privs

GitHub noreply at github.com
Fri Sep 9 12:00:17 UTC 2016


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: 91f029608947d4fa49b3c2c1a15a25eb75343147
      https://github.com/dovecot/core/commit/91f029608947d4fa49b3c2c1a15a25eb75343147
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2016-09-09 (Fri, 09 Sep 2016)

  Changed paths:
    M src/lmtp/main.c

  Log Message:
  -----------
  lmtp: Always read settings before dropping privs

If lmtp is ran explicitly as root, settings were not read.


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

  Changed paths:
    M src/doveadm/doveadm-mail-flags.c

  Log Message:
  -----------
  doveadm flags: Sync mailbox after committing transaction.


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

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

  Log Message:
  -----------
  lib-stats: stats_connection_send() now returns whether it succeeded or not


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

  Changed paths:
    M src/plugins/stats/mail-stats-connection.c
    M src/plugins/stats/mail-stats-connection.h
    M src/plugins/stats/stats-plugin.c
    M src/plugins/stats/stats-plugin.h

  Log Message:
  -----------
  stats plugin: Don't send any stats before CONNECT was successfully sent.

After stats write failures this fixes warnings like:
Warning: stats: Couldn't find session ID: smqAXQE8pIp/AAAB


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

  Changed paths:
    M src/imap/imap-client.c

  Log Message:
  -----------
  imap: Avoid wrongly assert-crashing in client_check_command_hangs()

Fixes assert:

Panic: file imap-client.c: line 837 (client_check_command_hangs): assertion failed: (client->io != NULL)


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

  Changed paths:
    M src/doveadm/dsync/dsync-transaction-log-scan.c
    M src/lib-index/mail-index-modseq.c

  Log Message:
  -----------
  lib-index: mail_index_modseq_get_next_log_offset() shouldn't return offset beyond view's head

This also allows removing the same workaround from dsync code.


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

  Changed paths:
    M src/stats/mail-session.c

  Log Message:
  -----------
  stats: Include PIDs in "Duplicate session ID" errors.


  Commit: 8154226c0c2bdc5f95e78d3b26287a50eecbd48d
      https://github.com/dovecot/core/commit/8154226c0c2bdc5f95e78d3b26287a50eecbd48d
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2016-09-09 (Fri, 09 Sep 2016)

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

  Log Message:
  -----------
  lib-test: improve expected error handling

If we expect a specific error string, then when we see it, suppress it.

We do not suppress errors expected by count, because if we get unexpected
errors, then we do not want them suppressed, and we have no way of
distinguishing between the expected and unexpected errors.

This of course favours the use of the expected string version of the helper,
but alas that's not always usable, as you can only expect one at a time.

Additionally, if we failed to see an expected message, then when we no longer
expect to see it, reset the expected message state to not cascade further
test assertion failures.

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

Conflicts:
	src/lib-test/test-common.c


  Commit: 7d436489b2f53af417b9ee40066cbe2914a800c4
      https://github.com/dovecot/core/commit/7d436489b2f53af417b9ee40066cbe2914a800c4
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2016-09-09 (Fri, 09 Sep 2016)

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

  Log Message:
  -----------
  lib-test: enable naming of tests, such that only a subset is run

How to use these will become clear in a subsequent patch. Even if you
don't want to name tests, the macros can reduce redundancy in the code,
as the list of test function prototypes and the list of test functions
to call become the same lists, expanded through 2 different macros.

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


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

  Changed paths:
    M src/lib-test/test-common.c
    M src/lib-test/test-common.h
    M src/lib/test-istream-unix.c

  Log Message:
  -----------
  lib-test: test-exit helper to stop valgrind complaining about fork()s

fork()s that want to _exit() will cause valgrind's full memory leak
checker to complain a lot - this performs a quick cleanup first.

Before:
  phil at phil:~/repos/dovecot-core$ valgrind --trace-children=yes --leak-check=full --show-leak-kinds=all src/lib/test-lib --match unix
  ==19576==   total heap usage: 4 allocs, 0 frees, 17,858 bytes allocated
  istream unix ......................................................... : ok
  0 / 1 tests failed
  ==19575==   total heap usage: 7 allocs, 7 frees, 19,327 bytes allocated

After:
  phil at phil:~/repos/dovecot-core$ valgrind --trace-children=yes --leak-check=full --show-leak-kinds=all src/lib/test-lib --match unix
  istream unix ......................................................... : ok
  ==4993==   total heap usage: 4 allocs, 4 frees, 17,858 bytes allocated
  0 / 1 tests failed
  ==4992==   total heap usage: 7 allocs, 7 frees, 19,327 bytes allocated

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


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

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

  Log Message:
  -----------
  lib-test: test_expect_errors() now works for the entire log string, not just format parameter


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

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

  Log Message:
  -----------
  lib-test: Added missing va_end() call.


  Commit: 796336749045577e47132b7b7f49a7bb697c4933
      https://github.com/dovecot/core/commit/796336749045577e47132b7b7f49a7bb697c4933
  Author: Martti Rannanjärvi <martti.rannanjarvi at dovecot.fi>
  Date:   2016-09-09 (Fri, 09 Sep 2016)

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

  Log Message:
  -----------
  lib-index: limit mail_index error prints to one per ioloop_time

This is to prevent log flooding.


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

  Changed paths:
    M src/lib-fs/fs-api-private.h
    M src/lib-fs/fs-api.h

  Log Message:
  -----------
  lib-fs: Moved fs_write_stream_abort_parent() to fs-api-private.h

Only fs wrapper drivers are supposed to call it.


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

  Changed paths:
    M src/imap-hibernate/imap-hibernate-client.c
    M src/imap/imap-client-hibernate.c

  Log Message:
  -----------
  imap: When hibernating, wait for old imap process to cleanup before creating new ones.

This fixes stats errors:

stats: Error: FIFO input error: CONNECT: Duplicate session ID Y7Q6E4U7xO1/AAAB for user testuser service imap
stats: Warning: Couldn't find session ID: Y7Q6E4U7xO1/AAAB


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

  Changed paths:
    M src/lib-storage/mailbox-get.c

  Log Message:
  -----------
  lib-storage: Code cleanup for mailbox_get_expunge*()

The previous code did actually work as well, but it wasn't very obvious that
it did.


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

  Changed paths:
    M src/lib-index/mail-transaction-log-file.c

  Log Message:
  -----------
  lib-index: Make sure new dovecot.index.log files start tracking modseqs.

This will make mail_index_modseq_get_next_log_offset() work correctly even
if modseqs haven't been explicitly enabled.


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

  Changed paths:
    M src/lib-index/mail-transaction-log-file.c

  Log Message:
  -----------
  lib-index: Fixed mail_index_modseq_get_next_log_offset() when accessing .log.2

file->sync_offset was set only after header, so sync_highest_modseq was also
same as initial_modseq. The previous code then just returned offset pointing
to sync_offset, which was too early.


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

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

  Log Message:
  -----------
  lib-storage: Fixed accessing user as root when user has no uid.

This shouldn't normally be done, but might as well fix it. Fixes:

Fatal: mail-storage-service: seteuid(4294967295) failed: Invalid argument


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

  Changed paths:
    M src/imap-hibernate/imap-master-connection.c

  Log Message:
  -----------
  imap-hibernate: Increased imap-master communication timeout from 5s to 30s

Looks like 5s isn't enough in loaded environments. It's also not really a
problem if the timeout is large, it's just going to take a while longer to
restore the connection. When timeout is reached the client would just get
disconnected anyway.


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

  Changed paths:
    M src/lib-fs/fs-randomfail.c

  Log Message:
  -----------
  fs-randomfail: Fixed assert-crash in fs_write_stream_abort_error()


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

  Changed paths:
    M src/lib-fs/fs-metawrap.c

  Log Message:
  -----------
  fs-metawrap: Added assert to make sure we don't create empty files.

It seems like this could be happening in some situation.


Compare: https://github.com/dovecot/core/compare/51b18a2c6c14...38a254286953


More information about the dovecot-cvs mailing list