[dovecot/core] 2f2c52: lib: ioloop: Add functions for adding/moving timeo...

GitHub noreply at github.com
Thu Feb 1 16:03:09 EET 2018


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: 2f2c523b0870412d4631917fa166ee312508e0ec
      https://github.com/dovecot/core/commit/2f2c523b0870412d4631917fa166ee312508e0ec
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

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

  Log Message:
  -----------
  lib: ioloop: Add functions for adding/moving timeouts and ios to a specific ioloop.


  Commit: b3b813a6473d1210eee94bd60eaa6bafd2131ed3
      https://github.com/dovecot/core/commit/b3b813a6473d1210eee94bd60eaa6bafd2131ed3
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

  Changed paths:
    M src/lib/iostream-private.h
    M src/lib/iostream.c
    M src/lib/istream.c
    M src/lib/ostream.c

  Log Message:
  -----------
  lib: iostream: Record the ioloop that the iostream was last switched to.


  Commit: 038c2831447440bf0bef89b43dd0968afc298abc
      https://github.com/dovecot/core/commit/038c2831447440bf0bef89b43dd0968afc298abc
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

  Changed paths:
    M src/lib-http/http-server-request.c
    M src/lib/istream-multiplex.c
    M src/lib/istream-private.h
    M src/lib/istream-timeout.c
    M src/lib/istream.c
    M src/lib/istream.h

  Log Message:
  -----------
  lib: istream: Allow switching to a specific ioloop.


  Commit: 8aa8399893c66b40e2790a4568256807a6ec6742
      https://github.com/dovecot/core/commit/8aa8399893c66b40e2790a4568256807a6ec6742
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

  Changed paths:
    M src/lib-ssl-iostream/ostream-openssl.c
    M src/lib/ostream-file.c
    M src/lib/ostream-private.h
    M src/lib/ostream.c
    M src/lib/ostream.h

  Log Message:
  -----------
  lib: ostream: Allow switching to a specific ioloop.


  Commit: ddaf416216a83e71bc1bfc1b6faf2ead9d774613
      https://github.com/dovecot/core/commit/ddaf416216a83e71bc1bfc1b6faf2ead9d774613
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

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

  Log Message:
  -----------
  lib: connection: Allow switching to a specific ioloop.


  Commit: 8836c374dc344a48d4f6cefdf224089f3a0c40c6
      https://github.com/dovecot/core/commit/8836c374dc344a48d4f6cefdf224089f3a0c40c6
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

  Changed paths:
    M src/lib-dns/dns-lookup.c
    M src/lib-dns/dns-lookup.h

  Log Message:
  -----------
  lib-dns: Allow setting the ioloop that the dns_lookup/dns_client is started on.


  Commit: a68aaff537e2e30d782bb8b9d8782e1a10a17d1a
      https://github.com/dovecot/core/commit/a68aaff537e2e30d782bb8b9d8782e1a10a17d1a
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

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

  Log Message:
  -----------
  lib-http: client: Make sure all ioloop objects are created on the ioloop that the client/context is switched to.


  Commit: df12456ea9a15e9bebd692207b551800521310c5
      https://github.com/dovecot/core/commit/df12456ea9a15e9bebd692207b551800521310c5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

  Changed paths:
    M src/lib-ssl-iostream/iostream-openssl.c

  Log Message:
  -----------
  lib-ssl-iostream: openssl: Make verbose logging robust against i_debug() writing to stream itself.

In dsync, i_debug() is overridden to write to the SSL stream itself through a
multiplexed data stream. So, during the i_debug() call all kinds of things can
happen to the persisted error string in the stream, which caused problems.


  Commit: bfa8b471b376f4748be56421b0279a4142237d38
      https://github.com/dovecot/core/commit/bfa8b471b376f4748be56421b0279a4142237d38
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-30 (Tue, 30 Jan 2018)

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

  Log Message:
  -----------
  doveadm: dsync: Switch ioloop for input/output streams while making TCP connection.

This task is performed in a sub-ioloop, and when returning from that ioloop, the
output stream would sometimes still have an object on the sub-ioloop that was
just destroyed.


  Commit: 605b1a5e462b39dff4c331133469c4eba0a7103a
      https://github.com/dovecot/core/commit/605b1a5e462b39dff4c331133469c4eba0a7103a
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib/randgen.c

  Log Message:
  -----------
  lib/randgen - use KISS as intended, not as originally posted to sci.crypt

