]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Thu, 6 Nov 2025 12:53:42 +0000 (14:53 +0200)]
auth: ldap - Avoid repeating error messages if iteration fails due to invalid settings
Timo Sirainen [Thu, 6 Nov 2025 12:52:37 +0000 (14:52 +0200)]
auth: ldap - Fix crash if users are iterated, but userdb_ldap_iterate_fields is not set
Timo Sirainen [Thu, 6 Nov 2025 12:48:47 +0000 (14:48 +0200)]
auth: Don't initialize cache key if caching is disabled for the userdb
Timo Sirainen [Thu, 6 Nov 2025 12:46:39 +0000 (14:46 +0200)]
auth: userdb.preinit() - Add userdb_parameters parameter
Timo Sirainen [Thu, 6 Nov 2025 12:44:35 +0000 (14:44 +0200)]
auth: Don't initialize cache key if caching is disabled for the passdb
Timo Sirainen [Thu, 6 Nov 2025 12:33:40 +0000 (14:33 +0200)]
auth: passdb.preinit() - Add passdb_parameters parameter
Timo Sirainen [Thu, 6 Nov 2025 12:20:05 +0000 (14:20 +0200)]
auth: Fix auth caching to work with passdb_ldap_bind_userdn
passdb_ldap_bind_userdn wasn't part of the cache key, so:
* If no %variables were given in ldap_base or passdb_ldap_filter, startup
failed with "Cache key must contain at least one variable"
* If the same %variables were part of ldap_base or passdb_ldap_filter,
it worked correctly.
* If different %variables were part of ldap_base or passdb_ldap_filter,
cached lookups may have returned wrong results.
Timo Sirainen [Thu, 6 Nov 2025 12:08:54 +0000 (14:08 +0200)]
auth: ldap - Add debug log when bind started/finished
Aki Tuomi [Thu, 13 Nov 2025 09:22:53 +0000 (11:22 +0200)]
configure: Quote abs_top_builddir in TEST_CFLAGS sufficiently
Aki Tuomi [Wed, 12 Nov 2025 06:58:08 +0000 (08:58 +0200)]
build-aux/run-test.sh.in: Export DOVECONF_PATH if it's set
Aki Tuomi [Wed, 12 Nov 2025 06:54:38 +0000 (08:54 +0200)]
m4: Set DOVECONF_PATH
If dovecot is not installed, it points to dovecot build location.
Aki Tuomi [Fri, 31 Oct 2025 11:22:00 +0000 (13:22 +0200)]
lib-master: Support executing doveconf with DOVECONF_PATH enviroment variable
This helps with e.g. Pigeonhole testing when Dovecot is not installed,
and doveconf is needed.
Stephan Bosch [Tue, 4 Nov 2025 23:04:09 +0000 (00:04 +0100)]
submission-login: Halt the handling of the AUTH commmand while the auth service is not connected
Stephan Bosch [Wed, 5 Nov 2025 16:37:16 +0000 (17:37 +0100)]
submission-login: Rename client->pending_auth to client->auth_cmd
Stephan Bosch [Wed, 5 Nov 2025 23:30:02 +0000 (00:30 +0100)]
login-common: client-common-auth - Assert that a new authentication does not occur when one is still running
Stephan Bosch [Wed, 5 Nov 2025 14:42:42 +0000 (15:42 +0100)]
login-common: Add notify_auth_connected() vfunc
This gets called when the auth service connection is restored after disconnect.
Aki Tuomi [Wed, 12 Nov 2025 08:52:42 +0000 (10:52 +0200)]
lib: test-path-util - Normalize cwd
Avoids unnecessary failure later on.
Aki Tuomi [Wed, 12 Nov 2025 08:41:47 +0000 (10:41 +0200)]
lib-test: Log error with top_test_dir
TEST_DIR is not used as mkdir parameter.
Stephan Bosch [Wed, 12 Nov 2025 00:35:39 +0000 (01:35 +0100)]
lib: unicode-transform - Avoid using constant artihmetic involving variables
This does not strictly conform to the C standard and can trigger compiler errors
for some systems.
Timo Sirainen [Tue, 4 Nov 2025 21:23:29 +0000 (23:23 +0200)]
config: Panic if default setting value differs between setting_parser_infos
Timo Sirainen [Tue, 4 Nov 2025 21:23:05 +0000 (23:23 +0200)]
submission-login: Fix setting the default submission_max_mail_size=unlimited
Pre-login default value is intended to be unlimited, while post-login
default value is 40 MB, unless overridden by the relay server.
The old code was relying on the default settings struct being different for
submission and submission-login, which was rather kludgy. This also wasn't
visible in doveconf output.
Timo Sirainen [Thu, 6 Nov 2025 16:56:45 +0000 (18:56 +0200)]
submission[-login]: If submission_max_mail_size=unlimited, advertise SIZE capability without a number
Stephan Bosch [Tue, 11 Nov 2025 00:24:38 +0000 (01:24 +0100)]
lib-smtp: smtp-server-connection - Fix reading remaining payload of failed (DATA) command
Aki Tuomi [Tue, 11 Nov 2025 10:32:09 +0000 (12:32 +0200)]
doveadm: dsync - Sync mailbox before updating mailbox metadata
Fixes highestmodseq increasing unnecessarily after sync.
Aki Tuomi [Tue, 11 Nov 2025 08:43:42 +0000 (10:43 +0200)]
doveadm: dsync - Log used search
This can be helpful in debugging
Aki Tuomi [Tue, 11 Nov 2025 08:16:09 +0000 (10:16 +0200)]
doveadm: dsync - Search exportable mails with SMALLER
This speeds up dsync with -I, especially over network connection.
Aki Tuomi [Tue, 11 Nov 2025 07:44:14 +0000 (09:44 +0200)]
doveadm: dsync - Fix -e parameter when used with dsync-server
It was set to sync_since_timestamp.
Broken in
ee8294dbc7bb549557f6ba1264d66b55fbef69b6
Aki Tuomi [Tue, 11 Nov 2025 06:38:38 +0000 (08:38 +0200)]
doveadm: dsync - Search exportable mails with timestamps
This speeds up dsync with -t and -e, especially over network connection.
Aki Tuomi [Tue, 11 Nov 2025 07:00:07 +0000 (09:00 +0200)]
doveadm: dsync - Extract dsync_mailbox_import_init() arguments to a structure
It's easier to extend in future
Aki Tuomi [Tue, 11 Nov 2025 06:47:47 +0000 (08:47 +0200)]
doveadm: dsync - Extract dsync_mailbox_export_init() parameters to a structure
It's easier to extend in future
Timo Sirainen [Mon, 10 Nov 2025 12:25:43 +0000 (14:25 +0200)]
fts-flatcurve: Fix mailbox leak if it couldn't be opened
This could also result in a crash:
Panic: file mail-user.c: line 185 (mail_user_deinit): assertion failed: ((*user)->refcount == 1)
Aki Tuomi [Mon, 10 Nov 2025 08:38:00 +0000 (10:38 +0200)]
lib-var-expand: var-expand-parser - Add YYFPRINTF() wrapper
Useful if one needs to debug parser.
Aki Tuomi [Mon, 10 Nov 2025 08:35:00 +0000 (10:35 +0200)]
lib-var-expand: test-var-expand - Print more useful error if test->out is empty
Aki Tuomi [Mon, 10 Nov 2025 08:30:11 +0000 (10:30 +0200)]
lib-var-expand: Generate 8-bit flexer
This is needed for proper utf-8 support in future.
Aki Tuomi [Mon, 10 Nov 2025 07:39:57 +0000 (09:39 +0200)]
lib-var-expand: Add fuzzer for var_expand_program_create()
Aki Tuomi [Mon, 10 Nov 2025 07:39:04 +0000 (09:39 +0200)]
lib-var-expand: Fix list manipulation in make_new_program()
Fixes signal 11 crash when handling multiple chained programs like
hello%{}world.
Aki Tuomi [Mon, 10 Nov 2025 09:33:21 +0000 (11:33 +0200)]
lib-mail: test-istream-qp-decoder - Keep limit constant in get_encoding_size_diff()
Broken in
e3b45a1e30c98dcf33bc79dc9370f1217eadc36a
Aki Tuomi [Mon, 10 Nov 2025 07:02:24 +0000 (09:02 +0200)]
lib-mail: Add more fuzzers
Aki Tuomi [Sun, 9 Nov 2025 17:32:36 +0000 (19:32 +0200)]
lib-mail: message-date - Add missing bounds checking
All current callers are guaranteed to pass input that is NUL-terminated.
In case of SEARCH SENT* commands the input comes from buffer_t, which is also
guaranteed to be NUL-terminated (although not necessarily immediately after the
input data).
Found by naoki-wa via yeswehack.
Timo Sirainen [Fri, 17 Oct 2025 11:27:09 +0000 (14:27 +0300)]
lib: Move cpu-limit test to its own test binary
This allows running it in parallel with the rest of the tests.
Timo Sirainen [Wed, 5 Nov 2025 10:54:33 +0000 (12:54 +0200)]
Makefile.test.include: Use "make check" tests in parallel
Timo Sirainen [Sat, 18 Oct 2025 15:33:29 +0000 (18:33 +0300)]
lib-program-client, lib-smtp: Move unit test runs to Makefile.test.include
These add NOCHILDREN_TESTS for some tests.
Timo Sirainen [Wed, 5 Nov 2025 10:50:46 +0000 (12:50 +0200)]
global: Move most unit test runs to Makefile.test.include
The special cases are changed by the next commit.
Timo Sirainen [Wed, 5 Nov 2025 10:47:18 +0000 (12:47 +0200)]
lib-sql: Makefile.am - Use test_programs instead of check_PROGRAMS variable
This makes it consistent with other unit tests.
Timo Sirainen [Wed, 5 Nov 2025 10:34:11 +0000 (12:34 +0200)]
lib-test: Give a clear panic if test_dir_init() call is missing
Timo Sirainen [Sat, 25 Oct 2025 17:15:05 +0000 (20:15 +0300)]
lib-storage, mail-crypt: test-mail* - Use the new test-dir API
mail-crypt's test-mail-key also uses test-mail-storage-common API, so it
now needs the test_dir_init() call.
Timo Sirainen [Sat, 25 Oct 2025 16:38:14 +0000 (19:38 +0300)]
lib-http, lib-smtp: test-*-payload - Skip files created by make check
These may change during "make check", breaking the test.
Timo Sirainen [Mon, 3 Nov 2025 08:22:54 +0000 (10:22 +0200)]
config: Fail if trying to give section name for strlist or boollist setting
For example this should fail:
mail_plugins foo {
}
Timo Sirainen [Mon, 3 Nov 2025 08:22:19 +0000 (10:22 +0200)]
config: Fail if trying to use non-strlist and non-boollist setting as a section
For example this was silently ignored:
mail_driver {
}
Edmund Lodewijks [Wed, 5 Nov 2025 10:21:41 +0000 (12:21 +0200)]
doveadm: dsync_remote_cmd setting - Remove obsolete -U parameter
This was forgotten to be removed in
4c04e4c30fd4817a8b0e11d04d9681173f696f41
Marco Bettini [Fri, 24 Oct 2025 12:54:13 +0000 (12:54 +0000)]
lazy-expunge: Change lazy_expunge_only_last_instance default to yes
Stephan Bosch [Sat, 1 Nov 2025 17:51:43 +0000 (18:51 +0100)]
lib-compression: test-compression - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 17:09:00 +0000 (18:09 +0100)]
lib-index: test-mail-index-write - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 18:59:41 +0000 (19:59 +0100)]
lib-http: test-http-payload - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 17:56:16 +0000 (18:56 +0100)]
lib-smtp: test-smtp-payload - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 16:42:56 +0000 (17:42 +0100)]
lib-smtp: test-smtp-submit - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:00:13 +0000 (22:00 +0100)]
lib-program-client: test-program-client-* - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 19:52:34 +0000 (20:52 +0100)]
lib-index: test-mail-{index,cache} - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 20:59:07 +0000 (21:59 +0100)]
lib-imap-client: test-imapc-client - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 20:58:18 +0000 (21:58 +0100)]
lib-fs: test-fs-posix - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 20:57:11 +0000 (21:57 +0100)]
imap: test-imap-client-hibernate - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 20:56:33 +0000 (21:56 +0100)]
config: test-config-parser - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 19:07:28 +0000 (20:07 +0100)]
lib-json: test-json-istream - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 23:19:26 +0000 (00:19 +0100)]
lib: test-ostream-file - Use the new test-dir API
Stephan Bosch [Sat, 1 Nov 2025 19:37:27 +0000 (20:37 +0100)]
lib: test-iostream-temp - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 23:19:13 +0000 (00:19 +0100)]
lib: test-istream-seekable - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 22:58:34 +0000 (23:58 +0100)]
lib: test-event-log - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:05:52 +0000 (22:05 +0100)]
lib: test-path-util - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:36:10 +0000 (22:36 +0100)]
lib: test-file-create-locked - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:04:45 +0000 (22:04 +0100)]
lib: test-file-create-locked - Use the new test-subprocess API
Stephan Bosch [Mon, 27 Oct 2025 21:04:16 +0000 (22:04 +0100)]
lib: test-file-cache - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:03:18 +0000 (22:03 +0100)]
lib: test-cpu-limit - Use the new test-dir API
Stephan Bosch [Mon, 27 Oct 2025 21:02:55 +0000 (22:02 +0100)]
lib: test-buffer-istream - Use the new test-dir API
Stephan Bosch [Sun, 26 Oct 2025 04:42:06 +0000 (05:42 +0100)]
lib-test: Add support for temporary test directories
Stephan Bosch [Mon, 27 Oct 2025 20:30:51 +0000 (21:30 +0100)]
lib-test: test-common - Add test generic event
Use it to replace events created for some individual tests. Also replace the
event created by test-submission.
Stephan Bosch [Mon, 27 Oct 2025 20:48:35 +0000 (21:48 +0100)]
lib-test: test-subprocess - Move most signal and cleanup code to test-common for re-use
Stephan Bosch [Fri, 31 Oct 2025 13:44:10 +0000 (14:44 +0100)]
lib: safe-mkstemp - Add safe_mkstemp_dir*()
Stephan Bosch [Fri, 31 Oct 2025 13:30:46 +0000 (14:30 +0100)]
lib: safe-mkstemp - Split off safe_mkstemp_create()
Stephan Bosch [Sun, 26 Oct 2025 04:56:43 +0000 (05:56 +0100)]
imap: test-imap-client-hibernate - Rename test_init() to test_tmp_dir_init()
Stephan Bosch [Sun, 26 Oct 2025 04:55:28 +0000 (05:55 +0100)]
lib: test-path-util - Rename test_init() to test_path_util_init()
Stephan Bosch [Sun, 26 Oct 2025 04:48:11 +0000 (05:48 +0100)]
stats: test-stats-common - Rename test_init() to test_stats_init()
Stephan Bosch [Mon, 27 Oct 2025 20:44:40 +0000 (21:44 +0100)]
lib-test: Fix whitespace issues in test-subprocess.c
Stephan Bosch [Mon, 3 Nov 2025 17:12:17 +0000 (18:12 +0100)]
lib-sasl: fuzz-sasl-authentication - Limit the length of the passwords
For hashed algorithms, the password length could rise limitless, causing
fuzzer timeouts.
OSS-Fuzz report:
457240545
Timo Sirainen [Fri, 31 Oct 2025 12:44:18 +0000 (14:44 +0200)]
util: health-check.sh - Use a cleaner way to kill sleep
With the
6ee85b80857d241622a349aac47d51b70b27cc46 approach it introduced
errors like:
Error: ... Terminated { sleep $timeout; kill -3 $$ 2> /dev/null; }
Timo Sirainen [Fri, 31 Oct 2025 10:42:05 +0000 (12:42 +0200)]
config: Support config version 2.4.2
Stephan Bosch [Thu, 30 Oct 2025 23:19:45 +0000 (00:19 +0100)]
lib-sasl: sasl-server-mech-otp - Fix parsing of authid from initial client response
Before, it assumed this part to be nul-terminated, while it is not. Therefore,
it could read out-of-bounds memory, possibly crashing, which is wat became
apparent in the fuzzer.
The actual auth service code implicitly always provides a NUL termination
though, because the client response data comes via t_buffer_create() content
which always reserves +1 byte for NUL. Therefore, the auth service would not
have encountered this issue.
OSS-Fuzz report:
456423266
Stephan Bosch [Tue, 28 Oct 2025 13:47:05 +0000 (14:47 +0100)]
lib-sasl: server - Enforce absolute limit on the length of authid/authzid
OSS-Fuzz report:
455796070
Stephan Bosch [Tue, 28 Oct 2025 13:35:06 +0000 (14:35 +0100)]
lib-sasl: Enforce absolute limit on SASL message size for both client and server
This is a second layer of defence against abuse. The real limit enforced by the
auth service can be (is) smaller. Additionally, these limits will make sure the
fuzzer does not time out.
OSS-Fuzz report:
455796070
Aki Tuomi [Fri, 31 Oct 2025 10:53:33 +0000 (12:53 +0200)]
lib-regex: Remove LIBPCRE_LIBS from test dependencies
Was accidentically added in
49ae6e798310e5c4b96709db435a3714ea6468a8
Michael M Slusarz [Sat, 4 Oct 2025 20:24:54 +0000 (14:24 -0600)]
lib: crc32 - Use zlib's built-in CRC32 function
Performance-wise, according to fastmail's crc32 test suite, this is 10x
faster than the previous code.
Aki Tuomi [Mon, 27 Oct 2025 10:33:27 +0000 (12:33 +0200)]
dovecot-sysreport: Add -D|--destdir support
This allows pointing a directory where to write files
Timo Sirainen [Wed, 29 Oct 2025 21:14:08 +0000 (23:14 +0200)]
lib-master: Split off master_service_can_idle_die()
Timo Sirainen [Wed, 29 Oct 2025 17:44:15 +0000 (19:44 +0200)]
lib-master: If SIGINT idle-kill is ignored due to handling a new client, make sure master status is notified
Master should have been notified usually, but it could have been an
unimportant notification that was ignored due to write() returning EAGAIN.
Timo Sirainen [Wed, 29 Oct 2025 17:42:50 +0000 (19:42 +0200)]
lib-master: If SIGINT idle-kill is ignored, make sure master sees the status update
If initial write() to master status pipe fails with EAGAIN, try to send it
when possible.
Timo Sirainen [Thu, 30 Oct 2025 11:29:51 +0000 (13:29 +0200)]
lib: Clarify io_loop_stop_delayed() comment
Timo Sirainen [Fri, 24 Oct 2025 12:46:35 +0000 (15:46 +0300)]
global: Remove default service/*/service_extra_groups=$SET:default_internal_group
This is no longer necessary now that mail_access_groups sets it.
Timo Sirainen [Fri, 24 Oct 2025 12:45:36 +0000 (15:45 +0300)]
config: Support versioned defaults for service settings
Timo Sirainen [Fri, 24 Oct 2025 12:19:12 +0000 (15:19 +0300)]
lib-storage: Change mail_access_groups default to $SET:default_internal_group
Marco Bettini [Wed, 22 Oct 2025 15:25:17 +0000 (15:25 +0000)]
acl: vfile_object_modify_right() - Remove the whole identifier if it has no rights left
Aki Tuomi [Tue, 7 Oct 2025 10:57:26 +0000 (13:57 +0300)]
NEWS: Add news for 2.4.2