]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
5 years agolib-smtp: smtp-command-parser - Fix infinite loop occurring when command stream ends...
Stephan Bosch [Tue, 14 Jan 2020 09:49:16 +0000 (10:49 +0100)] 
lib-smtp: smtp-command-parser - Fix infinite loop occurring when command stream ends in UTF-8 character.

Broken by 8f08f1944be438a2422b604c08e5060b5c7bd72f.

5 years agoman: doveadm-sync - Fix message UID in example
Uli Martens [Thu, 30 Jan 2020 15:34:35 +0000 (16:34 +0100)] 
man: doveadm-sync - Fix message UID in example

5 years agom4: dovecot.m4 - It's Schridde, not Schridded
Aki Tuomi [Fri, 7 Feb 2020 09:42:37 +0000 (11:42 +0200)] 
m4: dovecot.m4 - It's Schridde, not Schridded

Mistakenly changed in a50212d6827

5 years agodovecot.m4: Bump serial
Aki Tuomi [Fri, 17 Jan 2020 07:42:51 +0000 (09:42 +0200)] 
dovecot.m4: Bump serial

5 years agodovecot.m4: Add --with-retpoline
Aki Tuomi [Fri, 17 Jan 2020 07:42:07 +0000 (09:42 +0200)] 
dovecot.m4: Add --with-retpoline

Makes retpoline optional.

5 years agodovecot.m4: Split retpoline check into parts
Aki Tuomi [Fri, 17 Jan 2020 07:35:44 +0000 (09:35 +0200)] 
dovecot.m4: Split retpoline check into parts

5 years agoimap: expunge: Expunge \Deleted mails in batches of 1000
Josef 'Jeff' Sipek [Tue, 4 Feb 2020 17:32:59 +0000 (12:32 -0500)] 
imap: expunge: Expunge \Deleted mails in batches of 1000

5 years agoimap: expunge: Collect all \Deleted mails' seqs and then expunge them
Josef 'Jeff' Sipek [Tue, 4 Feb 2020 17:10:45 +0000 (12:10 -0500)] 
imap: expunge: Collect all \Deleted mails' seqs and then expunge them

This makes the following commit much more understandable.

5 years agoimap: move: Send untagged OK/COPYUID also when the move succeeded partially
Timo Sirainen [Fri, 24 Jan 2020 09:43:56 +0000 (11:43 +0200)] 
imap: move: Send untagged OK/COPYUID also when the move succeeded partially

If at least one transactions was successfully committed, something was
moved. Even if another transaction failed later on and the MOVE command
fails with NO, send the untagged OK/COPYUID which describes which mails
were successfully moved.

5 years agoimap: copy/move: Move code to cmd_move_send_untagged()
Timo Sirainen [Fri, 24 Jan 2020 09:43:20 +0000 (11:43 +0200)] 
imap: copy/move: Move code to cmd_move_send_untagged()

5 years agoimap: copy/move: Fix error handling when source transaction/search fails
Timo Sirainen [Mon, 16 Dec 2019 12:08:58 +0000 (14:08 +0200)] 
imap: copy/move: Fix error handling when source transaction/search fails

Previously the destination storage was used for getting the error. If the
source and destination storages were different, this resulted in getting a
wrong error.

5 years agoimap: Add client_send_error()
Timo Sirainen [Mon, 16 Dec 2019 11:51:50 +0000 (13:51 +0200)] 
imap: Add client_send_error()

5 years agoimap: move: Commit transactions every 1000 mails
Timo Sirainen [Mon, 16 Dec 2019 09:38:04 +0000 (11:38 +0200)] 
imap: move: Commit transactions every 1000 mails

5 years agoimap: Add imap_search_seqset_iter_*() API for batched iteration of a seqset
Timo Sirainen [Tue, 4 Feb 2020 15:20:15 +0000 (17:20 +0200)] 
imap: Add imap_search_seqset_iter_*() API for batched iteration of a seqset

5 years agoimap: copy/move: Handle transaction commit changes within fetch_and_copy()
Timo Sirainen [Thu, 12 Dec 2019 14:36:13 +0000 (16:36 +0200)] 
imap: copy/move: Handle transaction commit changes within fetch_and_copy()

This prepares to support multiple destination transactions.

5 years agoimap: copy/move: Move copy_update_trashed() earlier
Timo Sirainen [Thu, 12 Dec 2019 14:35:46 +0000 (16:35 +0200)] 
imap: copy/move: Move copy_update_trashed() earlier

