]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Tue, 14 Oct 2025 09:58:23 +0000 (12:58 +0300)]
lib-index: Avoid unsafe errno check
scan-build thinks mail_cache_file_close() could have modified errno. This
doesn't seem to actually happen, but it's safer to make sure of it.
Timo Sirainen [Tue, 14 Oct 2025 09:55:19 +0000 (12:55 +0300)]
lib-json: Avoid copying the whole json_value.content union
Mainly because this confuses scan-build, but it should be more efficient as
well.
Timo Sirainen [Tue, 14 Oct 2025 09:49:54 +0000 (12:49 +0300)]
maildir: Fix error handling if dovecot-uidlist file is unexpectedly lost
It would have failed with lseek() error.
Timo Sirainen [Tue, 14 Oct 2025 09:49:34 +0000 (12:49 +0300)]
maildir: Add assert to make sure dirfd() returns a valid fd
Timo Sirainen [Tue, 14 Oct 2025 09:40:50 +0000 (12:40 +0300)]
lib-sasl: test-sasl-authentication - Avoid scan-build dead code complaint
It wasn't really dead code, but test_assert() was marked as ATTR_NORETURN
to static analyzer builds, so it looked like that. However, we can simply
remove this check since test_assert(FALSE) causes the later
failed || test_has_failed() check to match anyway.
Timo Sirainen [Tue, 14 Oct 2025 09:38:24 +0000 (12:38 +0300)]
global: Use ATTR_NONSTRING macro
Timo Sirainen [Tue, 14 Oct 2025 09:38:08 +0000 (12:38 +0300)]
m4/dovecot.m4, lib: Add ATTR_NONSTRING macro
Timo Sirainen [Tue, 14 Oct 2025 09:37:05 +0000 (12:37 +0300)]
m4/dovecot.m4: Use -Wno-default-const-init-field-unsafe if it exists
This causes unnecessary warnings about buffer_t.
Timo Sirainen [Wed, 26 Mar 2025 10:39:49 +0000 (12:39 +0200)]
lib-storage: Change mail_attachment_detection_options default
Set it to: add-flags content-type=!application/signature. However, this
breaks mbox format so keep it empty for mbox. Also don't enable it for
imapc, since it's unlikely to be useful there and it might cause unwanted
attachment flags to be added in some imapc use cases.
Timo Sirainen [Fri, 26 Sep 2025 10:55:37 +0000 (13:55 +0300)]
lib-storage: Reduce data stack usage when finding attachment flags from mails with many MIME parts
Timo Sirainen [Sat, 23 Aug 2025 20:28:12 +0000 (23:28 +0300)]
lib-storage: mail_attachment_detection_options=add-flags - Don't try to add flags for read-only mailbox
Timo Sirainen [Wed, 3 Sep 2025 09:21:50 +0000 (12:21 +0300)]
lib-storage: index_mail_init_stream() - Add asserts to check state if stream has only header
Timo Sirainen [Wed, 3 Sep 2025 09:20:14 +0000 (12:20 +0300)]
lib-storage: Don't try to add attachment flags if stream only has message header
This could have caused wrong attachment flag to be added with imapc format,
because the body wasn't parsed. Other mailbox formats always had a message
body included in the stream.
Timo Sirainen [Wed, 3 Sep 2025 08:39:24 +0000 (11:39 +0300)]
config: Number of new config changes for 0.0.0 version is always 0
Timo Sirainen [Wed, 3 Sep 2025 08:38:32 +0000 (11:38 +0300)]
config: Assume 0.0.0 version is the latest
It's used for git builds.
Timo Sirainen [Wed, 26 Mar 2025 10:38:48 +0000 (12:38 +0200)]
config: Support changing defaults for setting_parser_info.default_settings
This requires reading dovecot_config_version before processing the default
settings.
Timo Sirainen [Wed, 26 Mar 2025 10:04:38 +0000 (12:04 +0200)]
config: Move most boolean fields in config_parser_context to flags enum
Preserve expand_values since it's used all over the place.
Timo Sirainen [Mon, 13 Oct 2025 12:59:53 +0000 (15:59 +0300)]
imap: Don't update proctitle to [unhibernating] if verbose_proctitle=no
Timo Sirainen [Mon, 13 Oct 2025 09:56:12 +0000 (12:56 +0300)]
lib-dict-backend: dict-sql - Fix error handling
Broken by
d7cc1bdc4efe4d0a2aa0e45b27ceeb793c32c8f0
Timo Sirainen [Tue, 14 Oct 2025 09:22:04 +0000 (12:22 +0300)]
dovecot-config: Add AM_CFLAGS to DOVECOT_CFLAGS
Most of the flags are now in AM_CFLAGS since
25785c90702c0d01f4abf15da546d2bc3bf8e276
Timo Sirainen [Tue, 14 Oct 2025 06:47:19 +0000 (09:47 +0300)]
m4/dovecot.m4: Export abs_dovecotdir
Timo Sirainen [Wed, 8 Oct 2025 13:04:54 +0000 (16:04 +0300)]
lib: istream - Add assert to make sure skip/pos state is valid after istream.read()
Timo Sirainen [Wed, 8 Oct 2025 13:08:13 +0000 (16:08 +0300)]
lib-storage: istream-mail - Fix restoring buffer state when istream is larger than expected
Timo Sirainen [Thu, 9 Oct 2025 11:54:39 +0000 (14:54 +0300)]
lib-mail: istream-header-filter - Add refcount to hdr_buf
If more than one snapshot referred to the hdr_buf, it would have been
double-freed. This didn't seem to happen until the following changes.
Timo Sirainen [Wed, 8 Oct 2025 13:05:40 +0000 (16:05 +0300)]
maildir: Delay removal of corrupted sizes from maildir filenames
The size removal functions were doing many distruptive things, which could
have caused crashes on various places where
maildir_mail_set_cache_corrupted() was called from. Delay the fixing to a
few safe locations.
Stephan Bosch [Mon, 13 Oct 2025 10:32:51 +0000 (12:32 +0200)]
auth: auth-sasl - Fix potential segfault in request handling
Keep reference to the request during auth_sasl_request_initial() and
auth_sasl_request_continue() to prevent the auth request object from going away
during callbacks while lib-sasl is still working with it.
Reported by Valgrind.
Stephan Bosch [Mon, 13 Oct 2025 10:04:21 +0000 (12:04 +0200)]
lib-sasl: sasl-server-mech-gssapi - Fix memory leak in get_display_name() error path
Reported by Coverity.
Stephan Bosch [Mon, 13 Oct 2025 09:58:52 +0000 (11:58 +0200)]
lib-sasl: gssapi-dummy - Make gss_display_name() output buffer content nul-terminated
This makes it a little more robust and makes Coverity happier.
Stephan Bosch [Mon, 13 Oct 2025 09:51:33 +0000 (11:51 +0200)]
lib-sasl: dsasl-client-mech-gssapi - Fix memory leak in mech_gssapi_gs1_unwrap() error path
Reported by Coverity.
Stephan Bosch [Mon, 13 Oct 2025 09:48:32 +0000 (11:48 +0200)]
lib-sasl: dsasl-client-mech-gssapi - Fix memory leak in mech_gssapi_sec_context() error path
Reported by Coverity.
Timo Sirainen [Sun, 5 Oct 2025 17:23:16 +0000 (20:23 +0300)]
lib-settings: Fix settings history when plugins have registered settings
The settings are expected to be sorted by the version number.
Timo Sirainen [Sun, 5 Oct 2025 15:49:13 +0000 (18:49 +0300)]
lib, lib-master: Move version_*() to lib/version.[ch]
Timo Sirainen [Sun, 5 Oct 2025 15:56:10 +0000 (18:56 +0300)]
lib-master: Allow including master-service-ssl.h without master-service.h
Timo Sirainen [Sun, 5 Oct 2025 10:18:50 +0000 (13:18 +0300)]
config: Fix including default @group when a similar non-default filter exists
Fixes:
Panic: file hash.c: line 252 (hash_table_insert_node): assertion failed: (opcode == HASH_TABLE_OP_UPDATE)
Timo Sirainen [Mon, 29 Sep 2025 13:07:46 +0000 (16:07 +0300)]
lib-settings: settings-history.py - Add --plugin parameter
Timo Sirainen [Mon, 29 Sep 2025 12:56:20 +0000 (15:56 +0300)]
lib-settings: Install settings-history.py to pkglibexec directory
This way external plugins can have their own settings history files.
Stephan Bosch [Sat, 11 Oct 2025 13:46:56 +0000 (15:46 +0200)]
auth: db-ldap-sasl - Fix compile without LDAP and without installed LDAP development headers
Timo Sirainen [Wed, 8 Oct 2025 08:59:50 +0000 (11:59 +0300)]
config: Parse "@key" with quotes as a setting key, not group include
Timo Sirainen [Fri, 10 Oct 2025 07:26:18 +0000 (10:26 +0300)]
Makefile: dovecot-config - Expand LIBPCRE_LIBS in LIBDOVECOT
Fixes plugin builds:
configure: line ...: LIBPCRE_LIBS: command not found
Stephan Bosch [Thu, 9 Oct 2025 23:36:05 +0000 (01:36 +0200)]
lib-sasl: dsasl-client-mech-gssapi - Remove unused security layer negotiation code
Fix for scan-build-19 report.
Stephan Bosch [Thu, 9 Oct 2025 22:43:51 +0000 (00:43 +0200)]
lib-sasl: sasl-server-request - Assert that client input is only NULL when size is 0
Fix for scan-build report.
Stephan Bosch [Thu, 9 Oct 2025 22:31:31 +0000 (00:31 +0200)]
lib-sasl: test-sasl-oauth2 - Make sure error variable is initialized
Fix for scan-build report.
Stephan Bosch [Sun, 5 Oct 2025 22:19:38 +0000 (00:19 +0200)]
lib-sasl: Add GSS-SPNEGO client support
Stephan Bosch [Sun, 5 Oct 2025 17:02:22 +0000 (19:02 +0200)]
doveadm: doveadm-auth - Add GSSAPI support for login test
This only applies when GSSAPI support is built in.
Stephan Bosch [Sun, 5 Oct 2025 16:58:37 +0000 (18:58 +0200)]
lib-sasl: Add GSSAPI client support
Stephan Bosch [Tue, 7 Oct 2025 16:00:32 +0000 (18:00 +0200)]
lib-sasl: sasl-server-mech-gssapi - Move krb5 oid definition to lib-auth/auth-gssapi and make it const
Stephan Bosch [Tue, 7 Oct 2025 02:01:29 +0000 (04:01 +0200)]
lib-sasl: sasl-server-mech-gssapi - Move mech_gssapi_oid_cmp() to lib-auth/auth-gssapi as auth_gssapi_oid_equal()
Stephan Bosch [Tue, 7 Oct 2025 15:48:22 +0000 (17:48 +0200)]
lib-sasl: sasl-server-mech-gssapi - Move GSSAPI includes to lib-auth/auth-gssapi.h
Stephan Bosch [Wed, 20 Aug 2025 05:27:55 +0000 (07:27 +0200)]
lib-sasl: sasl-server-mech-gssapi - Allow krb5_keytab setting to be NULL
Stephan Bosch [Sat, 18 Nov 2023 21:39:14 +0000 (22:39 +0100)]
lib-sasl: sasl-server-mech-gssapi - Fix detection and handling of absent initial response from client
Stephan Bosch [Sun, 5 Oct 2025 16:43:27 +0000 (18:43 +0200)]
lib-sasl: dsasl-client - Add event
Stephan Bosch [Tue, 19 Aug 2025 20:54:13 +0000 (22:54 +0200)]
doveadm: doveadm-auth - Properly initialize SASL client explicitly
Before, this was done only implicitly by lib-storage
Stephan Bosch [Wed, 6 Aug 2025 02:22:28 +0000 (04:22 +0200)]
lib: strfuncs - Make t_memdup_noconst() public
Stephan Bosch [Tue, 30 Sep 2025 01:35:23 +0000 (03:35 +0200)]
lib-smtp: test-smtp-payload - Add SASL authentication tests
Stephan Bosch [Tue, 30 Sep 2025 02:44:21 +0000 (04:44 +0200)]
lib-smtp: test-smtp-payload - Group global test parameters in struct
Allows easy and reliable clearing of all global test parameters.
Stephan Bosch [Thu, 2 Oct 2025 00:33:58 +0000 (02:33 +0200)]
lib-sasl: Add OTP client support
Stephan Bosch [Wed, 19 Feb 2025 01:25:38 +0000 (02:25 +0100)]
lib-sasl: Add DIGEST-MD5 client support
Stephan Bosch [Thu, 7 Aug 2025 03:22:05 +0000 (05:22 +0200)]
global: Provide protocol, host and port SASL client settings where possible
Stephan Bosch [Wed, 19 Feb 2025 01:21:57 +0000 (02:21 +0100)]
lib-sasl: dsasl-client - Add protocol, host and port as normal settings
Host and port were special parameters before.
Stephan Bosch [Wed, 3 Sep 2025 21:31:26 +0000 (23:31 +0200)]
lib-auth: auth-digest - Rework auth_digest_parse_keyvalue() to yield const results
Stephan Bosch [Wed, 19 Feb 2025 01:11:30 +0000 (02:11 +0100)]
lib-sasl: sasl-server-mech-digest-md5 - Rename error return parameter of parse_digest_response()
Stephan Bosch [Wed, 19 Feb 2025 01:08:12 +0000 (02:08 +0100)]
lib-sasl: sasl-server-mech-digest-md5 - Rename error return parameter of auth_handle_response()
Stephan Bosch [Tue, 18 Feb 2025 01:40:10 +0000 (02:40 +0100)]
lib-sasl: sasl-server-mech-digest-md5 - Move core processing to lib-auth/auth-digest
Stephan Bosch [Wed, 19 Feb 2025 00:49:12 +0000 (01:49 +0100)]
lib-sasl: sasl-server-mech-digest-md5 - Move parse_next() to lib-auth/auth-digest as auth_digest_parse_keyvalue()
Stephan Bosch [Wed, 19 Feb 2025 00:37:27 +0000 (01:37 +0100)]
lib-auth: password-scheme - Move digest_md5_generate() innards to auth-digest as auth_digest_get_hash_a1_secret()
Stephan Bosch [Mon, 7 Nov 2022 23:59:18 +0000 (00:59 +0100)]
lib: hash-method - Add generic incremental API for hash methods.
Stephan Bosch [Sat, 5 Oct 2024 13:01:09 +0000 (15:01 +0200)]
lib-sasl: Add CRAM-MD5 client support
Stephan Bosch [Thu, 3 Oct 2024 21:22:32 +0000 (23:22 +0200)]
lib-sasl: Add fuzzer for SASL interaction
Stephan Bosch [Sat, 5 Oct 2024 12:49:25 +0000 (14:49 +0200)]
lib-test: fuzzer - Make random number generator deterministic when fuzzer is active
Stephan Bosch [Fri, 4 Oct 2024 23:22:28 +0000 (01:22 +0200)]
lib-test: fuzzer - Properly cleanup Dovecot lib at end of fuzzer run
Stephan Bosch [Thu, 26 Oct 2023 17:58:04 +0000 (19:58 +0200)]
lib-sasl: test-sasl-authentication - Test winbind NTLM mechanism using dummy implementation
Stephan Bosch [Mon, 30 Oct 2023 00:42:08 +0000 (01:42 +0100)]
lib-sasl: Add unit test for SASL authentication
Tests involve both the SASL client and the SASL server.
Stephan Bosch [Sat, 4 Oct 2025 16:07:25 +0000 (18:07 +0200)]
lib-sasl: sasl-server-mech-winbind - Fix error message composition for NA return code
Stephan Bosch [Thu, 4 Sep 2025 20:20:29 +0000 (22:20 +0200)]
lib-sasl: sasl-server-mech-winbind - Properly manage helper child processes
Stephan Bosch [Thu, 4 Sep 2025 20:58:42 +0000 (22:58 +0200)]
lib-sasl: sasl-server-mech-winbind - Create event for helper and add debug messages
Stephan Bosch [Sat, 4 Nov 2023 22:08:56 +0000 (23:08 +0100)]
lib-sasl: sasl-server-mech-winbind - Properly clean up helper streams
Child processes are not reaped yet, but they should.
Stephan Bosch [Sat, 4 Nov 2023 22:22:49 +0000 (23:22 +0100)]
lib-sasl: sasl-server-mech-winbind - Rename helper variables consistently to 'helper'
Stephan Bosch [Sat, 4 Nov 2023 22:19:03 +0000 (23:19 +0100)]
lib-sasl: sasl-server-mech-winbind - Move helper pointer from request to mechanism
Stephan Bosch [Sun, 7 Sep 2025 15:13:06 +0000 (17:13 +0200)]
lib-sasl: sasl-client-mech-oauthbearer - Prevent sending unsupported characters in response payload
Stephan Bosch [Sun, 7 Sep 2025 15:11:51 +0000 (17:11 +0200)]
lib-sasl: sasl-server-mech-oauth2 - Properly parse kvpairs
Stephan Bosch [Sat, 4 Nov 2023 20:51:55 +0000 (21:51 +0100)]
lib-sasl: sasl-server - Merge sasl-server-mech-plain-common into sasl-server-mech
Stephan Bosch [Mon, 30 Oct 2023 00:56:11 +0000 (01:56 +0100)]
auth: Move SASL server code to lib-sasl
Stephan Bosch [Sat, 16 Oct 2021 10:36:04 +0000 (12:36 +0200)]
lib-sasl: Rename client mechanism source files
Stephan Bosch [Sat, 4 Oct 2025 20:02:18 +0000 (22:02 +0200)]
auth: sasl-server - Add PASSWORD_MISMATCH output status
This allows more precise handling of password mismatch errors from looked up
credentials.
Stephan Bosch [Fri, 17 Nov 2023 22:19:37 +0000 (23:19 +0100)]
auth: sasl-server-request - Add debug messages for all significant steps in SASL interaction
Stephan Bosch [Sun, 22 Oct 2023 14:37:02 +0000 (16:37 +0200)]
auth: sasl-server-request - Rename struct sasl_server_mech_request mech_event to event
Stephan Bosch [Sun, 29 Oct 2023 02:04:00 +0000 (03:04 +0100)]
auth: sasl-server - Drop remaining auth includes
Stephan Bosch [Mon, 30 Oct 2023 00:34:56 +0000 (01:34 +0100)]
auth: sasl-server-request - Remove struct auth_request field from mechanism request struct
It is no longer needed.
Stephan Bosch [Mon, 30 Oct 2023 03:52:31 +0000 (04:52 +0100)]
auth: sasl-server-request - Add request free callback
Mostly for completenes; it is not currently used.
Stephan Bosch [Tue, 31 Oct 2023 01:48:00 +0000 (02:48 +0100)]
auth: sasl-server-mech-oauth2 - Implement backend API for token validation
Stephan Bosch [Wed, 2 Oct 2024 23:16:35 +0000 (01:16 +0200)]
auth: auth-sasl-mech-oauth2.c - Rename struct auth_request variables to auth_request
Stephan Bosch [Sat, 4 Nov 2023 01:13:25 +0000 (02:13 +0100)]
auth: sasl-server-mech-oauth2 - Refactor mechanism continue functions
Stephan Bosch [Sat, 4 Nov 2023 18:26:37 +0000 (19:26 +0100)]
auth: sasl-server-mech - Add facilities for dynamic mechanism passdb need level
Stephan Bosch [Sat, 28 Oct 2023 05:03:23 +0000 (07:03 +0200)]
auth: sasl-server-mech-gssapi - Implement mechanism-specific settings
Stephan Bosch [Sat, 28 Oct 2023 03:48:37 +0000 (05:48 +0200)]
auth: sasl-server-mech-winbind - Implement mechanism-specific settings
Stephan Bosch [Sat, 28 Oct 2023 03:01:45 +0000 (05:01 +0200)]
auth: sasl-server-mech-otp - Move global state to global mechanism state
Stephan Bosch [Sat, 28 Oct 2023 02:46:10 +0000 (04:46 +0200)]
auth: sasl-server-mech-scram - Code cleanup: Clear key_data request field after lookup
Stephan Bosch [Fri, 27 Oct 2023 23:13:04 +0000 (01:13 +0200)]
auth: sasl-server-mech-scram - Improve the extension API
Stephan Bosch [Fri, 10 Nov 2023 03:19:35 +0000 (04:19 +0100)]
auth: sasl-server-mech-scram - Obtain pointer to server instance from mechanism struct
Stephan Bosch [Fri, 27 Oct 2023 23:02:24 +0000 (01:02 +0200)]
auth: sasl-server-mech-scram - Move password screme and hash method to mechanism data