]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
2 weeks agolib-imap: seqset - Fail if seeing over 32bit sequence numbers
Timo Sirainen [Thu, 4 Dec 2025 11:46:03 +0000 (13:46 +0200)] 
lib-imap: seqset - Fail if seeing over 32bit sequence numbers

Previously they were wrapped to 32bit number.

12 days agoimapc: Add support for SEARCH MIMEPART
Timo Sirainen [Thu, 4 Dec 2025 07:19:33 +0000 (09:19 +0200)] 
imapc: Add support for SEARCH MIMEPART

Use it if the remote server advertises SEARCH=X-MIMEPART or SEARCH=MIMEPART.

2 weeks agologin-common: Use login_binary.service_name for anvil lookups
Timo Sirainen [Wed, 3 Dec 2025 14:00:08 +0000 (16:00 +0200)] 
login-common: Use login_binary.service_name for anvil lookups

This fixes mail_max_userip_connections to work with managesieve. It was
previously using "sieve" to do the lookup, while actually using
"managesieve" for registering itself to anvil. Now the lookup will also
use "managesieve".

2 weeks agologin-common, *-login: Add login_binary.service_name
Timo Sirainen [Wed, 3 Dec 2025 13:58:55 +0000 (15:58 +0200)] 
login-common, *-login: Add login_binary.service_name

This will be used for anvil.

2 weeks agosubmission-login: Handle CLIENT_AUTH_RESULT_LIMIT_REACHED as temporary error
Timo Sirainen [Wed, 3 Dec 2025 10:35:55 +0000 (12:35 +0200)] 
submission-login: Handle CLIENT_AUTH_RESULT_LIMIT_REACHED as temporary error

2 weeks agologin-common, *-login: Add proxy_dest_connection_limit error_code to proxy_session_fi...
Timo Sirainen [Wed, 3 Dec 2025 10:06:42 +0000 (12:06 +0200)] 
login-common, *-login: Add proxy_dest_connection_limit error_code to proxy_session_finished

If IMAP backend returns with [LIMIT] or POP3 backend returns with [IN-USE],
use this error code rather than the generic proxy_dest_auth_failed.
Error messages are also updated.