5 years agoimap: copy/move: Refactor to use struct cmd_copy_context
Timo Sirainen [Thu, 12 Dec 2019 14:25:30 +0000 (16:25 +0200)] 
imap: copy/move: Refactor to use struct cmd_copy_context

5 years agolib: Add seq_range_array_merge_n()
Timo Sirainen [Thu, 23 Jan 2020 16:31:01 +0000 (18:31 +0200)] 
lib: Add seq_range_array_merge_n()

5 years agolib-storage: Autoexpunge mails in batches of 1000
Josef 'Jeff' Sipek [Mon, 13 Jan 2020 13:34:44 +0000 (08:34 -0500)] 
lib-storage: Autoexpunge mails in batches of 1000

5 years agolib-storage: Move mail autoexpunge loop into a helper function
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.

5 years agoimap: Implement the STATUS=SIZE capability.
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.

5 years agoimap: Restructure handling of the STATUS response so that it uses its own flags for...
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.

5 years agodict-redis: Add missing dict_wait()
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.

5 years agoplugins: push-notification: Include mailbox field
Aki Tuomi [Mon, 3 Feb 2020 10:15:49 +0000 (12:15 +0200)] 
plugins: push-notification: Include mailbox field

5 years agoplugins: push-notification: Only emit event if something was triggered
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.

5 years agopush-notification: Don't send event on failure
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.

5 years agopush-notification: Use transaction event in HTTP request
Aki Tuomi [Sun, 2 Feb 2020 18:09:03 +0000 (20:09 +0200)] 
push-notification: Use transaction event in HTTP request

5 years agoplugins: push-notification: Reformat push-notification-txn-msg.h.
Stephan Bosch [Sun, 1 Dec 2019 10:32:24 +0000 (11:32 +0100)] 
plugins: push-notification: Reformat push-notification-txn-msg.h.

5 years agoplugins: push-notification: Reformat push-notification-txn-msg.c.
Stephan Bosch [Sun, 1 Dec 2019 10:32:17 +0000 (11:32 +0100)] 
plugins: push-notification: Reformat push-notification-txn-msg.c.

5 years agoplugins: push-notification: Reformat push-notification-txn-mbox.h.
Stephan Bosch [Sun, 1 Dec 2019 10:32:09 +0000 (11:32 +0100)] 
plugins: push-notification: Reformat push-notification-txn-mbox.h.

5 years agoplugins: push-notification: Reformat push-notification-txn-mbox.c.
Stephan Bosch [Sun, 1 Dec 2019 10:32:04 +0000 (11:32 +0100)] 
plugins: push-notification: Reformat push-notification-txn-mbox.c.

5 years agoplugins: push-notification: Reformat push-notification-triggers.h.
Stephan Bosch [Sun, 1 Dec 2019 10:31:48 +0000 (11:31 +0100)] 
plugins: push-notification: Reformat push-notification-triggers.h.

5 years agoplugins: push-notification: Reformat push-notification-triggers.c.
Stephan Bosch [Sun, 1 Dec 2019 10:31:44 +0000 (11:31 +0100)] 
plugins: push-notification: Reformat push-notification-triggers.c.

5 years agoplugins: push-notification: Reformat push-notification-plugin.c.
Stephan Bosch [Sun, 1 Dec 2019 10:31:25 +0000 (11:31 +0100)] 
plugins: push-notification: Reformat push-notification-plugin.c.

5 years agoplugins: push-notification: Reformat push-notification-events.h.
Stephan Bosch [Sun, 1 Dec 2019 10:30:32 +0000 (11:30 +0100)] 
plugins: push-notification: Reformat push-notification-events.h.

5 years agoplugins: push-notification: Reformat push-notification-events.c.
Stephan Bosch [Sun, 1 Dec 2019 10:30:27 +0000 (11:30 +0100)] 
plugins: push-notification: Reformat push-notification-events.c.

5 years agoplugins: push-notification: Reformat push-notification-events-rfc5423.h.
Stephan Bosch [Sun, 1 Dec 2019 10:30:14 +0000 (11:30 +0100)] 
plugins: push-notification: Reformat push-notification-events-rfc5423.h.

5 years agoplugins: push-notification: Reformat push-notification-events-rfc5423.c.
Stephan Bosch [Sun, 1 Dec 2019 10:30:09 +0000 (11:30 +0100)] 
plugins: push-notification: Reformat push-notification-events-rfc5423.c.

