]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Thu, 12 Dec 2019 14:25:30 +0000 (16:25 +0200)]
imap: copy/move: Refactor to use struct cmd_copy_context
Timo Sirainen [Thu, 23 Jan 2020 16:31:01 +0000 (18:31 +0200)]
lib: Add seq_range_array_merge_n()
Josef 'Jeff' Sipek [Mon, 13 Jan 2020 13:34:44 +0000 (08:34 -0500)]
lib-storage: Autoexpunge mails in batches of 1000
Josef 'Jeff' Sipek [Tue, 14 Jan 2020 22:27:37 +0000 (17:27 -0500)]
lib-storage: Move mail autoexpunge loop into a helper function
This makes the next commit easier.
Stephan Bosch [Mon, 27 Aug 2018 21:39:02 +0000 (23:39 +0200)]
imap: Implement the STATUS=SIZE capability.
Coexists with the existing proprietary X-SIZE status, which is to be deprecated
in the future.
Stephan Bosch [Mon, 27 Aug 2018 21:28:58 +0000 (23:28 +0200)]
imap: Restructure handling of the STATUS response so that it uses its own flags for the items.
Before, it used mailbox status and metadata item flags for this purpose.
This is needed to allow the existing X-SIZE and the newly standardized SIZE flag to coexist.
Timo Sirainen [Mon, 20 Jan 2020 14:03:01 +0000 (16:03 +0200)]
dict-redis: Add missing dict_wait()
This caused various problems when used in places where dict_wait() was
required, e.g. quota or quota_clone plugins.
Aki Tuomi [Mon, 3 Feb 2020 10:15:49 +0000 (12:15 +0200)]
plugins: push-notification: Include mailbox field
Aki Tuomi [Mon, 3 Feb 2020 08:59:45 +0000 (10:59 +0200)]
plugins: push-notification: Only emit event if something was triggered
Otherwise events would be sent from non-push transactions, such
as mail searches.
Aki Tuomi [Sun, 2 Feb 2020 18:40:32 +0000 (20:40 +0200)]
push-notification: Don't send event on failure
If transaction was rolled back, don't send event.
Aki Tuomi [Sun, 2 Feb 2020 18:09:03 +0000 (20:09 +0200)]
push-notification: Use transaction event in HTTP request
Stephan Bosch [Sun, 1 Dec 2019 10:32:24 +0000 (11:32 +0100)]
plugins: push-notification: Reformat push-notification-txn-msg.h.
Stephan Bosch [Sun, 1 Dec 2019 10:32:17 +0000 (11:32 +0100)]
plugins: push-notification: Reformat push-notification-txn-msg.c.
Stephan Bosch [Sun, 1 Dec 2019 10:32:09 +0000 (11:32 +0100)]
plugins: push-notification: Reformat push-notification-txn-mbox.h.
Stephan Bosch [Sun, 1 Dec 2019 10:32:04 +0000 (11:32 +0100)]
plugins: push-notification: Reformat push-notification-txn-mbox.c.
Stephan Bosch [Sun, 1 Dec 2019 10:31:48 +0000 (11:31 +0100)]
plugins: push-notification: Reformat push-notification-triggers.h.
Stephan Bosch [Sun, 1 Dec 2019 10:31:44 +0000 (11:31 +0100)]
plugins: push-notification: Reformat push-notification-triggers.c.
Stephan Bosch [Sun, 1 Dec 2019 10:31:25 +0000 (11:31 +0100)]
plugins: push-notification: Reformat push-notification-plugin.c.
Stephan Bosch [Sun, 1 Dec 2019 10:30:32 +0000 (11:30 +0100)]
plugins: push-notification: Reformat push-notification-events.h.
Stephan Bosch [Sun, 1 Dec 2019 10:30:27 +0000 (11:30 +0100)]
plugins: push-notification: Reformat push-notification-events.c.
Stephan Bosch [Sun, 1 Dec 2019 10:30:14 +0000 (11:30 +0100)]
plugins: push-notification: Reformat push-notification-events-rfc5423.h.
Stephan Bosch [Sun, 1 Dec 2019 10:30:09 +0000 (11:30 +0100)]
plugins: push-notification: Reformat push-notification-events-rfc5423.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:44 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messagetrash.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:41 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messagetrash.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:28 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messageread.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:23 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messageread.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:10 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messagenew.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:06 +0000 (11:29 +0100)]
plugins: push-notification: Reformat push-notification-event-messagenew.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:46 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-messageexpunge.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:42 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-messageexpunge.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:27 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-messageappend.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:22 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-messageappend.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:07 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-message-common.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:02 +0000 (11:28 +0100)]
plugins: push-notification: Reformat push-notification-event-message-common.c.
Stephan Bosch [Sun, 1 Dec 2019 10:27:35 +0000 (11:27 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.h.
Stephan Bosch [Sun, 1 Dec 2019 10:27:29 +0000 (11:27 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.c.
Stephan Bosch [Sun, 1 Dec 2019 10:27:17 +0000 (11:27 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxsubscribe.h.
Stephan Bosch [Sun, 1 Dec 2019 10:27:05 +0000 (11:27 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxsubscribe.c.
Stephan Bosch [Sun, 1 Dec 2019 10:26:41 +0000 (11:26 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxrename.h.
Stephan Bosch [Sun, 1 Dec 2019 10:26:35 +0000 (11:26 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxrename.c.
Stephan Bosch [Sun, 1 Dec 2019 10:26:18 +0000 (11:26 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxdelete.h.
Stephan Bosch [Sun, 1 Dec 2019 10:26:13 +0000 (11:26 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxdelete.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:55 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxcreate.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:50 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-mailboxcreate.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:31 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-flagsset.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:22 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-flagsset.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:09 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-flagsclear.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:03 +0000 (11:25 +0100)]
plugins: push-notification: Reformat push-notification-event-flagsclear.c.
Stephan Bosch [Sun, 1 Dec 2019 10:24:28 +0000 (11:24 +0100)]
plugins: push-notification: Reformat push-notification-drivers.h.
Stephan Bosch [Sun, 1 Dec 2019 10:24:19 +0000 (11:24 +0100)]
plugins: push-notification: Reformat push-notification-drivers.c.
Stephan Bosch [Sun, 1 Dec 2019 10:24:04 +0000 (11:24 +0100)]
plugins: push-notification: Reformat push-notification-driver-ox.c.
Stephan Bosch [Sun, 1 Dec 2019 10:23:55 +0000 (11:23 +0100)]
plugins: push-notification: Reformat push-notification-driver-lua.c.
Stephan Bosch [Sun, 1 Dec 2019 10:23:39 +0000 (11:23 +0100)]
plugins: push-notification: Reformat push-notification-driver-dlog.c.
Timo Sirainen [Tue, 4 Feb 2020 16:56:28 +0000 (18:56 +0200)]
lib: Timeouts may have been run a bit too early
The timeout was run early if it was to be run in less than 1 millisecond.
This could have resulted in an infinite loop in some special situations
when timeout_add_absolute() was used in a timeout callback.
Timo Sirainen [Mon, 3 Feb 2020 10:57:52 +0000 (12:57 +0200)]
lib: Add i_nanoseconds() and i_microseconds()
Timo Sirainen [Fri, 24 Jan 2020 21:36:52 +0000 (23:36 +0200)]
global: Replace the rest of the gettimeofday() calls with i_gettimeofday()
It can't practically fail, so don't keep error handling that is never
tested.
Timo Sirainen [Fri, 24 Jan 2020 21:33:05 +0000 (23:33 +0200)]
global: Replace most gettimeofday() calls with i_gettimeofday()
Replace the ones where error handling is:
* Nonexistent
* i_fatal()
* i_panic()
Timo Sirainen [Fri, 24 Jan 2020 21:27:09 +0000 (23:27 +0200)]
lib: Add i_gettimeofday()
Stephan Bosch [Sun, 13 Jan 2019 22:34:14 +0000 (23:34 +0100)]
lib-program-client: Allocate string settings on the client pool.
Before, it assumed the strings to be durably allocated externally, which is very
risky.
Stephan Bosch [Sun, 13 Jan 2019 22:17:54 +0000 (23:17 +0100)]
lib-smtp: client: transaction: Prevent NULL dereference in smtp_client_transaction_unref().
The trans pointer is used before it is checked for being NULL, which is allowed
for this function.
Problem found by Coverity.
Timo Sirainen [Sat, 25 Jan 2020 14:25:04 +0000 (16:25 +0200)]
lib-index: Explicitly ignore mail_index_cancel_flag_updates() return value
Makes static analyzers happier.
Aki Tuomi [Thu, 23 Jan 2020 08:45:35 +0000 (10:45 +0200)]
lib-mail: Initialize start_pos in message_header_decode_encoded
Satisfies static analyzers
Aki Tuomi [Thu, 23 Jan 2020 08:44:28 +0000 (10:44 +0200)]
lib-program-client: Ensure set is not NULL in program_client_init
Would cause crash otherwise.
Found by coverity.
Aki Tuomi [Thu, 23 Jan 2020 08:42:20 +0000 (10:42 +0200)]
doveadm: doveadm-mail-mailbox-metadata - Handle error in doveadm_print_istream
Found by coverity
Aki Tuomi [Thu, 23 Jan 2020 08:33:17 +0000 (10:33 +0200)]
lib-smtp: Remove double-assign of passthrough event
Found by coverity
Aki Tuomi [Thu, 23 Jan 2020 07:57:26 +0000 (09:57 +0200)]
doveadm: doveadm-sis - Ensure buf2 is not overrun
Satisfies static analysers.
Aki Tuomi [Thu, 23 Jan 2020 07:54:44 +0000 (09:54 +0200)]
lib-mail: Add assert to ensure we don't overstep in input_idx_need_encoding
Satisfies static analysers.
Aki Tuomi [Thu, 23 Jan 2020 07:20:25 +0000 (09:20 +0200)]
lib-http: Fix memory leak in http_server_response_add_permanent_header
Key and value is duplicated twice and the first duplicates are
discarded without freeing.
Found by coverity.
Timo Sirainen [Fri, 17 Jan 2020 09:30:53 +0000 (11:30 +0200)]
lib: Assert-crash on i_rand_limit(0) and add unit tests
Timo Sirainen [Wed, 12 Sep 2018 13:30:32 +0000 (16:30 +0300)]
lib: event_filter_match() - "field=" filter now matches nonexistent field
This makes sense, because event_filter_clear() also works by adding an empty
value to the event. So it wouldn't even be possible to differentiate between
empty and nonexistent fields unless larger changes were made.
Stephan Bosch [Sat, 27 Jul 2019 21:33:22 +0000 (23:33 +0200)]
lib-smtp: smtp-client-transaction - Fix immediate transaction to wait until the connection is ready.
A transaction with the immediate mode enabled did not wait and started to submit
commands too early; i.e., before an EHLO reply is received. This means that
the first MAIL command is always sent bare without any extensions and the XCLIENT
command is not sent when it is deferred (e.g. for submission).
Timo Sirainen [Mon, 27 Jan 2020 20:52:51 +0000 (22:52 +0200)]
lib-index: Fix potential assert-crash when refreshing index without any views
This is similar to the previous fix. If there are no references to the log
file head, refreshing the index will result in assert-crash.
This seems to have happened in some very rare situations. Mainly found it
via the unit test though.
Fixes:
Panic: file mail-transaction-log.c: line 25 (mail_transaction_log_set_head): assertion failed: (log->files != NULL)
Timo Sirainen [Mon, 27 Jan 2020 10:35:10 +0000 (12:35 +0200)]
lib-index: Add unit test for log rotation during commit
Timo Sirainen [Fri, 20 Sep 2019 12:48:10 +0000 (15:48 +0300)]
lib-index: Fix potential assert-crash when rotating log file
Unlock the old head file before attempting to clean it. Fixes:
Panic: file mail-transaction-log.c: line 229 (mail_transaction_logs_clean): assertion failed: (!file->locked || file->refcount > 0)
This seems to only have happened during new obox index merging.
Timo Sirainen [Mon, 27 Jan 2020 10:11:13 +0000 (12:11 +0200)]
lib-index: Add test-mail-index.h for easily doing init/deinit for mail_index
Timo Sirainen [Fri, 6 Sep 2019 09:09:58 +0000 (12:09 +0300)]
lib-mail: Parse multiple address headers the same as if they were in a single header
This is better from security point of view.
Timo Sirainen [Mon, 9 Sep 2019 16:16:19 +0000 (19:16 +0300)]
lib-storage: Make sure ENVELOPE parsing isn't done twice concurrently
If save_envelope=TRUE and ENVELOPE headers aren't already in cache,
header_cache_callback() starts parsing the ENVELOPE. But
imap_envelope_parse_callback() does it as well, so the envelope parsing is
done concurrently by the two callbacks.
Also once the ENVELOPE parsing is done once, make sure it's not done again
if the header is parsed again.
This didn't cause any problems so far, but it fixes the following commit to
work correctly.
Timo Sirainen [Thu, 28 Nov 2019 17:38:10 +0000 (19:38 +0200)]
lazy-expunge: Add MAIL_FETCH_REFCOUNT to mail's wanted_fields
The mail is reused by the search query, so the next mail_prefetch() can try
to prefetch the refcount.
Stephan Bosch [Thu, 16 Jan 2020 23:36:54 +0000 (00:36 +0100)]
lib: event-log.c - Ensure checks for enabling debug logging are always run.
Sina Tavakoli [Tue, 21 Jan 2020 15:03:00 +0000 (17:03 +0200)]
doc: Add man page for dovecot-sysreport
Sina Tavakoli [Wed, 15 Jan 2020 09:40:24 +0000 (11:40 +0200)]
util: Add a script to gather system information in an archive for report purpose.
Timo Sirainen [Fri, 24 Jan 2020 10:33:14 +0000 (12:33 +0200)]
lib-fs: Create fs.event earlier so it's available in fs_init() code
Timo Sirainen [Wed, 15 Jan 2020 13:46:47 +0000 (15:46 +0200)]
acl: Fix accessing attributes when mailbox had no READ rights
It's enough to have one of the other rights.
Timo Sirainen [Wed, 15 Jan 2020 13:35:26 +0000 (15:35 +0200)]
lib-storage, imap, doveadm: Add and use MAILBOX_FLAG_ATTRIBUTE_SESSION
Timo Sirainen [Wed, 15 Jan 2020 13:45:21 +0000 (15:45 +0200)]
acl: Improve attribute rights check error handling
Timo Sirainen [Wed, 15 Jan 2020 13:43:11 +0000 (15:43 +0200)]
acl: Move attribute rights checking to its own function
Timo Sirainen [Tue, 14 Jan 2020 12:58:05 +0000 (14:58 +0200)]
lib-imap-storage, doveadm: Ignore INBOX ACLs when accessing server metadata
The server metadata is always accessible. INBOX's ACLs aren't relevant,
even though internally for now we're using INBOX for storing the server
metadata.
Timo Sirainen [Wed, 15 Jan 2020 13:40:41 +0000 (15:40 +0200)]
lib-storage, acl: Fix error trying to open autocreated mailbox without CREATE rights
The opening should fail with a regular error message rather than "internal
server error". Also no error message should be logged in this situation.
Timo Sirainen [Sat, 9 Nov 2019 08:49:47 +0000 (10:49 +0200)]
dns, login-common, stats: Finish service initialization later
This way if there's a crash in the init code, master will start throttling
the service.
Stephan Bosch [Thu, 12 Dec 2019 08:31:48 +0000 (09:31 +0100)]
submission-login: submission-proxy - Properly encode XCLIENT command arguments.
Stephan Bosch [Thu, 12 Dec 2019 08:31:48 +0000 (09:31 +0100)]
submission-login: submission-proxy - Compose XCLIENT forward argument in a separate function.
Stephan Bosch [Thu, 12 Dec 2019 08:38:51 +0000 (09:38 +0100)]
submission-login: Reformat submission-proxy.c.
Timo Sirainen [Wed, 11 Dec 2019 13:05:50 +0000 (15:05 +0200)]
lib-smtp: server: Fix copying xclient_extensions settings
smtp_server_connection didn't properly copy the xclient_extensions settings
from the smtp_server. In fact it did the opposite of recreating the server
settings using the connection pool. Later on after the connection was freed
and another connection created this could result in crashes.
Timo Sirainen [Thu, 24 Oct 2019 08:43:58 +0000 (11:43 +0300)]
lib-imap: imap_write_arg() - minor optimization to IMAP_ARG_STRING
Avoid unnecessarily using data stack.
Also add unit tests to imap_write_arg().
Timo Sirainen [Tue, 21 Jan 2020 13:59:51 +0000 (15:59 +0200)]
lib-fs: Add errno parameter to fs_set_error() change callers to use it.
This is now explicit so it can't be forgotten accidentally. Fixes several
bugs where errno wasn't set on error conditions, which could have caused
callers to handle the error wrong.
Timo Sirainen [Tue, 21 Jan 2020 13:54:42 +0000 (15:54 +0200)]
lib-fs: Use fs_set_error_errno() where appropriate
Timo Sirainen [Tue, 21 Jan 2020 13:50:07 +0000 (15:50 +0200)]
lib-fs: Add fs_set_error_errno()
This is in preparation for adding errno parameter for fs_set_error().
Siavash Tavakoli [Mon, 13 Jan 2020 09:50:51 +0000 (11:50 +0200)]
doc: example-config: Add documentation for "revision" field in imap_id_send
Siavash Tavakoli [Mon, 9 Dec 2019 11:58:50 +0000 (13:58 +0200)]
lib-imap: Add revision field for ID command
Returns short commit ID of the revision dovecot was built from.
Timo Sirainen [Mon, 20 Jan 2020 14:15:41 +0000 (16:15 +0200)]
lib-fs: Fix event leak when EAGAIN error is logged via fs_set_error()
Broken by
f7aafd832151dd34e28cb1bba214accf9b15d908