]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Thu, 3 Oct 2024 21:02:42 +0000 (23:02 +0200)]
lib: strfuncs - Move t_memdup() declaration to logical place in header
Now it sits below a comment that doesn't apply to this function.
Stephan Bosch [Wed, 1 Oct 2025 20:49:22 +0000 (22:49 +0200)]
lib: strnum - Add str_parse_data_uintmax()
Allows parsing numbers from generic data, rather than nul-terminated C-strings.
Stephan Bosch [Sun, 5 Oct 2025 13:27:12 +0000 (15:27 +0200)]
lib-imap-client: Link tests against lib-dovecot
Prevents linking issues later. Also, since lib-imap-client is not in
lib-dovecot, it should not be linking to individual convenience libraries.
Stephan Bosch [Sun, 5 Oct 2025 12:50:20 +0000 (14:50 +0200)]
lib-test: fuzzer - Properly initialize fd_pump to prevent erroneous closing of fd=0
Stephan Bosch [Wed, 3 Sep 2025 20:54:36 +0000 (22:54 +0200)]
lib-test: Reformat fuzzer.c
Stephan Bosch [Sun, 5 Oct 2025 12:46:23 +0000 (14:46 +0200)]
lib-smtp: fuzz-smtp-server - Fix compile warning
Stephan Bosch [Thu, 3 Oct 2024 21:13:45 +0000 (23:13 +0200)]
.gitignore - Add any fuzzer binary
Timo Sirainen [Sat, 4 Oct 2025 13:03:05 +0000 (16:03 +0300)]
lib-dict-backend: dict-sql - Avoid data stack growth
Aki Tuomi [Tue, 30 Sep 2025 17:21:22 +0000 (20:21 +0300)]
virtual: Allow mailbox_count header to be empty
If no folders match, do not error out. Fixes
Error: Mailbox INBOX: virtual index INBOX: Broken mailbox_count header
Timo Sirainen [Sun, 5 Oct 2025 19:54:33 +0000 (22:54 +0300)]
fs-crypt: Support loading fs_crypt in mail_plugins
This allows using it inside chroot.
Timo Sirainen [Sun, 5 Oct 2025 19:53:58 +0000 (22:53 +0300)]
fs-compress: Support loading fs_compress in mail_plugins
This allows using it inside chroot.
Timo Sirainen [Sun, 5 Oct 2025 19:52:37 +0000 (22:52 +0300)]
lib-fs: Add fs_class_unregister()
Decrease fs_classes_deinit() atexit priority so it's called only after
all modules have been unloaded, which could call fs_class_unregister().
Timo Sirainen [Sun, 5 Oct 2025 19:51:22 +0000 (22:51 +0300)]
lib: module_dir_try_load_missing() - Add the wanted modules to be loaded to the error string
This helps to understand what modules need to be explicitly loaded inside a
chroot.
Timo Sirainen [Sun, 5 Oct 2025 19:50:47 +0000 (22:50 +0300)]
lib: module_dir_load_real() - Allocate error_r from data stack
We have T_END_PASS_STR_IF() nowadays - use it.
Aki Tuomi [Fri, 28 Mar 2025 06:15:21 +0000 (08:15 +0200)]
NEWS: Add lib-settings crash to NEWS
Aki Tuomi [Fri, 14 Mar 2025 12:04:35 +0000 (14:04 +0200)]
NEWS: Add NEWS for 2.4.1
Stephan Bosch [Tue, 30 Sep 2025 02:36:37 +0000 (04:36 +0200)]
lib-smtp: smtp-client-connection - Fix sending second AUTH response
Due to a copy-paste error it was again using the now freed sasl_ir field for
composing the response.
Stephan Bosch [Tue, 30 Sep 2025 02:35:01 +0000 (04:35 +0200)]
lib-smtp: smtp-client-command - Allow sending empty AUTH line
Timo Sirainen [Wed, 1 Oct 2025 06:59:13 +0000 (09:59 +0300)]
doveadm: test-doveadm-util - Remove duplicate symbol
5beff56913f57c42597687e871109e095738946c changed the tests to be linked to
libmaster, which added this duplication.
Timo Sirainen [Wed, 1 Oct 2025 06:54:11 +0000 (09:54 +0300)]
lib-auth-client: Link tests to all library dependencies
Now that test-auth-master links to libmaster, remove duplicate symbols from
it. And since it's now using the real master_service_is_killed(),
master_service must be non-NULL.
Timo Sirainen [Wed, 1 Oct 2025 06:53:41 +0000 (09:53 +0300)]
lib-auth: Link libauth to libotp dependency
Timo Sirainen [Fri, 12 May 2023 15:50:19 +0000 (18:50 +0300)]
lib-storage: Don't try to add attachment flags for readonly mailboxes
Timo Sirainen [Fri, 12 May 2023 15:48:58 +0000 (18:48 +0300)]
lib-storage: Fix mail_attachment_detection_options=no-flags-on-fetch
The attachment flag was still added if message body was parsed.
Timo Sirainen [Fri, 1 Oct 2021 11:40:32 +0000 (14:40 +0300)]
lib-storage: Don't ignore mailbox list index refresh error when updating STATUS info
Timo Sirainen [Fri, 1 Oct 2021 11:40:00 +0000 (14:40 +0300)]
lib-storage: mailbox_list_index_refresh() - Don't skip refresh if index opening failed
Timo Sirainen [Fri, 31 Mar 2023 12:32:17 +0000 (15:32 +0300)]
lib-master: Assert-crash if master_service_init_log*() is called before master_getopt()
This makes sure that -L parameter will work for all services.
Timo Sirainen [Fri, 31 Mar 2023 12:30:59 +0000 (15:30 +0300)]
auth, *-login: Fix using -L parameter to log directly
Timo Sirainen [Mon, 29 Sep 2025 12:06:41 +0000 (15:06 +0300)]
lib-settings: Don't add proxy_session_established to @metric_defaults/proxy until dovecot_config_version is changed
Timo Sirainen [Mon, 29 Sep 2025 11:10:53 +0000 (14:10 +0300)]
config: Support settings change tracking for named list filters
Timo Sirainen [Mon, 29 Sep 2025 11:09:42 +0000 (14:09 +0300)]
config: Assume dovecot_config_version=0.0.0 is the same as the latest version
It's used for git builds.
Timo Sirainen [Thu, 25 Sep 2025 11:47:01 +0000 (14:47 +0300)]
imap: LSUB - Hide MAILBOX_NOSELECT flag if returned by mailbox listing
Timo Sirainen [Thu, 25 Sep 2025 09:19:43 +0000 (12:19 +0300)]
lib-storage: Fix children flags when listing mailbox subscriptions with nonexistent mailboxes
Timo Sirainen [Thu, 25 Sep 2025 08:36:46 +0000 (11:36 +0300)]
lib-storage: Fix subscription listing showing parent namespace prefix
If e.g. shared/user/box was subscribed, LSUB "" % didn't list shared
namespace prefix.
Timo Sirainen [Thu, 25 Sep 2025 08:01:56 +0000 (11:01 +0300)]
lib-storage: Subscription notifications - Fix crash if initial subscription refresh failed
Timo Sirainen [Thu, 25 Sep 2025 07:55:58 +0000 (10:55 +0300)]
lib-storage: Remove unused mailbox_list_set_subscription_flags()
Timo Sirainen [Thu, 11 Sep 2025 15:52:45 +0000 (18:52 +0300)]
acl: Fix potential crash when listing shared mailbox subscriptions
This code is obsolete now that subscriptions handling was moved to
lib-storage.
Using IMAP LIST (SUBSCRIBED) resulted in a crash:
Panic: file acl-mailbox-list.c: line 384 (acl_mailbox_list_info_is_visible): assertion failed: ((info->flags & PRESERVE_MAILBOX_FLAGS) != 0)
Timo Sirainen [Thu, 25 Sep 2025 07:41:49 +0000 (10:41 +0300)]
lib-storage: Fix subscription listing hiding public/shared namespace prefixes
Timo Sirainen [Thu, 25 Sep 2025 07:40:40 +0000 (10:40 +0300)]
lib-storage: mailbox_list_ns_prefix_return() - Move subscription checks to be last
This will be needed by the following changes.
Timo Sirainen [Thu, 11 Sep 2025 19:00:30 +0000 (22:00 +0300)]
lib-storage, acl: Move hiding non-listable public/shared mailboxes to lib-storage
The subscriptions handling is now in lib-storage code, and ACL code doesn't
know about it. Change this so that if public/shared namespace has
subscriptions=yes (i.e. shared across all users), any nonexistent mailboxes'
subscriptions are hidden. This assumes that the user doesn't have enough
ACL rights to list the mailboxes, so they also don't want subscriptions for
them.
Timo Sirainen [Wed, 24 Sep 2025 14:13:27 +0000 (17:13 +0300)]
lib-storage: mailbox_list_iter_update() - Don't set mailbox list children-flags
Especially when it's used with subscriptions, the existence of subscription
tree nodes has nothing to do with whether the nodes contain existing
mailboxes.
Timo Sirainen [Thu, 25 Sep 2025 10:22:27 +0000 (13:22 +0300)]
imapc: Set children-flags manually using the mailbox list output
Timo Sirainen [Thu, 11 Sep 2025 18:37:38 +0000 (21:37 +0300)]
lib-storage: Fix subscription refresh when it autocreates a namespace
If there's a shared/user/foo subscription, it might create shared/user/
namespace. In that case the subscription should go to shared/user/
namespace, not shared/.
Timo Sirainen [Wed, 24 Sep 2025 14:12:32 +0000 (17:12 +0300)]
lib-storage: mailbox_list_subscriptions_fill() - Remove unused default_nonexistent parameter
Timo Sirainen [Wed, 24 Sep 2025 11:21:51 +0000 (14:21 +0300)]
lib-storage: Remove unused struct mailbox_list_iter_update_context.update_only
It was always FALSE.
Timo Sirainen [Thu, 25 Sep 2025 11:46:04 +0000 (14:46 +0300)]
lib-storage: Fix listing nonexistent subscriptions with children
If both A and A/B were subscribed, but nonexistent, the A/B listing marked A
as having been listed already, so it wasn't returned.
Timo Sirainen [Thu, 25 Sep 2025 11:45:17 +0000 (14:45 +0300)]
lib-storage: fs layout listing - Don't return both MAILBOX_SELECT and MAILBOX_NOSELECT flags
Timo Sirainen [Fri, 26 Sep 2025 11:39:51 +0000 (14:39 +0300)]
lib-storage: Send mail_opened event only once per mail
The first time mail is opened it is read into cache, while the following
reads are likely to be using the cache. Sending a mail_opened event for the
following reads just confuses statistics.
Timo Sirainen [Mon, 29 Sep 2025 09:12:36 +0000 (12:12 +0300)]
lib-settings: Change v3.1.1 default settings to v3.2.0
Timo Sirainen [Wed, 30 Jul 2025 10:22:41 +0000 (13:22 +0300)]
imap, pop3, submission: Remove non-working environment variable handling
Remove support for IP, LOCAL_IP and CLIENT_INPUT environments. These were
originally used by Dovecot v1.x for passing these fields from master
process. They are no longer useful, and they haven't been working anyway.
Also for imap remove support for IMAPLOGINTAG environment.
Timo Sirainen [Wed, 30 Jul 2025 10:20:23 +0000 (13:20 +0300)]
imap, pop3, submission, imap-urlauth: Fix using USER environment when running standalone
Stephan Bosch [Sun, 8 Nov 2020 09:55:56 +0000 (10:55 +0100)]
lmtp: lmtp-client - Support command pipelining
Stephan Bosch [Mon, 9 Nov 2020 17:07:15 +0000 (18:07 +0100)]
lmtp: lmtp-local - Correctly return -1 in lmtp_local_rcpt() upon quota error
This not extremely important, but original code was confusing.
Stephan Bosch [Wed, 27 Aug 2025 15:03:19 +0000 (17:03 +0200)]
lib-smtp: smtp-server-cmd-data - Properly block pipeline upon final DATA/BDAT command
Never process the next transaction from the input when the current one is not
finished.
Stephan Bosch [Wed, 27 Aug 2025 17:42:15 +0000 (19:42 +0200)]
lib-smtp: smtp-server - Drop smtp_server_reply_early()
Pipeline handling revised in previous commit makes this functionality
superfluous.
Stephan Bosch [Wed, 27 Aug 2025 17:28:53 +0000 (19:28 +0200)]
lib-smtp: smtp-server-connection - Fix handling of data commands blocking the pipeline
Data commands would cause the server to hang upon blocking the pipeline if a
reply was submitted while data was still pending from input.
Stephan Bosch [Wed, 27 Aug 2025 17:27:25 +0000 (19:27 +0200)]
lib-smtp: smtp-command-parser - Allow skipping data from previous command without reading the next
Stephan Bosch [Fri, 26 Sep 2025 01:37:58 +0000 (03:37 +0200)]
lib-smtp: smtp-server-command - Make smtp_server_command_pipeline_(un)block() debug logging consistent
Timo Sirainen [Mon, 22 Sep 2025 09:31:11 +0000 (12:31 +0300)]
config: @metric_defaults=proxy - Add proxy_session_established
This shows post-auth latency for actually logging into backend.
Aki Tuomi [Tue, 23 Sep 2025 09:58:07 +0000 (12:58 +0300)]
lib-var-expand: regex - Support older back references
Timo Sirainen [Tue, 16 Sep 2025 19:13:28 +0000 (22:13 +0300)]
virtual: If index file has UIDs out-of-order, mark the index corrupted
The next open will rebuild the index.
Timo Sirainen [Thu, 11 Sep 2025 12:29:46 +0000 (15:29 +0300)]
auth: passwd-file - Avoid assert-crash when using "=value" or "userdb_=value" extra field
Timo Sirainen [Thu, 11 Sep 2025 12:27:52 +0000 (15:27 +0300)]
auth: ldap - Avoid assert-crash when using %{ldap:} or %{ldap_multi:} with empty attribute name
Timo Sirainen [Thu, 11 Sep 2025 12:25:25 +0000 (15:25 +0300)]
auth: Avoid assert-crash if returning ":default" passdb or userdb extra field
Timo Sirainen [Thu, 11 Sep 2025 12:21:55 +0000 (15:21 +0300)]
auth: auth_request_import() - Avoid crash with "passdb_" or "userdb_" field
Timo Sirainen [Thu, 11 Sep 2025 12:20:26 +0000 (15:20 +0300)]
auth: auth_fields_import_*() - Handle empty key without crashing
Timo Sirainen [Thu, 11 Sep 2025 12:14:16 +0000 (15:14 +0300)]
auth: auth_request_set_userdb_field() - Add assert that name can't be empty
Timo Sirainen [Thu, 18 Sep 2025 19:35:48 +0000 (22:35 +0300)]
acl: Add acl_dict_index setting to rebuild ACL dict without iterating the whole dict
Timo Sirainen [Thu, 18 Sep 2025 20:25:47 +0000 (23:25 +0300)]
acl: struct acl_backend_vfile - Remove unused set
Timo Sirainen [Thu, 11 Sep 2025 08:02:40 +0000 (11:02 +0300)]
lib-auth, auth: Include auth_allow_weak_schemes setting in related log messages
Makes it easier to understand how to change the behavior.
Aki Tuomi [Thu, 11 Sep 2025 07:51:51 +0000 (10:51 +0300)]
plugins/acl: doveadm acl - Fix crash if ACLs not enabled
Ensure ACLs are actually enabled when opening mailbox.
Fixes Panic: Module context acl_storage_module missing
Stephan Bosch [Mon, 8 Sep 2025 03:01:36 +0000 (05:01 +0200)]
auth: mech-winbind - GSS-SPNEGO mechanism is erroneously marked as not accepting NUL
Stephan Bosch [Fri, 5 Sep 2025 14:33:18 +0000 (16:33 +0200)]
lib-http: http-url - Preserve significant path percent encoding through parse and create
Previously, %2f in the path part of the URL was parsed to '/' and not encoded
back to %2f when the (normalized) URL was written back to a string using
http_url_create(). Now, an encoded version of the path is preserved in struct
http_url, so that the distinction between real delimiters and encoded literals
is always preserved.
Aki Tuomi [Thu, 4 Sep 2025 05:46:06 +0000 (08:46 +0300)]
m4: Fix how pcre2_substitute_callout_block is checked
The old way was very wrong
Timo Sirainen [Wed, 3 Sep 2025 13:03:41 +0000 (16:03 +0300)]
doveadm: Clarify "Failed to communicate to doveadm server" error message
Timo Sirainen [Wed, 3 Sep 2025 13:02:02 +0000 (16:02 +0300)]
doveadm: If commands are aborted by signal, log them as "Shutting down"
Timo Sirainen [Wed, 3 Sep 2025 13:00:46 +0000 (16:00 +0300)]
doveadm: Replace master_service_is_killed() calls with doveadm_is_killed()
Timo Sirainen [Wed, 3 Sep 2025 13:00:06 +0000 (16:00 +0300)]
doveadm: Move doveadm_is_killed() to doveadm-util
Timo Sirainen [Wed, 3 Sep 2025 13:57:03 +0000 (16:57 +0300)]
doveadm: Link test programs against the whole libdovecot
Needed for the following commit.
Timo Sirainen [Wed, 3 Sep 2025 12:52:31 +0000 (15:52 +0300)]
doveadm: Fix mail server command failure handling with restart_request_count>1
If communication failed with doveadm server, or there was simply a
redirection, the next doveadm command handled by the process failed as well.
Timo Sirainen [Wed, 3 Sep 2025 12:49:02 +0000 (15:49 +0300)]
doveadm: mail-server - Rename internal_failure to server_connect_failure
This describes it better.
Timo Sirainen [Wed, 3 Sep 2025 10:58:28 +0000 (13:58 +0300)]
doveadm: For Pro edition, default to service_restart_request_count=1000
Michael M Slusarz [Mon, 17 Mar 2025 00:59:38 +0000 (17:59 -0700)]
fts-flatcurve: Ensure that mailbox parameters are always truncated before changing
Timo Sirainen [Wed, 3 Sep 2025 06:59:46 +0000 (09:59 +0300)]
imapc: Fix imapc_features=guid-forced GUID generation
It was supposed to be only from header, but in some situations it included
the body as well.
Timo Sirainen [Tue, 2 Sep 2025 10:28:44 +0000 (13:28 +0300)]
lib-mail: istream-header-filter - Fix potential assert-crash
In some situations multiple snapshots were created, which broke the logic
of using a single snapshot_pending boolean. Changed it to refcount.
Fixes:
Panic: file istream-header-filter.c: line 665 (i_stream_header_filter_snapshot_free): assertion failed: (snapshot->mstream->snapshot_pending)
Aki Tuomi [Mon, 1 Sep 2025 12:21:12 +0000 (15:21 +0300)]
lib-regex: Fail if PCRE2_SUBSTITUTE_LITERAL is not supported by pcre2
Aki Tuomi [Mon, 1 Sep 2025 12:20:48 +0000 (15:20 +0300)]
lib-regex: Only use pcre2_substitute_callout_block() if it's available
Stephan Bosch [Sat, 30 Aug 2025 15:59:20 +0000 (17:59 +0200)]
lib-auth-client: auth-client-request - Fix panic occurring upon channel binding failure
Panic was:
imap-login: Panic: Can't create multiple passthrough events - finish the earlier with ->event()
Stephan Bosch [Fri, 21 Feb 2025 03:13:02 +0000 (04:13 +0100)]
auth: mech-oauth2 - Use lib-auth/auth-gs2
Stephan Bosch [Fri, 21 Feb 2025 03:12:54 +0000 (04:12 +0100)]
lib-sasl: mech-oauthbearer - Use lib-auth/auth-gs2
Stephan Bosch [Fri, 21 Feb 2025 01:14:35 +0000 (02:14 +0100)]
lib-auth: auth-scram-server - Use auth-gs2
Stephan Bosch [Fri, 21 Feb 2025 00:38:36 +0000 (01:38 +0100)]
lib-auth: auth-scram-client - Use auth-gs2
Stephan Bosch [Wed, 8 Mar 2023 20:31:09 +0000 (21:31 +0100)]
lib-auth: Add auth-gs2 API
Stephan Bosch [Fri, 21 Feb 2025 16:54:48 +0000 (17:54 +0100)]
lib-sasl: mech-oauthbearer - Use container_of()
Stephan Bosch [Fri, 21 Feb 2025 16:44:56 +0000 (17:44 +0100)]
auth: mech-oauth2 - Rename continued data to reponse data/payload
Makes more sense in SASL overall
Stephan Bosch [Sat, 22 Feb 2025 21:20:01 +0000 (22:20 +0100)]
auth: mech-oauth2 - Send openid-configuration result field only when available
Stephan Bosch [Mon, 20 Nov 2023 15:53:05 +0000 (16:53 +0100)]
auth: mech-oauth2 - Rework error handling
Treat passdb errors as "invalid_token" and treat request decoding problems as
"invalid_request" status, which makes more sense. Also simplify the overall
structure.
Stephan Bosch [Tue, 31 Oct 2023 16:08:28 +0000 (17:08 +0100)]
auth: mech-oauth2 - Don't send payload for internal error
Stephan Bosch [Fri, 21 Feb 2025 16:19:19 +0000 (17:19 +0100)]
auth: mech-oauth2 - Reorder mechanism functions
Makes more sense this way.
Stephan Bosch [Sun, 4 Aug 2024 21:33:05 +0000 (23:33 +0200)]
auth: mech-oauth2 - Rename oauth2_send_failure() to oauth2_fail()
Makes more sense; it also fails the request.
Stephan Bosch [Sun, 4 Aug 2024 12:59:15 +0000 (14:59 +0200)]
auth: mech-oauth2 - Improve use of json-ostream