The original KISS, as posted to sci.crypt, had a SHR3 component with
short cycles. The buggy version contradicted Marsaglia's original
cycle length claim, and it had already been fixed in KISS11, so it's
fair to assume this was always the intended implementation.

For details see G. Rose "KISS: A Bit Too Simple".

Whilst dealing with that issue, fix seeding so w and z can't both
be short (length 2) cycles, as also pointed out in the Rose paper.

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


  Commit: 57f2dd592704741a647c11c06d03ce6fceca4111
      https://github.com/dovecot/core/commit/57f2dd592704741a647c11c06d03ce6fceca4111
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib/randgen.c

  Log Message:
  -----------
  lib/randgen - always print the DOVECOT_SRAND seed, not just on fatals

Devs might want to reproduce "working" pathways that show slight
misbehaviour, not just crashing ones. The later print upon a crash/
fatal is left in, as the heads of logs can become separated from the
tails of logs quite easily, it's only one extra line per run.

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


  Commit: 806fd09a50a91e6b39433bbb270d755c6b66e04e
      https://github.com/dovecot/core/commit/806fd09a50a91e6b39433bbb270d755c6b66e04e
  Author: Phil Carmody <phil at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib/randgen.c

  Log Message:
  -----------
  lib/randgen - warn when DOVECOT_SRAND is not able to be used

As suggested by Jeff, it's friendly to warn if we're unable to act
upon the request for reproduceable random numbers because we're not
built for that.

Note, this deliberately permits a blank string, so that you can
silence the warning by prefixing a command with an empty
  DOVECOT_SRAND=
which is taken as an explicit attempt to disable use of the feature.

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


  Commit: a419baa1f43d7e98ab332fb7eb0d28767d519e08
      https://github.com/dovecot/core/commit/a419baa1f43d7e98ab332fb7eb0d28767d519e08
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib/str.c

  Log Message:
  -----------
  lib: str_free(NULL) should be a no-op


  Commit: e9fbe5e18b798728041b7e2ffc6c4fa964fc35a3
      https://github.com/dovecot/core/commit/e9fbe5e18b798728041b7e2ffc6c4fa964fc35a3
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/imap-login/imap-login-cmd-id.c
    M src/imap/imap-fetch.c
    M src/lib-fs/fs-metawrap.c
    M src/lib-fts/fts-filter.c
    M src/lib-http/http-client-request.c
    M src/lib-storage/index/cydir/cydir-sync.c
    M src/lib-storage/index/index-search-mime.c
    M src/lib/istream.c
    M src/login-common/client-common.c
    M src/plugins/acl/acl-attributes.c
    M src/plugins/fts-solr/fts-backend-solr.c

  Log Message:
  -----------
  global: start relying on str_free(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	- 	str_free(&E);
	- }
	+ str_free(&E);


  Commit: ba4cff31455b6dcb89c5d12cd4479b4da55c8596
      https://github.com/dovecot/core/commit/ba4cff31455b6dcb89c5d12cd4479b4da55c8596
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib/iostream-proxy.c

  Log Message:
  -----------
  lib: iostream_proxy_unref(NULL) should be a no-op


  Commit: cff2942962a11f78d23bcb0a4ed56f67e751819c
      https://github.com/dovecot/core/commit/cff2942962a11f78d23bcb0a4ed56f67e751819c
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

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

  Log Message:
  -----------
  global: start relying on iostream_proxy_unref(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	- 	iostream_proxy_unref(&E);
	- }
	+ iostream_proxy_unref(&E);


  Commit: 4836d541b1c1354073e068aabe5cd92aa67fe61d
      https://github.com/dovecot/core/commit/4836d541b1c1354073e068aabe5cd92aa67fe61d
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib-ssl-iostream/iostream-ssl.c

  Log Message:
  -----------
  ssl-iostream: ssl_iostream_destroy(NULL) should be a no-op


  Commit: ac581db9a4ff22c5f99cf1666a0a1a7f7889e0a2
      https://github.com/dovecot/core/commit/ac581db9a4ff22c5f99cf1666a0a1a7f7889e0a2
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/doveadm/client-connection-tcp.c
    M src/doveadm/doveadm-dsync.c
    M src/lib-smtp/smtp-server-connection.c
    M src/login-common/client-common.c
    M src/login-common/login-proxy.c

  Log Message:
  -----------
  global: start relying on ssl_iostream_destroy(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	- 	ssl_iostream_destroy(&E);
	- }
	+ ssl_iostream_destroy(&E);


  Commit: 86174ed1451d1ca877e02cb06dc484c34b707180
      https://github.com/dovecot/core/commit/86174ed1451d1ca877e02cb06dc484c34b707180
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

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

  Log Message:
  -----------
  lib-mail: mail_html2text_deinit(NULL) should be a no-op


  Commit: a2e1929a266a0260fd429fb587588f51d2bd8a96
      https://github.com/dovecot/core/commit/a2e1929a266a0260fd429fb587588f51d2bd8a96
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

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

  Log Message:
  -----------
  lib-mail: start relying on  mail_html2text_deinit(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	-       mail_html2text_deinit(&E);
	- }
	+ mail_html2text_deinit(&E);


  Commit: cdc472f6e6645876c58ef8014edb0c953091ebee
      https://github.com/dovecot/core/commit/cdc472f6e6645876c58ef8014edb0c953091ebee
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

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

  Log Message:
  -----------
  lib-storage: mailbox_header_lookup_unref(NULL) should be a no-op


  Commit: ceb8c97c6c9fe0ee7eb544645c6bdb74dfcb519d
      https://github.com/dovecot/core/commit/ceb8c97c6c9fe0ee7eb544645c6bdb74dfcb519d
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/doveadm/doveadm-mail-iter.c
    M src/doveadm/dsync/dsync-mailbox-export.c
    M src/imap/imap-fetch.c
    M src/lib-imap-storage/imap-msgpart.c
    M src/lib-storage/index/index-mail.c
    M src/lib-storage/index/index-search.c
    M src/plugins/mail-log/mail-log-plugin.c
    M src/plugins/virtual/virtual-mail.c

  Log Message:
  -----------
  global: start relying on mailbox_header_lookup_unref(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	-       mailbox_header_lookup_unref(&E);
	- }
	+ mailbox_header_lookup_unref(&E);


  Commit: 5109f00ce0cf7c89be9ab20a488a93a59212ff2e
      https://github.com/dovecot/core/commit/5109f00ce0cf7c89be9ab20a488a93a59212ff2e
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lib-index/mail-cache.c
    M src/lib-storage/index/index-mailbox-size.c
    M src/lib-storage/mail-autoexpunge.c
    M src/lib/file-lock.c
    M src/plugins/fts-squat/squat-trie.c
    M src/plugins/fts-squat/squat-uidlist.c

  Log Message:
  -----------
  global: start relying on file_lock_free(NULL) being a no-op