5 years agoplugins: push-notification: Reformat push-notification-event-messagetrash.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:44 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messagetrash.h.

5 years agoplugins: push-notification: Reformat push-notification-event-messagetrash.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:41 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messagetrash.c.

5 years agoplugins: push-notification: Reformat push-notification-event-messageread.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:28 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageread.h.

5 years agoplugins: push-notification: Reformat push-notification-event-messageread.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:23 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageread.c.

5 years agoplugins: push-notification: Reformat push-notification-event-messagenew.h.
Stephan Bosch [Sun, 1 Dec 2019 10:29:10 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messagenew.h.

5 years agoplugins: push-notification: Reformat push-notification-event-messagenew.c.
Stephan Bosch [Sun, 1 Dec 2019 10:29:06 +0000 (11:29 +0100)] 
plugins: push-notification: Reformat push-notification-event-messagenew.c.

5 years agoplugins: push-notification: Reformat push-notification-event-messageexpunge.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:46 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageexpunge.h.

5 years agoplugins: push-notification: Reformat push-notification-event-messageexpunge.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:42 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageexpunge.c.

5 years agoplugins: push-notification: Reformat push-notification-event-messageappend.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:27 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageappend.h.

5 years agoplugins: push-notification: Reformat push-notification-event-messageappend.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:22 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-messageappend.c.

5 years agoplugins: push-notification: Reformat push-notification-event-message-common.h.
Stephan Bosch [Sun, 1 Dec 2019 10:28:07 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-message-common.h.

5 years agoplugins: push-notification: Reformat push-notification-event-message-common.c.
Stephan Bosch [Sun, 1 Dec 2019 10:28:02 +0000 (11:28 +0100)] 
plugins: push-notification: Reformat push-notification-event-message-common.c.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.h.
Stephan Bosch [Sun, 1 Dec 2019 10:27:35 +0000 (11:27 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.h.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.c.
Stephan Bosch [Sun, 1 Dec 2019 10:27:29 +0000 (11:27 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxunsubscribe.c.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxsubscribe.h.
Stephan Bosch [Sun, 1 Dec 2019 10:27:17 +0000 (11:27 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxsubscribe.h.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxsubscribe.c.
Stephan Bosch [Sun, 1 Dec 2019 10:27:05 +0000 (11:27 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxsubscribe.c.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxrename.h.
Stephan Bosch [Sun, 1 Dec 2019 10:26:41 +0000 (11:26 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxrename.h.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxrename.c.
Stephan Bosch [Sun, 1 Dec 2019 10:26:35 +0000 (11:26 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxrename.c.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxdelete.h.
Stephan Bosch [Sun, 1 Dec 2019 10:26:18 +0000 (11:26 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxdelete.h.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxdelete.c.
Stephan Bosch [Sun, 1 Dec 2019 10:26:13 +0000 (11:26 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxdelete.c.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxcreate.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:55 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxcreate.h.

5 years agoplugins: push-notification: Reformat push-notification-event-mailboxcreate.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:50 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-mailboxcreate.c.

5 years agoplugins: push-notification: Reformat push-notification-event-flagsset.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:31 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-flagsset.h.

5 years agoplugins: push-notification: Reformat push-notification-event-flagsset.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:22 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-flagsset.c.

5 years agoplugins: push-notification: Reformat push-notification-event-flagsclear.h.
Stephan Bosch [Sun, 1 Dec 2019 10:25:09 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-flagsclear.h.

5 years agoplugins: push-notification: Reformat push-notification-event-flagsclear.c.
Stephan Bosch [Sun, 1 Dec 2019 10:25:03 +0000 (11:25 +0100)] 
plugins: push-notification: Reformat push-notification-event-flagsclear.c.

5 years agoplugins: push-notification: Reformat push-notification-drivers.h.
Stephan Bosch [Sun, 1 Dec 2019 10:24:28 +0000 (11:24 +0100)] 
plugins: push-notification: Reformat push-notification-drivers.h.

5 years agoplugins: push-notification: Reformat push-notification-drivers.c.
Stephan Bosch [Sun, 1 Dec 2019 10:24:19 +0000 (11:24 +0100)] 
plugins: push-notification: Reformat push-notification-drivers.c.

5 years agoplugins: push-notification: Reformat push-notification-driver-ox.c.
Stephan Bosch [Sun, 1 Dec 2019 10:24:04 +0000 (11:24 +0100)] 
plugins: push-notification: Reformat push-notification-driver-ox.c.

5 years agoplugins: push-notification: Reformat push-notification-driver-lua.c.
Stephan Bosch [Sun, 1 Dec 2019 10:23:55 +0000 (11:23 +0100)] 
plugins: push-notification: Reformat push-notification-driver-lua.c.

5 years agoplugins: push-notification: Reformat push-notification-driver-dlog.c.
Stephan Bosch [Sun, 1 Dec 2019 10:23:39 +0000 (11:23 +0100)] 
plugins: push-notification: Reformat push-notification-driver-dlog.c.

5 years agolib: Timeouts may have been run a bit too early
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.

5 years agolib: Add i_nanoseconds() and i_microseconds()
Timo Sirainen [Mon, 3 Feb 2020 10:57:52 +0000 (12:57 +0200)] 
lib: Add i_nanoseconds() and i_microseconds()

5 years agoglobal: Replace the rest of the gettimeofday() calls with i_gettimeofday()
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.

5 years agoglobal: Replace most gettimeofday() calls with i_gettimeofday()
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()

5 years agolib: Add i_gettimeofday()
Timo Sirainen [Fri, 24 Jan 2020 21:27:09 +0000 (23:27 +0200)] 
lib: Add i_gettimeofday()

5 years agolib-program-client: Allocate string settings on the client pool.
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.

5 years agolib-smtp: client: transaction: Prevent NULL dereference in smtp_client_transaction_un...
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.

5 years agolib-index: Explicitly ignore mail_index_cancel_flag_updates() return value
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.

5 years agolib-mail: Initialize start_pos in message_header_decode_encoded
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

5 years agolib-program-client: Ensure set is not NULL in program_client_init
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.

5 years agodoveadm: doveadm-mail-mailbox-metadata - Handle error in doveadm_print_istream
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

5 years agolib-smtp: Remove double-assign of passthrough event
Aki Tuomi [Thu, 23 Jan 2020 08:33:17 +0000 (10:33 +0200)] 
lib-smtp: Remove double-assign of passthrough event

Found by coverity

5 years agodoveadm: doveadm-sis - Ensure buf2 is not overrun
Aki Tuomi [Thu, 23 Jan 2020 07:57:26 +0000 (09:57 +0200)] 
doveadm: doveadm-sis - Ensure buf2 is not overrun

Satisfies static analysers.

5 years agolib-mail: Add assert to ensure we don't overstep in input_idx_need_encoding
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.

5 years agolib-http: Fix memory leak in http_server_response_add_permanent_header
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.

5 years agolib: Assert-crash on i_rand_limit(0) and add unit tests
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

5 years agolib: event_filter_match() - "field=" filter now matches nonexistent field
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.

5 years agolib-smtp: smtp-client-transaction - Fix immediate transaction to wait until the conne...
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).

5 years agolib-index: Fix potential assert-crash when refreshing index without any views
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)

5 years agolib-index: Add unit test for log rotation during commit
Timo Sirainen [Mon, 27 Jan 2020 10:35:10 +0000 (12:35 +0200)] 
lib-index: Add unit test for log rotation during commit

5 years agolib-index: Fix potential assert-crash when rotating log file
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.

5 years agolib-index: Add test-mail-index.h for easily doing init/deinit for mail_index
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

5 years agolib-mail: Parse multiple address headers the same as if they were in a single header
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.

5 years agolib-storage: Make sure ENVELOPE parsing isn't done twice concurrently
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.

5 years agolazy-expunge: Add MAIL_FETCH_REFCOUNT to mail's wanted_fields
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.

5 years agolib: event-log.c - Ensure checks for enabling debug logging are always run.
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.

5 years agodoc: Add man page for dovecot-sysreport
Sina Tavakoli [Tue, 21 Jan 2020 15:03:00 +0000 (17:03 +0200)] 
doc: Add man page for dovecot-sysreport

5 years agoutil: Add a script to gather system information in an archive for report purpose.
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.

5 years agolib-fs: Create fs.event earlier so it's available in fs_init() code
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

5 years agoacl: Fix accessing attributes when mailbox had no READ rights
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.

5 years agolib-storage, imap, doveadm: Add and use MAILBOX_FLAG_ATTRIBUTE_SESSION
Timo Sirainen [Wed, 15 Jan 2020 13:35:26 +0000 (15:35 +0200)] 
lib-storage, imap, doveadm: Add and use MAILBOX_FLAG_ATTRIBUTE_SESSION