2 weeks agopop3-login: If mail_max_userip_connections is reached, reply to login with [IN-USE...
Timo Sirainen [Wed, 3 Dec 2025 09:43:19 +0000 (11:43 +0200)] 
pop3-login: If mail_max_userip_connections is reached, reply to login with [IN-USE] prefix

The [IN-USE] indicates that the mailbox is locked for servers that allow
only a single POP3 client at a time. This is similar to rejecting login
due to too many concurrent logins.

2 weeks agologin-common: If proxy fails, log the reason in the "Login aborted" log line
Timo Sirainen [Wed, 3 Dec 2025 09:25:45 +0000 (11:25 +0200)] 
login-common: If proxy fails, log the reason in the "Login aborted" log line

It was already logged separately in proxy's "Login failed" line, but having
the reason in the "Login aborted" line as well avoids having to match log
lines to find the reason.

12 days agoimapc: Support SORT=DISPLAY extension
Timo Sirainen [Tue, 2 Dec 2025 22:33:12 +0000 (00:33 +0200)] 
imapc: Support SORT=DISPLAY extension

12 days agoimapc: Use ESORT extension if it exists
Timo Sirainen [Tue, 2 Dec 2025 21:39:40 +0000 (23:39 +0200)] 
imapc: Use ESORT extension if it exists

12 days agoimapc: Implement SORT optimization
Timo Sirainen [Tue, 2 Dec 2025 16:47:43 +0000 (18:47 +0200)] 
imapc: Implement SORT optimization

12 days agolib-imap-client, imapc: Automatically register no-CAPABILITY values for imapc_features
Timo Sirainen [Wed, 3 Dec 2025 21:07:56 +0000 (23:07 +0200)] 
lib-imap-client, imapc: Automatically register no-CAPABILITY values for imapc_features

Remove explicit no-metadata, no-qresync and no-imap4rev2 features, since
they're now automatically added.

no-acl was left for now, because it's used regardless of the advertised ACL
CAPABILITY. This should probably be changed.

12 days agolib-imap-client: Add and use imapc_capability_lookup()
Timo Sirainen [Wed, 3 Dec 2025 21:04:26 +0000 (23:04 +0200)] 
lib-imap-client: Add and use imapc_capability_lookup()

12 days agolib-imap-client: Change imapc_features to be case-sensitive
Timo Sirainen [Wed, 3 Dec 2025 20:59:09 +0000 (22:59 +0200)] 
lib-imap-client: Change imapc_features to be case-sensitive

Settings in general are case sensitive - there's no reason to make them case
insensitive.

12 days agolib-imap-client: Move imapc_capability* to imapc-settings.[ch]
Timo Sirainen [Wed, 3 Dec 2025 20:54:24 +0000 (22:54 +0200)] 
lib-imap-client: Move imapc_capability* to imapc-settings.[ch]

12 days agoimapc: Handle SEARCH NO replies by forwarding the error
Timo Sirainen [Wed, 3 Dec 2025 00:31:51 +0000 (02:31 +0200)] 
imapc: Handle SEARCH NO replies by forwarding the error

This is how most of the other commands already work. It just wasn't done
for SEARCH.

12 days agoimapc: Fix handling SEARCH failures
Timo Sirainen [Wed, 3 Dec 2025 00:27:35 +0000 (02:27 +0200)] 
imapc: Fix handling SEARCH failures

Previously if the remote SEARCH failed, the failure was simply ignored and
empty results returned.

12 days agoimapc: Fix sending UID STORE commands
Timo Sirainen [Wed, 3 Dec 2025 00:46:21 +0000 (02:46 +0200)] 
imapc: Fix sending UID STORE commands

The uidset parameter always ended with a comma, which isn't valid IMAP
protocol.

12 days agolib-imap: Add imap_seq_set_ordered_parse()
Timo Sirainen [Tue, 2 Dec 2025 21:39:23 +0000 (23:39 +0200)] 
lib-imap: Add imap_seq_set_ordered_parse()

12 days agolib-imap: imap_seq_set_*parse() - Return empty input string as an error
Timo Sirainen [Tue, 2 Dec 2025 22:43:26 +0000 (00:43 +0200)] 
lib-imap: imap_seq_set_*parse() - Return empty input string as an error

12 days agolib-imap: Add test-imap-seqset
Timo Sirainen [Tue, 2 Dec 2025 22:44:31 +0000 (00:44 +0200)] 
lib-imap: Add test-imap-seqset

12 days agolib: Reformat seq-set-builder.h
Timo Sirainen [Wed, 3 Dec 2025 00:39:53 +0000 (02:39 +0200)] 
lib: Reformat seq-set-builder.h

13 days agolib-login: Don't reset process title after successful login
Timo Sirainen [Wed, 3 Dec 2025 09:11:00 +0000 (11:11 +0200)] 
lib-login: Don't reset process title after successful login

The login_server_conn_unref() function was unconditionally calling
login_server_proctitle_refresh(), which would reset the process title
to "[idling]". This happened even after a successful login, overwriting
the process title set by the service (e.g., imap, pop3).

3 weeks agoimapc: Add STATUS (DELETED)
Marco Bettini [Mon, 10 Nov 2025 16:31:08 +0000 (16:31 +0000)] 
imapc: Add STATUS (DELETED)

3 weeks agoimapc: imapc_server_unselect() - Use root separator for unselect-via-select
Marco Bettini [Tue, 18 Nov 2025 13:50:43 +0000 (13:50 +0000)] 
imapc: imapc_server_unselect() - Use root separator for unselect-via-select

3 weeks agoimapc: Handle the response to UNSELECT on the remote side
Marco Bettini [Tue, 18 Nov 2025 10:30:14 +0000 (10:30 +0000)] 
imapc: Handle the response to UNSELECT on the remote side

3 weeks agoimapc: Extract imapc_server_unselect()
Marco Bettini [Thu, 13 Nov 2025 13:32:52 +0000 (13:32 +0000)] 
imapc: Extract imapc_server_unselect()

3 weeks agolib-imap-client: Track connection's selected mailbox
Marco Bettini [Thu, 13 Nov 2025 11:26:46 +0000 (11:26 +0000)] 
lib-imap-client: Track connection's selected mailbox

3 weeks agolib-imap-client: Propagate selected mailbox name to struct imapc_client_mailbox
Marco Bettini [Mon, 10 Nov 2025 15:23:14 +0000 (15:23 +0000)] 
lib-imap-client: Propagate selected mailbox name to struct imapc_client_mailbox

3 weeks agolib-imap-client: imapc_connection_unselect() - Rename to imapc_connection_mailbox_clo...
Marco Bettini [Thu, 13 Nov 2025 10:57:52 +0000 (10:57 +0000)] 
lib-imap-client: imapc_connection_unselect() - Rename to imapc_connection_mailbox_closed()

3 weeks agoimap: Add STATUS (DELETED)
Marco Bettini [Mon, 27 Oct 2025 15:43:01 +0000 (15:43 +0000)] 
imap: Add STATUS (DELETED)

3 weeks agolib: connection API - Add assert to make sure input is not NULL
Timo Sirainen [Mon, 24 Nov 2025 08:30:12 +0000 (10:30 +0200)] 
lib: connection API - Add assert to make sure input is not NULL

Some code, such as http_client_connection_start_tunnel(), can explicitly set
input/output to NULL to detach from the connection. However, they shouldn't
do it with client_connect_succeeded=FALSE stage.

Improvement to 95512b697fdbdd16d4112c6eec45ec4f3792485c

3 weeks agolib-master: test-event-stats - Fix memory leak
Timo Sirainen [Sun, 23 Nov 2025 21:24:30 +0000 (23:24 +0200)] 
lib-master: test-event-stats - Fix memory leak

Broken by 95512b697fdbdd16d4112c6eec45ec4f3792485c

2 weeks agodoveadm: Flush print output after processing each user
Timo Sirainen [Tue, 2 Dec 2025 11:11:20 +0000 (13:11 +0200)] 
doveadm: Flush print output after processing each user

Otherwise when processing many users, the print output wouldn't be flushed
until enough output had been written. If there wasn't much written, it
could have taken a long time to see anything printed.

3 weeks agoglobal: Replace important iostream == NULL checks with iostream->closed
Timo Sirainen [Mon, 1 Dec 2025 17:25:41 +0000 (19:25 +0200)] 
global: Replace important iostream == NULL checks with iostream->closed

This are useful after the previous connection_disconnect() API change to
preserve the old behavior better.

More checks could have been done or NULL checks could have been removed, but
for now lets just do the minimum that is useful.

3 weeks agolib: connection API - Always have iostreams available
Timo Sirainen [Mon, 1 Dec 2025 16:18:27 +0000 (18:18 +0200)] 
lib: connection API - Always have iostreams available

Set iostreams immediately when connection is initialized, and unset them
only at connection_deinit(). client_disconnect() only closes the iostreams.
This way it's safe to always access connection's iostreams without having to
check whether they are NULL.

This fixes at least a crash in auth process's pass_callback_finish()
where output is tried to be written to auth-master client connection,
which has already disconnected.

3 weeks agolib: connection API - Add client_connect_succeeded field
Timo Sirainen [Mon, 1 Dec 2025 23:55:23 +0000 (01:55 +0200)] 
lib: connection API - Add client_connect_succeeded field

This is needed after the following change, since it's not possible to use
input/output != NULL check for it.

3 weeks agolib-program-client: test-program-client-local - Wait longer with valgrind
Aki Tuomi [Wed, 19 Nov 2025 08:05:41 +0000 (10:05 +0200)] 
lib-program-client: test-program-client-local - Wait longer with valgrind

3 weeks agolib-program-client: test-program-client-unix - Finish ostream
Aki Tuomi [Wed, 19 Nov 2025 08:03:33 +0000 (10:03 +0200)] 
lib-program-client: test-program-client-unix - Finish ostream

3 weeks agolib-program-client: test-program-client - Do not require error handling
Aki Tuomi [Wed, 19 Nov 2025 07:59:25 +0000 (09:59 +0200)] 
lib-program-client: test-program-client - Do not require error handling

It's not important here.

3 weeks agoCONTRIBUTING.md: First version
Aki Tuomi [Thu, 20 Nov 2025 11:49:58 +0000 (13:49 +0200)] 
CONTRIBUTING.md: First version

3 weeks agoAGENTS.md: First version
Aki Tuomi [Thu, 20 Nov 2025 11:45:34 +0000 (13:45 +0200)] 
AGENTS.md: First version

3 weeks agoconfigure: Fix LIBDOVECOTTEST_LIBS to LIBDOVECOT_TEST_LIBS
Aki Tuomi [Wed, 19 Nov 2025 16:59:48 +0000 (18:59 +0200)] 
configure: Fix LIBDOVECOTTEST_LIBS to LIBDOVECOT_TEST_LIBS

3 weeks agolib-dovecot: Make it possible to do semistatic libdovecot.so
Aki Tuomi [Wed, 19 Nov 2025 10:10:27 +0000 (12:10 +0200)] 
lib-dovecot: Make it possible to do semistatic libdovecot.so

This can be now done with setting
 - ZLIB_LIBS_STATIC to libz.a location
 - LIBPCRE_LIBS_STATIC to libpcre2-32.a location
 - SSL_LIBS to both libssl.a and libcrypto.a location

3 weeks agoglobal: Add and use LIBDOVECOT_TEST_LIBS
Aki Tuomi [Wed, 19 Nov 2025 10:09:04 +0000 (12:09 +0200)] 
global: Add and use LIBDOVECOT_TEST_LIBS

3 weeks agodoveadm: doveadm_blocking_connect() - Fix panic if handshake read() fails
Timo Sirainen [Mon, 17 Nov 2025 09:14:22 +0000 (11:14 +0200)] 
doveadm: doveadm_blocking_connect() - Fix panic if handshake read() fails

Fixes:
Panic: output stream .../master is missing error handling

4 weeks agolib-var-expand: Fix unit test failure with some bison versions
Timo Sirainen [Tue, 18 Nov 2025 13:18:56 +0000 (15:18 +0200)] 
lib-var-expand: Fix unit test failure with some bison versions

Some versions start the error with "syntax error, unexpected $end".
Broken by fcedf9dfe8db1fa0952df47ddfc26d930188863a

4 weeks agomaster: Set anvil process's last_status_update immediately after config reload
Timo Sirainen [Tue, 18 Nov 2025 12:49:54 +0000 (14:49 +0200)] 
master: Set anvil process's last_status_update immediately after config reload

4 weeks agopop3c: Fix potential hangs with SSL
Timo Sirainen [Mon, 17 Nov 2025 13:32:05 +0000 (15:32 +0200)] 
pop3c: Fix potential hangs with SSL

io_add_istream() should be used when SSL iostreams.

4 weeks agopop3c: Show the exact state where client timed out
Timo Sirainen [Mon, 17 Nov 2025 13:23:11 +0000 (15:23 +0200)] 
pop3c: Show the exact state where client timed out

Many different states caused "Authentication timed out".

4 weeks agolib-http: Add HTTP_CLIENT_REQUEST_ERROR_PREREQUISITE_FAILED error code
Markus Valentin [Thu, 13 Nov 2025 11:04:05 +0000 (12:04 +0100)] 
lib-http: Add HTTP_CLIENT_REQUEST_ERROR_PREREQUISITE_FAILED error code

This new internal error code can be used to signal that a prerequisite
for submitting the request failed.

4 weeks agoauth: auth_cache_parse_key_and_fields() - Change to return error instead of i_fatal()
Timo Sirainen [Thu, 6 Nov 2025 13:25:55 +0000 (15:25 +0200)] 
auth: auth_cache_parse_key_and_fields() - Change to return error instead of i_fatal()

4 weeks agoauth: Add and use userdb_set_cache_key() to set cache key
Timo Sirainen [Thu, 6 Nov 2025 13:19:21 +0000 (15:19 +0200)] 
auth: Add and use userdb_set_cache_key() to set cache key

4 weeks agoauth: Add and use passdb_set_cache_key() to set cache key
Timo Sirainen [Thu, 6 Nov 2025 13:16:18 +0000 (15:16 +0200)] 
auth: Add and use passdb_set_cache_key() to set cache key

4 weeks agoauth: ldap - Avoid repeating error messages if iteration fails due to invalid settings
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

4 weeks agoauth: ldap - Fix crash if users are iterated, but userdb_ldap_iterate_fields is not set
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

4 weeks agoauth: Don't initialize cache key if caching is disabled for the userdb
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

4 weeks agoauth: userdb.preinit() - Add userdb_parameters parameter
Timo Sirainen [Thu, 6 Nov 2025 12:46:39 +0000 (14:46 +0200)] 
auth: userdb.preinit() - Add userdb_parameters parameter

4 weeks agoauth: Don't initialize cache key if caching is disabled for the passdb
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

4 weeks agoauth: passdb.preinit() - Add passdb_parameters parameter
Timo Sirainen [Thu, 6 Nov 2025 12:33:40 +0000 (14:33 +0200)] 
auth: passdb.preinit() - Add passdb_parameters parameter

4 weeks agoauth: Fix auth caching to work with passdb_ldap_bind_userdn
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.

4 weeks agoauth: ldap - Add debug log when bind started/finished
Timo Sirainen [Thu, 6 Nov 2025 12:08:54 +0000 (14:08 +0200)] 
auth: ldap - Add debug log when bind started/finished

4 weeks agoconfigure: Quote abs_top_builddir in TEST_CFLAGS sufficiently
Aki Tuomi [Thu, 13 Nov 2025 09:22:53 +0000 (11:22 +0200)] 
configure: Quote abs_top_builddir in TEST_CFLAGS sufficiently

4 weeks agobuild-aux/run-test.sh.in: Export DOVECONF_PATH if it's set
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

4 weeks agom4: Set DOVECONF_PATH
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.

4 weeks agolib-master: Support executing doveconf with DOVECONF_PATH enviroment variable
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.

4 weeks agosubmission-login: Halt the handling of the AUTH commmand while the auth service is...
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

4 weeks agosubmission-login: Rename client->pending_auth to client->auth_cmd
Stephan Bosch [Wed, 5 Nov 2025 16:37:16 +0000 (17:37 +0100)] 
submission-login: Rename client->pending_auth to client->auth_cmd

4 weeks agologin-common: client-common-auth - Assert that a new authentication does not occur...
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

4 weeks agologin-common: Add notify_auth_connected() vfunc
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.

4 weeks agolib: test-path-util - Normalize cwd
Aki Tuomi [Wed, 12 Nov 2025 08:52:42 +0000 (10:52 +0200)] 
lib: test-path-util - Normalize cwd

Avoids unnecessary failure later on.

4 weeks agolib-test: Log error with top_test_dir
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.

4 weeks agolib: unicode-transform - Avoid using constant artihmetic involving variables
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.

4 weeks agoconfig: Panic if default setting value differs between setting_parser_infos
Timo Sirainen [Tue, 4 Nov 2025 21:23:29 +0000 (23:23 +0200)] 
config: Panic if default setting value differs between setting_parser_infos

4 weeks agosubmission-login: Fix setting the default submission_max_mail_size=unlimited
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.

4 weeks agosubmission[-login]: If submission_max_mail_size=unlimited, advertise SIZE capability...
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

4 weeks agolib-smtp: smtp-server-connection - Fix reading remaining payload of failed (DATA...
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

5 weeks agodoveadm: dsync - Sync mailbox before updating mailbox metadata
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.

5 weeks agodoveadm: dsync - Log used search
Aki Tuomi [Tue, 11 Nov 2025 08:43:42 +0000 (10:43 +0200)] 
doveadm: dsync - Log used search

This can be helpful in debugging

5 weeks agodoveadm: dsync - Search exportable mails with SMALLER
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.

5 weeks agodoveadm: dsync - Fix -e parameter when used with dsync-server
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

5 weeks agodoveadm: dsync - Search exportable mails with timestamps
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.

5 weeks agodoveadm: dsync - Extract dsync_mailbox_import_init() arguments to a structure
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

5 weeks agodoveadm: dsync - Extract dsync_mailbox_export_init() parameters to a structure
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

5 weeks agofts-flatcurve: Fix mailbox leak if it couldn't be opened
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)

5 weeks agolib-var-expand: var-expand-parser - Add YYFPRINTF() wrapper
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.

5 weeks agolib-var-expand: test-var-expand - Print more useful error if test->out is empty
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

5 weeks agolib-var-expand: Generate 8-bit flexer
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.

5 weeks agolib-var-expand: Add fuzzer for var_expand_program_create()
Aki Tuomi [Mon, 10 Nov 2025 07:39:57 +0000 (09:39 +0200)] 
lib-var-expand: Add fuzzer for var_expand_program_create()

5 weeks agolib-var-expand: Fix list manipulation in make_new_program()
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.

5 weeks agolib-mail: test-istream-qp-decoder - Keep limit constant in get_encoding_size_diff()
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

5 weeks agolib-mail: Add more fuzzers
Aki Tuomi [Mon, 10 Nov 2025 07:02:24 +0000 (09:02 +0200)] 
lib-mail: Add more fuzzers

5 weeks agolib-mail: message-date - Add missing bounds checking
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.

5 weeks agolib: Move cpu-limit test to its own test binary
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.

5 weeks agoMakefile.test.include: Use "make check" tests in parallel
Timo Sirainen [Wed, 5 Nov 2025 10:54:33 +0000 (12:54 +0200)] 
Makefile.test.include: Use "make check" tests in parallel

5 weeks agolib-program-client, lib-smtp: Move unit test runs to Makefile.test.include
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.

5 weeks agoglobal: Move most unit test runs to Makefile.test.include
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.

5 weeks agolib-sql: Makefile.am - Use test_programs instead of check_PROGRAMS variable
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.

5 weeks agolib-test: Give a clear panic if test_dir_init() call is missing
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

5 weeks agolib-storage, mail-crypt: test-mail* - Use the new test-dir API
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.