Cleanup performed with the following semantic patch:

	@@
	expression E;
	@@

	- if (E != NULL) {
	-       file_lock_free(&E);
	- }
	+ file_lock_free(&E);


  Commit: 3f64825cfa1b6e8f7cf917e00d939da3124d98bb
      https://github.com/dovecot/core/commit/3f64825cfa1b6e8f7cf917e00d939da3124d98bb
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/submission/submission-client.c
    M src/submission/submission-settings.c
    M src/submission/submission-settings.h

  Log Message:
  -----------
  submission: Add settings that configure the connect and command reply timeouts.


  Commit: f9911b2301d9557e4a6401eb6e1f877aae151c35
      https://github.com/dovecot/core/commit/f9911b2301d9557e4a6401eb6e1f877aae151c35
  Author: Josef 'Jeff' Sipek <jeff.sipek at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

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

  Log Message:
  -----------
  imap: Iterate over ns settings when deciding to add SPECIAL-USE capability

To determine whether we should add the SPECIAL-USE capability to the
OK response to LOGIN, we have to iterate over namespace and mailbox
*settings* since the namespaces haven't been set up yet.


  Commit: cdbcc8db8e0a04b2cbf6ca9f20b3ee7f7173552d
      https://github.com/dovecot/core/commit/cdbcc8db8e0a04b2cbf6ca9f20b3ee7f7173552d
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Make local variable for rcpt->rcpt.rcpt_cmd in lmtp_local_rcpt_check_quota().


  Commit: c23717da4af9d3275cb45cbc67faaa8daa353ec1
      https://github.com/dovecot/core/commit/c23717da4af9d3275cb45cbc67faaa8daa353ec1
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Add explicit cmd parameter to lmtp_local_rcpt_reply_overquota().

