]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Mon, 11 Nov 2024 12:45:39 +0000 (14:45 +0200)]
configure.ac: Fix generating DOVECOT_CONFIG_VERSION
Timo Sirainen [Fri, 8 Nov 2024 08:59:10 +0000 (10:59 +0200)]
configure.ac, config: Change supported config versions to work based on PACKAGE_VERSION
For git this means 0.0.0, but the supported versions still include hardcoded
2.4.0 / 3.0.0, which can be used.
Timo Sirainen [Wed, 30 Oct 2024 07:59:10 +0000 (09:59 +0200)]
lib-lua: Fix lua library dependencies when building --without-shared-libs
Linking against libdlua didn't automatically link with liblua, causing
lua plugin loading to fail.
Timo Sirainen [Tue, 29 Oct 2024 09:25:32 +0000 (11:25 +0200)]
lib: istream-concat - Fix potential hang when reaching max buffer size
Timo Sirainen [Tue, 29 Oct 2024 09:22:27 +0000 (11:22 +0200)]
imap: Fix potential hang when client sends too long line
Timo Sirainen [Tue, 29 Oct 2024 09:20:02 +0000 (11:20 +0200)]
imap: Fix potential hang when client sends too long APPEND line
Timo Sirainen [Tue, 29 Oct 2024 08:36:43 +0000 (10:36 +0200)]
imap: Fix potential hang/assert-crash when client sends too long line
If client sent some commands pipelined, followed by a command with too long
line, the previous commands' tagged replies weren't sent. This caused it to
hang until more input was received. After that it crashed.
Fixes:
Panic: file imap-client.c: line 1098 (client_check_command_hangs): assertion failed: (!have_wait_unfinished || unfinished_count > 0)
Arnt Gulbrandsen [Thu, 5 Sep 2024 06:35:13 +0000 (09:35 +0300)]
lib-smtp: Fix UTF-8 local-parts
fundawang [Sun, 27 Oct 2024 14:11:21 +0000 (22:11 +0800)]
configure: Explicitly check for icu-uc
Ensure we link against libicu-uc when it's split in v76.
Timo Sirainen [Wed, 23 Oct 2024 07:42:35 +0000 (10:42 +0300)]
lib-index: Fix potential crash after resetting index
The log's sync_offset wasn't updated after the reset if there were no other
changes. This ended up in a broken state in
mail_transaction_log_append_locked() where it thought there was garbage at
the end of the transaction log, and crashed trying to truncate it.
Markus Valentin [Wed, 2 Oct 2024 08:18:07 +0000 (10:18 +0200)]
imapc: If a shared namespace INBOX is listed as \Noselect enforce it
In specific configurations a shared namespace INBOX is listed as
\Noselect
* LIST (\HasChildren) "/" shared/user
* LIST (\HasChildren \Noselect) "/" shared/user/INBOX
This is fixed by adding this extra check.
Timo Sirainen [Thu, 17 Oct 2024 09:15:08 +0000 (12:15 +0300)]
dsync: Fix potential crash when handling mailbox renames
Fixes:
Panic: file dsync-mailbox-tree-sync.c: line 575 (node_mailbox_trees_cmp): assertion failed: (ret != 0)
Timo Sirainen [Mon, 14 Oct 2024 05:49:37 +0000 (08:49 +0300)]
lib-storage: Mailbox list rebuild - avoid opening mailbox on recovery name collision
If recovered-lost-folder-$guid already unexpectedly exists, there's no need
to open it (at this point) to try to recover its name. This didn't really harm
anything, so it mainly fixes the code logic to make sense.
Timo Sirainen [Mon, 14 Oct 2024 09:53:33 +0000 (12:53 +0300)]
imap: Fix potential hang/crash when unhibernating
This fixes two potential bugs:
a) Unhibernation is triggered by new mailbox changes. While sending these
to IMAP client, Dovecot notices that the client has disconnected. The
process will stay IDLEing for 30 minutes until it gets disconnected with
"Disconnected: Inactivity - no input for 1800 secs"
b) Unhibernation is triggered by DONE command with some further pipelined
commands. During unhibernation new mailbox changes are noticed, and
again IMAP client is found to be disconnected while sending the changes.
This causes a segfault.
Karl Fleischmann [Thu, 10 Oct 2024 14:41:25 +0000 (16:41 +0200)]
doveadm: doveadm-print-json - Prevent crash on subsequent user prints
Move closing the final json array delimiter to the deinitialization
routine instead of on flush.
Aki Tuomi [Wed, 9 Oct 2024 06:22:00 +0000 (09:22 +0300)]
lib-dcrypt: Ensure bd is not used uninitialized in store_jwk_key()
Timo Sirainen [Tue, 8 Oct 2024 08:58:22 +0000 (11:58 +0300)]
Makefile: Fix LIBDOVECOT_OPENSSL for installed dovecot-config file
Timo Sirainen [Fri, 4 Oct 2024 07:39:07 +0000 (10:39 +0300)]
lib-http, lib-smtp: unit tests - Make sure expected DNS lookup failures will fail
Use ".invalid" suffix just to be safe. More importantly, use a trailing
dot to disable search domains.
Aki Tuomi [Tue, 1 Oct 2024 09:33:32 +0000 (12:33 +0300)]
doc: Remove strict library version requirement from solr-config-9.xml
Aki Tuomi [Mon, 30 Sep 2024 05:58:53 +0000 (08:58 +0300)]
doc: Use solr.install.dir in solr-config-9.xml
Removes hardcoded path
Timo Sirainen [Tue, 1 Oct 2024 07:58:38 +0000 (10:58 +0300)]
lib: test_hash - Reduce loop counts with valgrind to save time
Timo Sirainen [Tue, 1 Oct 2024 07:57:32 +0000 (10:57 +0300)]
lib: test_hash - Add missing test_begin()/test_end()
Timo Sirainen [Tue, 1 Oct 2024 07:53:33 +0000 (10:53 +0300)]
lib: istream-multiplex tests - Reduce loop counts with valgrind to save time
Timo Sirainen [Tue, 1 Oct 2024 07:51:00 +0000 (10:51 +0300)]
lib: base64 tests - Reduce loop counts with valgrind to save time
Timo Sirainen [Tue, 1 Oct 2024 07:50:41 +0000 (10:50 +0300)]
lib: test-hash-method - Skip "large input" test with valgrind to save time
Timo Sirainen [Tue, 1 Oct 2024 07:40:24 +0000 (10:40 +0300)]
run-test-valgrind.supp: Add leak suppression for fatal_ostream_file test
The test is supposed to panic while destroying ostream, so there's no way to
prevent the leak.
Aki Tuomi [Mon, 23 Sep 2024 21:03:40 +0000 (00:03 +0300)]
auth: Fix typo in ssl_ja3_hash field name
Fixes passing ssl_ja3_hash to a blocking passdb
Broken in
70baf893e85222d071d21cdd5ead546a905d477a
Timo Sirainen [Mon, 9 Jul 2018 14:29:31 +0000 (17:29 +0300)]
lib: test-ostream-file - Make sure lack of error handling panics
Timo Sirainen [Mon, 9 Jul 2018 13:23:10 +0000 (16:23 +0300)]
lib: o_stream_close() - Don't reset error checking on automatic flush
Otherwise it will be difficult to find missing o_stream_flush() calls.
The missing error handling would be found only when the flushing fails,
which would result in assert-crash.
This is how the code was originally intended to behave. Broken by
5ec4fc44e8d4e2160f07b1a7f4fce1ccfec3f6c1
Timo Sirainen [Tue, 24 Sep 2024 06:54:52 +0000 (09:54 +0300)]
imap: Ignore error handling for side channel output
Timo Sirainen [Tue, 24 Sep 2024 06:56:49 +0000 (09:56 +0300)]
lib-index: Ignore ostream errors when cache purging is aborted due to file too large
Timo Sirainen [Tue, 21 Sep 2021 21:26:26 +0000 (00:26 +0300)]
lib-smtp: test-smtp-client-errors - Add missing ostream finish
Timo Sirainen [Mon, 9 Jul 2018 14:41:57 +0000 (17:41 +0300)]
mbox: Fix ostream error handling in mbox_move()
o_stream_nsend_send_istream() needs to be followed by o_stream_flush().
It also detects the istream error.
Timo Sirainen [Mon, 9 Sep 2024 15:46:56 +0000 (18:46 +0300)]
virtual: Fix copying storage error on mail_precache() failure
Timo Sirainen [Mon, 9 Sep 2024 15:45:59 +0000 (18:45 +0300)]
fts: Don't ignore parent mail_precache() failure
Timo Sirainen [Tue, 17 Sep 2024 09:58:57 +0000 (12:58 +0300)]
dovecot.service.in: Add time-sync.target dependency
This way Dovecot won't be started before time has been synchronized.
systemd-time-wait-sync.service also needs to be enabled.
Aki Tuomi [Mon, 16 Sep 2024 10:54:39 +0000 (13:54 +0300)]
doc: Fix cp usage to be more portable when installing html docs
Aki Tuomi [Fri, 6 Sep 2024 12:06:21 +0000 (15:06 +0300)]
lib-dcrypt: Replace safe_memset() with buffer_clear_safe() for buffers
Aki Tuomi [Fri, 6 Sep 2024 12:00:33 +0000 (15:00 +0300)]
mail-crypt: Fix detecting chacha20-poly1305 in algorithm
Aki Tuomi [Fri, 6 Sep 2024 10:13:15 +0000 (13:13 +0300)]
lib-dcrypt: iostream - Support using same cipher algorithm for key encryption
Timo Sirainen [Fri, 6 Sep 2024 10:26:20 +0000 (13:26 +0300)]
lib-oauth2: Link dcrypt-openssl directly to unit test
This fixes an issue with runtime linking:
Error: No functional dcrypt backend found - skipping some tests:
Couldn't load required plugin libdcrypt_openssl.so: dlopen() failed:
libssl_iostream_openssl.so: undefined symbol: connection_is_valid_dns_name
Timo Sirainen [Fri, 6 Sep 2024 10:23:42 +0000 (13:23 +0300)]
lib-dcrypt: Build libdcrypt_openssl_static.la
Timo Sirainen [Fri, 6 Sep 2024 10:23:18 +0000 (13:23 +0300)]
lib-dcrypt: dcrypt-private.h - Fix dependencies when including directly
Timo Sirainen [Thu, 12 Sep 2024 12:39:38 +0000 (15:39 +0300)]
lib: Avoid wrongly thinking time moved forwards for larger ioloop wait times
Timo Sirainen [Wed, 11 Sep 2024 04:15:11 +0000 (07:15 +0300)]
lib: istream-failure-at - Never set readable_fd
Otherwise o_stream_send_istream() could bypass istream-failure-at's read()
by using sendfile().
Timo Sirainen [Fri, 6 Sep 2024 10:32:30 +0000 (13:32 +0300)]
lib-program-client: test-program-client-unix - Change to NULL initialization
This makes scan-build happy.
Timo Sirainen [Fri, 6 Sep 2024 12:08:35 +0000 (15:08 +0300)]
login-common, imap-login: Add proxy_no_multiplex passdb extra field
Timo Sirainen [Fri, 6 Sep 2024 07:28:45 +0000 (10:28 +0300)]
configure: Fix LIBDOVECOT_LUA for static builds
Timo Sirainen [Fri, 6 Sep 2024 07:22:20 +0000 (10:22 +0300)]
lib-lua: Build also libdlua.la
This can be used for static linking.
Timo Sirainen [Fri, 6 Sep 2024 07:18:55 +0000 (10:18 +0300)]
global: Makefile.am - Use LIBDOVECOT* variables where possible
It behaves differently when using static linking.
Timo Sirainen [Fri, 6 Sep 2024 06:50:12 +0000 (09:50 +0300)]
lib-dict-backend: Makefile.am - Use BUILT_SOURCES instead of rm in distclean hook
Timo Sirainen [Thu, 5 Sep 2024 16:03:44 +0000 (19:03 +0300)]
dovecot-config: Add LIBDOVECOT_OPENSSL[_DEPS]
This is usable only when linking statically.
This change also removes LIBDOVECOT_SSL[_DEPS], which weren't used for anything.
Timo Sirainen [Tue, 3 Sep 2024 07:09:41 +0000 (10:09 +0300)]
stats: Change discrete modifiers to be %variables
%{value} and %{domain} variables can be used.
Timo Sirainen [Mon, 2 Sep 2024 20:44:01 +0000 (23:44 +0300)]
stats: Fix group_by discrete modifiers to actually work
Timo Sirainen [Mon, 2 Sep 2024 20:43:17 +0000 (23:43 +0300)]
stats: Move label_by_mod_str()
Aki Tuomi [Thu, 29 Aug 2024 10:32:07 +0000 (13:32 +0300)]
pop3: Logout format specifier 'u' is always empty
Due to mistake in var_get_key() invocation, if 'u' key is used
the value is never populated. Call var_get_get_key() with correct
short char.
Broken in
acfda38b75d0f0e899ef692fef01593bd56ed85e
Aki Tuomi [Tue, 27 Aug 2024 10:05:09 +0000 (13:05 +0300)]
configure.ac: Fix wrong capability name
Aki Tuomi [Tue, 27 Aug 2024 04:59:31 +0000 (07:59 +0300)]
lib-http: Move conn_type default value to switch block
Aki Tuomi [Tue, 27 Aug 2024 04:58:36 +0000 (07:58 +0300)]
lib-program-client: Change to NULL initialization in test_program_input()
Aki Tuomi [Tue, 27 Aug 2024 04:57:29 +0000 (07:57 +0300)]
var-expand-crypt: Change to NULL initialization
Found by static analysis
Aki Tuomi [Tue, 27 Aug 2024 04:56:08 +0000 (07:56 +0300)]
lib-dcrypt: Ensure pkey is loaded from point or bn
Aki Tuomi [Mon, 26 Aug 2024 12:28:19 +0000 (15:28 +0300)]
dovecot-config: Add DOVECOT_PRO_BUILD variable
Aki Tuomi [Mon, 26 Aug 2024 12:20:35 +0000 (15:20 +0300)]
configure: Use https for support URL
Aki Tuomi [Mon, 26 Aug 2024 12:20:07 +0000 (15:20 +0300)]
configure: Fix asset URL to be version specific
Timo Sirainen [Mon, 26 Aug 2024 12:30:02 +0000 (15:30 +0300)]
lib-dict: dict_have_async_operations() - Ignore non-committed transactions
If the transaction isn't committed, it can't be waited on.
Timo Sirainen [Fri, 23 Aug 2024 10:52:52 +0000 (13:52 +0300)]
lib: events - Fix negative integer fields
Timo Sirainen [Thu, 22 Aug 2024 14:20:44 +0000 (17:20 +0300)]
lib-lua: http - Fix parent_event setting
Broken by
85449f6a6cf3f0df1d63728ab107413436595b49
Timo Sirainen [Thu, 22 Aug 2024 14:20:30 +0000 (17:20 +0300)]
lib-lua: dlua_check_event() - Fix calling with negative arg
Timo Sirainen [Thu, 22 Aug 2024 09:29:54 +0000 (12:29 +0300)]
lib-sql: cassandra - Remove ssl_verify=cert-dns
This has been deprecated by Cassandra, because it's vulnerable to MITM
attacks.
Timo Sirainen [Mon, 19 Aug 2024 07:49:14 +0000 (10:49 +0300)]
lib: ostream-file - Fix writing over IOV_MAX iovecs at a time
The output offset became wrong, which either corrupted the written file, or
caused lseek() errors for non-seekable output streams.
This was likely a visible problem only with ostream-dot, used by doveadm
proxying and lib-smtp.
Timo Sirainen [Wed, 14 Aug 2024 10:20:19 +0000 (13:20 +0300)]
doveadm: auth test/login - Print internal failures to stderr
Timo Sirainen [Wed, 14 Aug 2024 10:14:06 +0000 (13:14 +0300)]
doveadm: auth test/login - Return EX_TEMPFAIL on internal failures
Previously EX_NOPERM was returned, which was the same as for invalid
passwords.
Timo Sirainen [Wed, 14 Aug 2024 10:11:10 +0000 (13:11 +0300)]
auth: Add auth_internal_failure_delay setting
When >0, delay before sending "internal failure" replies to auth clients.
The idea is to prevent clients from hammering the server with immediate
retries. Also, a random 0..50% extra delay is added on top of this delay
to try to prevent thundering herd issues.
Timo Sirainen [Wed, 14 Aug 2024 08:49:38 +0000 (11:49 +0300)]
auth: auth_request_handle_passdb_callback() - Change return type to int
This is needed by the next commit.
Timo Sirainen [Tue, 20 Aug 2024 06:45:46 +0000 (09:45 +0300)]
lib-imap-client: Fix IDLE timeout leak / crash
Timo Sirainen [Fri, 9 Aug 2024 07:38:46 +0000 (10:38 +0300)]
login-commmon: Add connection_limit reason for login_aborted
When mail_max_userip_connections is reached, log it with connection_limit
reason rather than internal_failure.
Timo Sirainen [Fri, 9 Aug 2024 07:19:16 +0000 (10:19 +0300)]
lib-smtp: Replace "Aborted login by logging out" with "Logged out"
Similar to the login-common change, this also now shows up in logs as:
"Login aborted: Logged out"
Timo Sirainen [Fri, 9 Aug 2024 06:58:32 +0000 (09:58 +0300)]
login-common: Replace "Aborted login by logging out" with "Logged out"
With the new prefix change the old message became redundant. The full new
log message is: "Login aborted: Logged out"
Timo Sirainen [Fri, 9 Aug 2024 06:43:06 +0000 (09:43 +0300)]
login-common: Add the event reason code to "Login aborted" log lines
This makes it easier to search the logs for the wanted errors.
Timo Sirainen [Fri, 9 Aug 2024 06:37:13 +0000 (09:37 +0300)]
login-common: Log aborted logins with "Login aborted" prefix rather than "Disconnected"
This makes it easier to search the logs for login failures without seeing
post-login disconnections.
Timo Sirainen [Fri, 9 Aug 2024 06:35:22 +0000 (09:35 +0300)]
login-common, submission-login: Simplify code whether to add Disconnected prefix
The logic was the same for all callers: Add the prefix only if the user
hadn't successfully logged in yet.
Timo Sirainen [Fri, 9 Aug 2024 06:24:53 +0000 (09:24 +0300)]
login-common: Change "Login" log lines to "Logged in"
Previously it wasn't possible to search (with e.g. graylog) all lines from
login processes except the successful logins, because "NOT Login" would
still match e.g. "imap-login" prefix itself. Now it can work with
"NOT Logged".
Timo Sirainen [Fri, 16 Aug 2024 07:36:33 +0000 (10:36 +0300)]
quota: Fix event/memory leak on invalid values for some quota settings
Timo Sirainen [Tue, 13 Aug 2024 06:45:40 +0000 (09:45 +0300)]
config: doveconf without parameters now outputs the same as -n
The old behavior was the same as the -a parameter. The old behavior is
preserved when doveconf is given a setting name as parameter, so its
value is output regardless of whether it's the default value or not.
Marco Bettini [Wed, 24 Apr 2024 10:45:46 +0000 (10:45 +0000)]
lib-mail: message-parser - Limit headers total count to 50MB by default
(including top headers and all mime-sections headers)
Marco Bettini [Fri, 12 Apr 2024 15:06:43 +0000 (15:06 +0000)]
lib-mail: message-header-parser - Limit header block to 10MB by default
Timo Sirainen [Thu, 8 Feb 2024 22:57:12 +0000 (00:57 +0200)]
lib-mail, lib-imap: Optimize parsing large number of address headers
Every header was appended to a linked list by walking through the whole
list, causing excessive CPU usage when the list became large enough.
Fixed by changing struct message_part_envelope to use struct
message_address_list, which stores also linked list tail pointers. This
allows quickly appending to the end of the linked list.
Timo Sirainen [Tue, 30 Jan 2024 20:17:38 +0000 (22:17 +0200)]
lib-mail: Add message_address_parse_full() and struct message_address_list
Timo Sirainen [Sat, 3 Feb 2024 22:26:57 +0000 (00:26 +0200)]
lib-mail: Change message_address to be doubly linked list
Timo Sirainen [Tue, 30 Jan 2024 20:42:50 +0000 (22:42 +0200)]
lib-mail: test-imap-envelope - Use test_assert_idx() where possible
Timo Sirainen [Thu, 8 Feb 2024 22:33:00 +0000 (00:33 +0200)]
lib: Add DLLIST2_JOIN()
Timo Sirainen [Thu, 8 Feb 2024 22:32:39 +0000 (00:32 +0200)]
lib: test-llist - Fix dllist2 test name
Aki Tuomi [Wed, 14 Aug 2024 07:16:11 +0000 (10:16 +0300)]
lib-lua: Actually get proxy_url from Lua
Broken in
85449f6a6cf3f0df1d63728ab107413436595b49
Aki Tuomi [Sat, 10 Aug 2024 21:47:17 +0000 (00:47 +0300)]
lib-lua: Ensure invalid settings are caught in HTTP client initialization
Timo Sirainen [Mon, 12 Aug 2024 04:18:31 +0000 (07:18 +0300)]
lib-storage: Fix settings leak when mailbox list iteration fails in settings lookup
Broken by
48df71ee56482db1d2631f6b34fabbb434563545
Timo Sirainen [Thu, 8 Aug 2024 13:05:54 +0000 (16:05 +0300)]
lib-dcrypt, lib-ssl-iostream: Don't use strerror() when OpenSSL error queue is empty
This shouldn't be necessary, and there is no guarantee that the current
errno value has anything to do with what had failed.
Timo Sirainen [Thu, 8 Aug 2024 20:42:48 +0000 (23:42 +0300)]
lib-dcrypt: dcrypt_ctx_hmac_init() - Clean up properly in error code paths
Timo Sirainen [Thu, 8 Aug 2024 20:40:00 +0000 (23:40 +0300)]
lib-dcrypt: dcrypt_ctx_hmac_destroy() - Fix memory leak with OpenSSL 3
Timo Sirainen [Fri, 2 Aug 2024 08:57:29 +0000 (11:57 +0300)]
quota: Fix detecting invalid quota_mailbox_message_count value
Timo Sirainen [Fri, 2 Aug 2024 11:18:13 +0000 (14:18 +0300)]
lib-dcrypt: ostream-encrypt - Fix dcrypt_ctx_hmac_init() error handling