]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Aki Tuomi [Thu, 1 Apr 2021 09:41:40 +0000 (12:41 +0300)]
imap-zlib: Support per-algorithm compression level
Aki Tuomi [Tue, 30 Mar 2021 16:05:42 +0000 (19:05 +0300)]
zlib: Check that compression level is within supported range
Aki Tuomi [Tue, 30 Mar 2021 16:04:31 +0000 (19:04 +0300)]
imap-zlib: Check that compression level is within supported range
Aki Tuomi [Tue, 30 Mar 2021 16:03:30 +0000 (19:03 +0300)]
fs-compress: Check that compression range is within supported range
Aki Tuomi [Thu, 1 Apr 2021 06:26:10 +0000 (09:26 +0300)]
lib-compression: Implement min/default/max getters
Aki Tuomi [Tue, 30 Mar 2021 16:01:20 +0000 (19:01 +0300)]
lib-compression: Add compression level range to handlers
Aki Tuomi [Tue, 30 Mar 2021 15:54:42 +0000 (18:54 +0300)]
lib-compression: Use designated initializers for compression handlers
Aki Tuomi [Thu, 1 Apr 2021 06:51:09 +0000 (09:51 +0300)]
m4: want_zstd.m4 - Detect is ZSTD_minCLevel is present
Josef 'Jeff' Sipek [Fri, 5 Feb 2021 19:48:52 +0000 (14:48 -0500)]
lib-compression: Be explicit about xz magic number including a \0
Stephan Bosch [Thu, 8 Apr 2021 23:49:21 +0000 (01:49 +0200)]
lib-smtp: test-smtp-server-errors - Add actual HELO tests to "bad HELO" test.
Before, it only tested the EHLO command.
Stephan Bosch [Thu, 8 Apr 2021 23:43:38 +0000 (01:43 +0200)]
lib-smtp: test-smtp-server-errors - Add correct command test to "bad HELO" test.
Stephan Bosch [Thu, 8 Apr 2021 23:25:59 +0000 (01:25 +0200)]
lib-smtp: test-smtp-server-errors - Properly check server reply in "bad HELO" test.
Stephan Bosch [Thu, 8 Apr 2021 23:29:06 +0000 (01:29 +0200)]
lib-smtp: test-smtp-server-errors - Rename "bad EHLO" test to "bad HELO".
Stephan Bosch [Fri, 11 Sep 2020 19:08:03 +0000 (21:08 +0200)]
lib-smtp: smtp-server-cmd-helo - Fix panic occurring for default HELO reply.
This only fails for the HELO command; the EHLO command is unaffected. The
default reply routine is not actually used at the moment, but it is used by the
fuzzer.
Panic was:
Panic: file smtp-server-cmd-helo.c: line 160 (smtp_server_cmd_ehlo_reply_create): assertion failed: (cmd->cmd->reg->func == smtp_server_cmd_ehlo)
Stephan Bosch [Fri, 11 Sep 2020 20:40:31 +0000 (22:40 +0200)]
lib-smtp: Reformat smtp-server-cmd-helo.c.
Stephan Bosch [Tue, 23 Mar 2021 09:27:23 +0000 (10:27 +0100)]
lib-smtp: smtp-server-cmd-data - Fix crash occurring when BDAT is the last in a too long sequence of bad commands.
When smtp_server_reply() detects that too many replies were sent regarding
syntax errors, it will terminate the connection. Most commands will just stop
processing and exit when a reply is submitted, so no crash occurs for those.
However, BDAT will try to skip the data block, so that it will not be
interpreted as a large set of input commands, which subsequentely crashes
because the command parser is already gone after terminating the connection.
Timo Sirainen [Thu, 25 Mar 2021 08:59:19 +0000 (10:59 +0200)]
push-notification: Fix logging initialization error
Markus Valentin [Wed, 24 Mar 2021 08:43:17 +0000 (09:43 +0100)]
imapc: imapc_list_get_fs() - Set index_pvt_dir for mailbox_list_settings
To allow using private indexes with imapc storage the index_pvt_dir must
be set when listing the mailbox. Previously this did not happen because
the index_pvt_dir was simply NULL, now the value is copied from the
imapc_mailbox_list.
Timo Sirainen [Tue, 30 Mar 2021 13:50:13 +0000 (16:50 +0300)]
lib-index: Avoid accessing already freed "reason" when purging
Broken by
4b60d609c05d334d29a72c6dbbe301a66f518089
Siavash Tavakoli [Tue, 30 Mar 2021 10:00:57 +0000 (11:00 +0100)]
lib-ssl-iostream: Avoid calling X509_check_ip_asc if malformed input was used
Try to match certificate using "X509_check_ip_asc" only when
"X509_check_host" didn't report an internal error or malformed input.
Josef 'Jeff' Sipek [Wed, 24 Mar 2021 15:01:34 +0000 (11:01 -0400)]
lib-lua: Document the DLUA_WRAP_C_DATA macro
Aki Tuomi [Thu, 13 Aug 2020 17:01:41 +0000 (20:01 +0300)]
oauth2-jwt: Use int64_t instead time_t for portability
Siavash Tavakoli [Sun, 21 Mar 2021 22:15:48 +0000 (22:15 +0000)]
lib-ssl-iostream: Use OpenSSL's X509_check_host and X509_check_ip_asc if available
Make use of "X509_check_host()" and "X509_check_ip_asc()" if OpenSSL version
used has support for these functions. Revert back to previous custom
implementation in case either is not available.
Hosts are checked with partial wildcards (e.g. foo*.example.com) disabled.
If host name check fails, check against IP addresses in the certificate.
Siavash Tavakoli [Sun, 21 Mar 2021 22:14:55 +0000 (22:14 +0000)]
m4: Add HAVE_X509_CHECK_HOST, HAVE_X509_CHECK_IP, and HAVE_X509_CHECK_IP_ASC
Defined when compiling against an OpenSSL version supporting "X509_check_host",
"X509_check_ip()", and "X509_check_ip_asc()" respectively.
Siavash Tavakoli [Thu, 18 Mar 2021 12:20:35 +0000 (12:20 +0000)]
lib-ssl-iostream: Ignore case when checking certificate name
Host name case must be ignored when cheking with certificate.
Timo Sirainen [Mon, 22 Mar 2021 11:00:31 +0000 (13:00 +0200)]
lib: ioloop - Remove unused timer_is_larger() macro
Timo Sirainen [Mon, 1 Mar 2021 10:56:21 +0000 (12:56 +0200)]
lib: test-ioloop - Make sure recreating 0-timeout in callback works
Timo Sirainen [Mon, 1 Mar 2021 11:03:16 +0000 (13:03 +0200)]
lib: ioloop - Fix 0 ms timeouts to trigger without waiting 2ms between calls
Timo Sirainen [Mon, 1 Mar 2021 11:02:40 +0000 (13:02 +0200)]
lib-test: test_assert_ucmp() - Fix typo to make it compile
Markus Valentin [Mon, 22 Mar 2021 12:04:15 +0000 (13:04 +0100)]
lib-compression: Get error with i_stream_get_error() so it's recursive
In some cases the iostream.error was NULL so the errno default message
was used. This fixes an regression introduced by
8b6142f9ba9 .
Aki Tuomi [Tue, 23 Mar 2021 07:02:06 +0000 (09:02 +0200)]
lib-dict: dict-lua - Do not free pool after iteration finishes
Otherwise we get double-free from gc.
Broken in
1e67b93cc9f469bb144fc890a6cb9b9b9cd20811
Timo Sirainen [Tue, 23 Mar 2021 10:32:13 +0000 (12:32 +0200)]
man: doveconf - Fix -P/ typo to just -P
Timo Sirainen [Tue, 23 Mar 2021 10:31:46 +0000 (12:31 +0200)]
man: doveconf - Document -s parameter
Timo Sirainen [Wed, 27 Jan 2021 18:26:26 +0000 (20:26 +0200)]
doveadm zlibconnect: Support multiple compression algorithms
Unfortunately they don't work very well, because only the deflate ostream
supports flushing ostream before closing it.
Timo Sirainen [Wed, 27 Jan 2021 17:50:38 +0000 (19:50 +0200)]
doveadm zlibconnect: Support automatically starting compression on COMPRESS command
The previous method of using ctrl-d wasn't really suitable for scripting.
Timo Sirainen [Wed, 27 Jan 2021 18:29:11 +0000 (20:29 +0200)]
lib-compression: Fix potential hangs with non-blocking istreams
Timo Sirainen [Wed, 27 Jan 2021 18:34:29 +0000 (20:34 +0200)]
lib: i_stream_read() - Fix assert with DEBUG enabled
It doesn't matter if the data buffer changes for <=0 return value if the
buffer was previously empty.
Timo Sirainen [Thu, 4 Feb 2021 00:15:22 +0000 (02:15 +0200)]
lib-storage: mailbox_list_init_fs() - Add event_parent
Timo Sirainen [Thu, 4 Feb 2021 00:00:28 +0000 (02:00 +0200)]
lib-storage: Rename mail_storage_service_input.parent_event to event_parent
This makes it more consistent with other settings.
Timo Sirainen [Wed, 3 Feb 2021 23:58:25 +0000 (01:58 +0200)]
lib-fs: Rename fs_settings.event to event_parent
This makes it more consistent with other settings.
Timo Sirainen [Wed, 3 Feb 2021 23:36:52 +0000 (01:36 +0200)]
lib-dict: Set connections' event_parent correctly
dict->dict.event is NULL at this point.
Timo Sirainen [Wed, 3 Feb 2021 23:27:34 +0000 (01:27 +0200)]
auth: db-sql - Fill sql_settings.event_parent
Timo Sirainen [Wed, 3 Feb 2021 23:16:12 +0000 (01:16 +0200)]
global: Set http_client_settings.event_parent when possible
Timo Sirainen [Wed, 3 Feb 2021 23:13:40 +0000 (01:13 +0200)]
fts-solr: solr-connection - Add parent event
Timo Sirainen [Wed, 3 Feb 2021 23:10:57 +0000 (01:10 +0200)]
global: Set dns_lookup_settings.event_parent
Timo Sirainen [Wed, 3 Feb 2021 23:09:57 +0000 (01:09 +0200)]
imapc: Add parent event
Timo Sirainen [Wed, 3 Feb 2021 23:07:38 +0000 (01:07 +0200)]
pop3c: Add parent event
Timo Sirainen [Wed, 3 Feb 2021 23:01:42 +0000 (01:01 +0200)]
global: Set dict_settings.event_parent when possible
Aki Tuomi [Mon, 22 Mar 2021 14:24:20 +0000 (16:24 +0200)]
lib-lua: dlua-threads - pop thread table after manipulation
Forgot on
a84bfdaf6df8fd6a4cbbf0845c18b09e6ceada36
Aki Tuomi [Mon, 22 Feb 2021 13:29:45 +0000 (15:29 +0200)]
auth: Fix Makefile variables for Lua
Otherwise automake complains about touching
the variables in many places.
Aki Tuomi [Fri, 5 Feb 2021 13:40:49 +0000 (15:40 +0200)]
dovecot-config: Include used Lua details
Aki Tuomi [Fri, 5 Feb 2021 13:21:46 +0000 (15:21 +0200)]
push-notification-driver-lua: Use dlua_pcall
Aki Tuomi [Fri, 5 Feb 2021 13:17:44 +0000 (15:17 +0200)]
mail-lua: Pop return values after use
Aki Tuomi [Fri, 5 Feb 2021 13:17:37 +0000 (15:17 +0200)]
mail-lua: Use dlua_pcall
Aki Tuomi [Fri, 5 Feb 2021 13:13:26 +0000 (15:13 +0200)]
auth: db-lua - Use dlua_pcall
Aki Tuomi [Tue, 16 Feb 2021 07:21:58 +0000 (09:21 +0200)]
lib-lua: Fix script loading
Handle error cases correctly.
Aki Tuomi [Fri, 5 Feb 2021 11:34:27 +0000 (13:34 +0200)]
lib-lua: Use dlua_pcall
Aki Tuomi [Fri, 5 Feb 2021 11:33:47 +0000 (13:33 +0200)]
lib-lua: Add dlua_pcall
Aki Tuomi [Fri, 5 Feb 2021 11:41:24 +0000 (13:41 +0200)]
lib-lua: dlua-dovecot - Ensure script is not NULL
Aki Tuomi [Tue, 16 Feb 2021 10:47:17 +0000 (12:47 +0200)]
lib-lua: Define LUA_OK if missing
It's defined since lua 5.2, and we support lua 5.1.
Aki Tuomi [Fri, 19 Feb 2021 13:20:07 +0000 (15:20 +0200)]
lib-lua: Reformat macros in dlua-script-private.h
Aki Tuomi [Mon, 22 Mar 2021 08:36:24 +0000 (10:36 +0200)]
lib-lua: Add callback typecheck for dlua_pcall_yieldable
Josef 'Jeff' Sipek [Thu, 25 Feb 2021 15:22:28 +0000 (10:22 -0500)]
lib-dict: Expose dict and dict transactions to lua scripts
Josef 'Jeff' Sipek [Thu, 25 Feb 2021 20:35:26 +0000 (15:35 -0500)]
lib-lua: Implement lua_seti() fallback for pre-5.3 support
Josef 'Jeff' Sipek [Thu, 25 Feb 2021 15:22:24 +0000 (10:22 -0500)]
lib-lua: Add DLUA_WRAP_C_DATA macro to more easily expose C structures to lua
Josef 'Jeff' Sipek [Wed, 24 Feb 2021 18:57:10 +0000 (13:57 -0500)]
lib-lua: Add dlua_pcall_yieldable
Josef 'Jeff' Sipek [Thu, 25 Feb 2021 20:49:18 +0000 (15:49 -0500)]
m4: want_lua - Check for lua_{resume,yieldk}
Josef 'Jeff' Sipek [Wed, 24 Feb 2021 19:53:59 +0000 (14:53 -0500)]
lib-lua: Add thread local storage API
Aki Tuomi [Fri, 5 Feb 2021 14:47:53 +0000 (16:47 +0200)]
lib-lua: Add new thread/close thread dlua wrappers
Code rewritten to use lua registry, warn about unclosed threads, and moved
to a separate file by Josef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Timo Sirainen [Fri, 12 Mar 2021 00:58:37 +0000 (02:58 +0200)]
global: Avoid casting away const
Timo Sirainen [Fri, 12 Mar 2021 12:53:38 +0000 (14:53 +0200)]
lib: iostreams - Use container_of()
Timo Sirainen [Fri, 12 Mar 2021 00:56:20 +0000 (02:56 +0200)]
lib: stats_dist_get_median(), stats_dist_get_percentile() - Remove const parameter
They weren't really const, because they required modifying the stats to sort
them.
Stephan Bosch [Fri, 26 Feb 2021 23:04:54 +0000 (00:04 +0100)]
login-common: sasl-server - Remove data transfered to post-login service from input stream.
This prevents duplicating input when SSL is involved, causing commands pipelined
after authenticate commands from being duplicated. This issue emerged when login
proxy was changed to use the iostream pump/proxy. This means that the proxy uses
streams rather than raw FDs, which means that data buffered in input stream
before proxy is inherently forwarded to the post-login service... a second time.
Timo Sirainen [Thu, 18 Mar 2021 10:17:07 +0000 (11:17 +0100)]
lib: test-cpu-limit - Test upper CPU limit only for user CPU, not for system CPU
The system CPU check kept randomly failing with larger and larger limits, so
there doesn't seem to be any point trying to test it at all.
Timo Sirainen [Fri, 12 Mar 2021 00:26:32 +0000 (02:26 +0200)]
lib-index: Fix crash when cache record size is larger than file size
This shouldn't happen unless the dovecot.index.cache file was corrupted.
Timo Sirainen [Sat, 8 Aug 2020 09:11:54 +0000 (12:11 +0300)]
lib-index: mail_cache_map() - Fix handling huge size values correctly
offset+size could have wrapped in 32bit systems.
Timo Sirainen [Mon, 15 Mar 2021 10:53:19 +0000 (12:53 +0200)]
auth: test-auth-cache - Fix auth_request_var_expand_static_tab[]
Its size is explicitly set in .h file, so it should be in .c file as well.
Siavash Tavakoli [Mon, 15 Mar 2021 12:02:32 +0000 (12:02 +0000)]
auth: userdb-passwd: Close the password database in iteration deinit
Otherwise, next "getpwent()" will continue to return next entries in
passwd database which results in unwanted skipping of entries.
Timo Sirainen [Tue, 9 Mar 2021 19:35:15 +0000 (21:35 +0200)]
doveconf: Don't print an error if $rundir/dovecot.conf symlink doesn't exist
Timo Sirainen [Wed, 15 Apr 2020 14:57:43 +0000 (17:57 +0300)]
lib-storage: Set mail_index_* and mail_cache_* settings hidden
It's not recommended to change these settings outside testing.
Timo Sirainen [Tue, 9 Mar 2021 17:10:01 +0000 (19:10 +0200)]
doveconf: Add -s parameter to show also hidden settings
Timo Sirainen [Wed, 15 Apr 2020 14:50:42 +0000 (17:50 +0300)]
doveconf: Don't show hidden settings unless they've been explicitly set
Timo Sirainen [Wed, 15 Apr 2020 14:44:56 +0000 (17:44 +0300)]
lib-settings: Add SET_FLAG_HIDDEN setting flag
Timo Sirainen [Wed, 15 Apr 2020 14:35:14 +0000 (17:35 +0300)]
global: Initialize struct setting_define fields with explicit names
This allows changing the struct contents without breaking compiling.
Timo Sirainen [Wed, 15 Apr 2020 14:21:03 +0000 (17:21 +0300)]
global: Use SETTING_DEFINE_STRUCT_*() macros when defining settings
This adds type checking to them.
Timo Sirainen [Wed, 15 Apr 2020 14:20:20 +0000 (17:20 +0300)]
quota-status: Fix quota_status_settings.recipient_delimiter to be const
Timo Sirainen [Wed, 15 Apr 2020 14:18:42 +0000 (17:18 +0300)]
mail-crypt, master: Remove unused DEF & DEFLIST macros
Timo Sirainen [Wed, 15 Apr 2020 13:53:26 +0000 (16:53 +0300)]
lib-settings: Rewrite and add missing SETTING_DEFINE_STRUCT_* macros
These hadn't been used anywhere.
Timo Sirainen [Sat, 13 Mar 2021 12:23:46 +0000 (14:23 +0200)]
lib-smtp: fuzz-smtp-server - Fix compiling due to lib-smtp API change
Forgotten from
2cdab962670df394c28fb7858cb0d4f90f70f71c
Timo Sirainen [Tue, 16 Mar 2021 15:09:11 +0000 (17:09 +0200)]
submission: Remove dead assignment
Timo Sirainen [Wed, 15 Jan 2020 18:22:00 +0000 (20:22 +0200)]
login-common: Fix client_destroy_oldest() return value to be more exact
Only return TRUE if a client connection is immediately destroyed.
Timo Sirainen [Wed, 15 Jan 2020 16:09:14 +0000 (18:09 +0200)]
lib-master: Add a delay to calling avail_overflow_callback with client_limit=1
Without the delay all (or many/most) processes will call the callback,
because the OS notifies all of the processes of the incoming connection.
This results in all of the connections being killed instead of only a few
of them.
Timo Sirainen [Wed, 15 Jan 2020 17:10:43 +0000 (19:10 +0200)]
lib-master: Change master_service_set_avail_overflow_callback() API
Needed by the following changes.
Timo Sirainen [Wed, 15 Jan 2020 17:06:32 +0000 (19:06 +0200)]
login-common: Change struct client.created to timeval
Timo Sirainen [Wed, 15 Jan 2020 15:49:52 +0000 (17:49 +0200)]
lib-master: Code cleanup to refreshing login state
Unexpected seek offsets are now handled better.
Timo Sirainen [Wed, 15 Jan 2020 14:30:34 +0000 (16:30 +0200)]
lib-master: Fix calling avail_overflow_callback with service_count=1
This is used by login processes to kill the oldest connection when all of
the clients and processes for the service are taken. This wasn't working
when service_count=1 because the listeners were closed already.
It's not really useful anymore to even do this kind of a listener closing.
It was originally added in
9217d2426b4f8ece47441357f35d8bb34d97c4eb to
prevent restart problems with long-running login processes. However,
nowadays listeners can be closed via SIGQUIT so this isn't necessary.
Siavash Tavakoli [Fri, 26 Feb 2021 12:28:03 +0000 (12:28 +0000)]
lib-storage: Correct escaping for list index lookups
- Escape storage name when listing mailbox from index and unescape mailbox name
when looking for sibling nodes.
- Unescape when adding node to list index.
- List index iteration is performed with storage name where separators must be
escaped with storage_name_escape_char. Index lookup is done with storage_name
which is escaped with storage_name_escape_char but node names are unescaped.
Siavash Tavakoli [Mon, 22 Feb 2021 15:37:19 +0000 (15:37 +0000)]
lib-storage: Expose mailbox_list_name_{escape,unescape} functions in header
To be used in mailbox-list-index.
Siavash Tavakoli [Thu, 11 Mar 2021 17:55:08 +0000 (17:55 +0000)]
lib-storage: test-mail-storage: Separate test cases for "LAYOUT=INDEX"
With default escaping for "INDEX" layout, more mailbox name are accepted.
Siavash Tavakoli [Mon, 22 Feb 2021 15:29:30 +0000 (15:29 +0000)]
lib-storage: mailbox-list: Add default storage name escaping for index layout
Add a default value for "storage_name_escape_char" when "LAYOUT=index".
Needed for situations where mailbox name contains separator char (e.g.
after migration to new separator) and listescape plugin is not active.