Using the RCPT cmd is only valid for the RCPT command and not when quota excess
is detected during DATA. That would cause a segmentation fault, since
rcpt->rcpt.rcpt_cmd == NULL.


  Commit: f8d9e6c977847a411af9986c9be62f74e4b06143
      https://github.com/dovecot/core/commit/f8d9e6c977847a411af9986c9be62f74e4b06143
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-01-31 (Wed, 31 Jan 2018)

  Changed paths:
    M src/lmtp/lmtp-local.c

  Log Message:
  -----------
  lmtp: local: Use recipient index in lmtp_local_rcpt_reply_overquota().

When used during the DATA command, it should send a reply for the correct
recipient. During the RCPT command there is only one reply due. Added assert
that checks this.


  Commit: 8c1202f6cf76efcf81a2d85a7e0c16bf7f15e7ac
      https://github.com/dovecot/core/commit/8c1202f6cf76efcf81a2d85a7e0c16bf7f15e7ac
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

  Changed paths:
    M src/lib-imap-urlauth/imap-urlauth.c

  Log Message:
  -----------
  lib-imap-urlauth: Fix segfault occurring when userid part is missing for "user+" or "submit+" URLAUTH access.


  Commit: 78f03b6c6a54b002198a960071917f72fa481325
      https://github.com/dovecot/core/commit/78f03b6c6a54b002198a960071917f72fa481325
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

  Changed paths:
    M src/lib-imap/imap-match.c

  Log Message:
  -----------
  lib-imap: imap_match_deinit(NULL) should be a no-op


  Commit: 421e784f235b52d7b4957055e186c518cf028929
      https://github.com/dovecot/core/commit/421e784f235b52d7b4957055e186c518cf028929
  Author: Aki Tuomi <aki.tuomi at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

  Changed paths:
    M src/lib-ssl-iostream/iostream-ssl.c

  Log Message:
  -----------
  lib-ssl-iostream: Fix premature NULL deref

Broken in 4836d541b1c1354073e068aabe5cd92aa67fe61d

Found by coverity


  Commit: 15581297511b658a29c707c6031a258bab7bf1a5
      https://github.com/dovecot/core/commit/15581297511b658a29c707c6031a258bab7bf1a5
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 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: message-address: Add support for parsing RFC5322 "path" syntax.

This is either a single angle-addr or just <>. This path syntax differs from the
RFC5321 "Path" syntax in that it allows whitespace, which is very important when
it is parsed from a header.


  Commit: 9d606eb5019bc237cf4add562d54e2345b756f50
      https://github.com/dovecot/core/commit/9d606eb5019bc237cf4add562d54e2345b756f50
  Author: Stephan Bosch <stephan.bosch at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

  Changed paths:
    M src/lib-lda/mail-deliver.c

  Log Message:
  -----------
  lib-lda: Parse Return-Path header using RFC5322 (IMF) "path" syntax, rather than RFC5321 (SMTP) "Path" syntax.

SMTP does not allow white space, which causes all kinds of trouble when the
address is parsed from a header field.


  Commit: de338ef27767268c2018f54f0b5ddeff7fca3870
      https://github.com/dovecot/core/commit/de338ef27767268c2018f54f0b5ddeff7fca3870
  Author: Martti Rannanjärvi <martti.rannanjarvi at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

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

  Log Message:
  -----------
  quota-count: Remove extra "quota-count failed:" from error_r


  Commit: a921274624d8504c55c4d13e612c57cede211fab
      https://github.com/dovecot/core/commit/a921274624d8504c55c4d13e612c57cede211fab
  Author: Martti Rannanjärvi <martti.rannanjarvi at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

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

  Log Message:
  -----------
  quota: Remove "Failed to set quota transaction limits" error

This error adds nothing that helps the user to debug a problem.


  Commit: 39914d983f6de82ba5613a9848e0935782013da1
      https://github.com/dovecot/core/commit/39914d983f6de82ba5613a9848e0935782013da1
  Author: Martti Rannanjärvi <martti.rannanjarvi at dovecot.fi>
  Date:   2018-02-01 (Thu, 01 Feb 2018)

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

  Log Message:
  -----------
  quota: Warn when quota check is blocked by background quota calculation

This was previously double logged as "Quota transaction has failed
earlier" error.


Compare: https://github.com/dovecot/core/compare/2435290e4480...39914d983f6d


More information about the dovecot-cvs mailing list