]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Mon, 17 Aug 2020 15:11:36 +0000 (18:11 +0300)]
imap: Use imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Mon, 17 Aug 2020 14:59:19 +0000 (17:59 +0300)]
imap: Split off client_command_failed_early()
Timo Sirainen [Mon, 17 Aug 2020 14:32:11 +0000 (17:32 +0300)]
lib-imap: Add imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Wed, 11 Mar 2020 12:36:10 +0000 (14:36 +0200)]
lib-master: Add 5 second timeout when waiting for stats-writer handshake
Previously the wait was infinite and nothing was logged, making it difficult
to know that the problem is with a hanging stats process.
Timo Sirainen [Tue, 22 Dec 2020 08:22:38 +0000 (10:22 +0200)]
lib-master, stats: Fix sending and parsing UPDATE commands
These commands were parsed completely wrong, resulting in errors like:
Client sent invalid input for UPDATE: Invalid tv_created: Invalid timeval microseconds parameter
Josef 'Jeff' Sipek [Thu, 3 Dec 2020 15:21:47 +0000 (10:21 -0500)]
lib-lua: Install libdovecot-lua binaries
This turns this into a full-fledged library. This addresses the issue where
libdovecot-lua is completely included in anything that uses it, which caused
unnecessarily bloat and could have caused linker problems with multiple
definitions of the same symbol.
Josef 'Jeff' Sipek [Tue, 1 Dec 2020 17:16:04 +0000 (12:16 -0500)]
lib-storage: Split off the mail user lua code
Move the code into a separate file to mirror the native C code layout.
Josef 'Jeff' Sipek [Tue, 1 Dec 2020 17:13:31 +0000 (12:13 -0500)]
lib-storage: Split off the mailbox attribute lua code
Move the code into a separate file to mirror the native C code layout.
Josef 'Jeff' Sipek [Tue, 1 Dec 2020 17:05:59 +0000 (12:05 -0500)]
lib-storage: Split off the struct mailbox lua code
Move the code into a separate file to mirror the native C code layout.
Josef 'Jeff' Sipek [Tue, 1 Dec 2020 16:47:26 +0000 (11:47 -0500)]
lib-storage: Split off the struct mail lua code
Move the code into a separate file to mirror the native C code layout.
Josef 'Jeff' Sipek [Tue, 1 Dec 2020 16:14:02 +0000 (11:14 -0500)]
lib-storage: Move storage related lua code into libdovecot-storage-lua.la
This keeps all the storage code in one place.
Marvin W [Mon, 16 Nov 2020 19:55:14 +0000 (20:55 +0100)]
auth: db-lua - Fix invalid stack empty check
3e11b97 introduced assertions to ensure the lua stack is empty after
execution. In auth_lua_call_password_verify() this check was inserted
*before* popping the error message from the stack, ultimately causing the
assertion to fail every time the lua script has a runtime error, leading to
process crashing.
Josef 'Jeff' Sipek [Fri, 6 Mar 2020 13:45:47 +0000 (15:45 +0200)]
lib-storage: Remove cydir storage format support
Timo Sirainen [Fri, 11 Oct 2019 11:53:26 +0000 (14:53 +0300)]
lib-storage: Fix potential assert-crash fetching BODY[STRUCTURE] when mail's size is cached wrong
This happened only after mail's size was detected to be different than the
mail's cached size.
Fixes:
Panic: file index-mail.c: line 1140 (index_mail_parse_body_finish): assertion failed: (mail->data.parts != NULL)
Josef 'Jeff' Sipek [Wed, 9 Dec 2020 14:42:19 +0000 (09:42 -0500)]
plugins: Remove expire plugin
The autoexpunge functionality should be used instead.
Josef 'Jeff' Sipek [Wed, 9 Dec 2020 14:20:54 +0000 (09:20 -0500)]
plugins: Remove mail-filter plugin
Josef 'Jeff' Sipek [Wed, 9 Dec 2020 14:32:29 +0000 (09:32 -0500)]
plugins: Remove snarf plugin
Josef 'Jeff' Sipek [Wed, 9 Dec 2020 14:50:10 +0000 (09:50 -0500)]
plugins: Remove autocreate plugin
Automatic mailbox creation should be done via the autocreate namespace
option.
Josef 'Jeff' Sipek [Fri, 11 Dec 2020 16:05:50 +0000 (11:05 -0500)]
lib-lua: Stop sharing lua states based on the script file name
Instead of all instances of the same lua script sharing the same stack and
globals, make them completely separate instances. Removing this
optimization will make support of yielding possible.
Josef 'Jeff' Sipek [Fri, 11 Dec 2020 16:22:44 +0000 (11:22 -0500)]
lib-lua: Use lua_register() instead of open-coding it
Aki Tuomi [Wed, 29 Jul 2020 08:28:50 +0000 (11:28 +0300)]
NEWS: Add NEWS for 2.3.11.3
Aki Tuomi [Tue, 28 Jul 2020 08:02:06 +0000 (11:02 +0300)]
NEWS: Add NEWS for 2.3.11.2
Aki Tuomi [Tue, 30 Jun 2020 08:50:26 +0000 (11:50 +0300)]
NEWS: Add news for 2.3.11
Timo Sirainen [Thu, 10 Dec 2020 18:31:28 +0000 (19:31 +0100)]
man: doveadm-proxy - Minor fixes to doveadm proxy kick
Aki Tuomi [Wed, 9 Dec 2020 07:43:42 +0000 (09:43 +0200)]
lib: test-file-cache - Assert map is not null before memcmp
Aki Tuomi [Tue, 8 Dec 2020 07:51:30 +0000 (09:51 +0200)]
lib-mail: test-message-search - Assert ret
Found by static analysis
Aki Tuomi [Tue, 8 Dec 2020 07:45:20 +0000 (09:45 +0200)]
lib-mail: test-message-search - Assert that found value is not NULL
Satisfies static analysers
Aki Tuomi [Tue, 8 Dec 2020 07:42:13 +0000 (09:42 +0200)]
lib-mail: test-message-decoder - Assert ret
Found by static analysis
Timo Sirainen [Mon, 30 Nov 2020 20:10:28 +0000 (22:10 +0200)]
lib-storage: Fix potential assert-crash when fetching body snippet
This happened only in a rather special condition. Added unit test to
reproduce it.
Fixes:
Panic: file message-part-data.c: line 28 (message_part_data_is_plain_7bit): assertion failed: (data != NULL)
Timo Sirainen [Mon, 30 Nov 2020 18:37:46 +0000 (20:37 +0200)]
lib-storage: Fix potential assert-crash when adding missing attachment flags
This happened only in a rather special condition. Added unit test to
reproduce it.
Fixes:
Panic: file index-mail-headers.c: line 298 (index_mail_parse_header): assertion failed: (part != NULL)
Timo Sirainen [Mon, 7 Dec 2020 11:09:50 +0000 (13:09 +0200)]
lib-dcrypt: istream-decrypt - Assert that max_buffer_size > 0
Otherwise all reads return -2, which will just result in assert-crash in
i_stream_read().
Timo Sirainen [Mon, 7 Dec 2020 11:07:35 +0000 (13:07 +0200)]
lib: istream-error - Set max_buffer_size
Although nothing is actually read from the stream, some filter istreams
don't behave properly with max_buffer_size=0. Currently at least
istream-decrypt returns -2 for reads instead of -1.
Fixes:
Panic: file istream.c: line 320 (i_stream_read_memarea): assertion failed: (_stream->skip != _stream->pos)
Timo Sirainen [Mon, 7 Dec 2020 10:40:22 +0000 (12:40 +0200)]
lib-storage: test_mail_storage_deinit() - Don't try to clear freed memory
ctx was already freed. Trying to memset() into it will just result in
writing to already freed memory.
Aki Tuomi [Thu, 3 Dec 2020 14:37:55 +0000 (16:37 +0200)]
lib-oauth2: test-oauth2-jwt - Add tests for HS384 and HS512
Aki Tuomi [Wed, 2 Dec 2020 11:37:05 +0000 (13:37 +0200)]
lib-oauth2: Fix whitespace in test-oauth2-jwt.c
Aki Tuomi [Wed, 2 Dec 2020 12:54:05 +0000 (14:54 +0200)]
lib: test-hmac - Add tests for hmac sha384
Aki Tuomi [Wed, 2 Dec 2020 12:53:55 +0000 (14:53 +0200)]
lib: test-hash-method - Add tests for sha2
Aki Tuomi [Wed, 2 Dec 2020 12:53:39 +0000 (14:53 +0200)]
lib: hash-method - Add sha384 support
Aki Tuomi [Wed, 2 Dec 2020 12:37:02 +0000 (14:37 +0200)]
lib: Fix whitespace in sha2.c
Downtown Allday [Tue, 24 Nov 2020 15:20:05 +0000 (10:20 -0500)]
lib: test-hmac - Add HMAC 512 test
Aki Tuomi [Thu, 3 Dec 2020 14:33:06 +0000 (16:33 +0200)]
lib: hmac - Support different hash algorithms
Code was hardcoded for MD4,MD5,SHA-1.
Downtown Allday [Tue, 24 Nov 2020 15:19:43 +0000 (10:19 -0500)]
lib: hmac - Adjust HMAC_MAX_CONTEXT_SIZE to accommodate HMAC512
Aki Tuomi [Thu, 3 Dec 2020 14:28:40 +0000 (16:28 +0200)]
lib: hash-method - Add block size
This is needed for HMAC
Aki Tuomi [Thu, 3 Dec 2020 14:24:52 +0000 (16:24 +0200)]
lib: hash-method - Use named initializers
Stephan Bosch [Fri, 5 Jun 2020 19:29:44 +0000 (21:29 +0200)]
lib-oauth2: Remove unused include from oauth2.c.
Stephan Bosch [Fri, 5 Jun 2020 19:16:58 +0000 (21:16 +0200)]
lib-oauth2: Make oauth2_request_set_headers() static.
Stephan Bosch [Fri, 5 Jun 2020 19:13:39 +0000 (21:13 +0200)]
lib-oauth2: Rename oauth2_request_free_internal() to oauth2_request_free().
And make it static.
Stephan Bosch [Fri, 5 Jun 2020 19:06:30 +0000 (21:06 +0200)]
lib-oauth2: Rename oauth2_parse_json() to oauth2_request_parse_json().
Stephan Bosch [Fri, 5 Jun 2020 19:15:47 +0000 (21:15 +0200)]
lib-oauth2: Move oauth2_request_set_headers() to oauth2-request.c.
Stephan Bosch [Fri, 5 Jun 2020 19:11:20 +0000 (21:11 +0200)]
lib-oauth2: Move oauth2_request_abort() to oauth2-request.c.
Stephan Bosch [Fri, 5 Jun 2020 19:09:39 +0000 (21:09 +0200)]
lib-oauth2: Move oauth2_request_free_internal() to oauth2-request.c.
Stephan Bosch [Fri, 5 Jun 2020 19:00:03 +0000 (21:00 +0200)]
lib-oauth2: Move oauth2_parse_json() to oauth2-request.c.
Stephan Bosch [Fri, 5 Jun 2020 18:51:34 +0000 (20:51 +0200)]
lib-oauth2: Reformat test-oauth2-jwt.c.
Stephan Bosch [Fri, 5 Jun 2020 18:51:19 +0000 (20:51 +0200)]
lib-oauth2: Reformat oauth2-jwt.c.
Stephan Bosch [Fri, 5 Jun 2020 18:50:55 +0000 (20:50 +0200)]
lib-oauth2: Reformat oauth2-key-cache.c.
Stephan Bosch [Fri, 5 Jun 2020 18:50:34 +0000 (20:50 +0200)]
lib-oauth2: Reformat oauth2-request.c.
Stephan Bosch [Fri, 5 Jun 2020 18:49:34 +0000 (20:49 +0200)]
lib-oauth2: Reformat oauth2.c.
Stephan Bosch [Fri, 5 Jun 2020 18:49:58 +0000 (20:49 +0200)]
lib-oauth2: Reformat oauth2-private.h.
Stephan Bosch [Fri, 5 Jun 2020 18:49:09 +0000 (20:49 +0200)]
lib-oauth2: Reformat oauth2.h.
Timo Sirainen [Tue, 26 May 2020 22:49:52 +0000 (01:49 +0300)]
auth: db-oauth2 - Add consistent prefix for all error messages
Timo Sirainen [Tue, 26 May 2020 22:36:41 +0000 (01:36 +0300)]
auth: db-oauth2 - Fix debug logging
Don't log a debug message when the callback is going to be logging
exactly the same message as info/error.
Timo Sirainen [Tue, 26 May 2020 22:25:41 +0000 (01:25 +0300)]
auth: db-oauth2 - Call db_oauth2_lookup_continue_valid() after valid grant
No need to check for error/validity again in db_oauth2_lookup_continue().
Timo Sirainen [Tue, 26 May 2020 22:22:13 +0000 (01:22 +0300)]
auth: db-oauth2 - db_oauth2_lookup_continue() - Minor cleanup to avoid variables
Timo Sirainen [Tue, 26 May 2020 22:20:36 +0000 (01:20 +0300)]
auth: db-oauth2 - Split off db_oauth2_lookup_continue_valid()
Timo Sirainen [Tue, 26 May 2020 22:03:44 +0000 (01:03 +0300)]
auth: db-oauth2 - db_oauth2_lookup_passwd_grant() - Reorder error handling code flow
Timo Sirainen [Tue, 26 May 2020 22:03:11 +0000 (01:03 +0300)]
auth: db-oauth2 - Improve "Internal error" message for grant lookups
Timo Sirainen [Tue, 26 May 2020 21:59:49 +0000 (00:59 +0300)]
auth: db-oauth2 - Add and use db_oauth2_field_find()
Timo Sirainen [Tue, 26 May 2020 21:57:24 +0000 (00:57 +0300)]
auth: db-oauth2 - Don't set db_oauth2_request.token for grant lookups
The grant lookup sets the token. There's no need to set it before that.
Timo Sirainen [Tue, 26 May 2020 21:50:07 +0000 (00:50 +0300)]
auth: db-oauth2 - db_oauth2_lookup_passwd_grant() - Reorder code flow
No behavioral changes.
Timo Sirainen [Tue, 26 May 2020 21:44:16 +0000 (00:44 +0300)]
auth: db-oauth2 - Refactor "OAuth2 token missing from reply" code path
It can be NULL only when coming from db_oauth2_lookup_passwd_grant(),
so handle it there.
Timo Sirainen [Tue, 26 May 2020 21:36:44 +0000 (00:36 +0300)]
auth: db-oauth2 - db_oauth2_template_export() - Make var_expand() error handling consistent
Other var_expand() errors include the original string in the error message,
so this one should also.
Timo Sirainen [Tue, 26 May 2020 21:30:45 +0000 (00:30 +0300)]
lib-oauth2: Improve error message when server returns unexpected result
If the result isn't 2xx or 4xx, use the HTTP response message as the error
message.
Timo Sirainen [Tue, 26 May 2020 21:27:15 +0000 (00:27 +0300)]
lib-oauth2: Don't fail if oauth response payload is NULL
oauth2_parse_json() is happy with with empty payload (Content-Length: 0),
so it should be happy also when payload is NULL (Content-Length is missing).
Timo Sirainen [Tue, 26 May 2020 21:21:24 +0000 (00:21 +0300)]
lib-oauth2: Remove unused oauth2-passwd-grant.c
Timo Sirainen [Tue, 26 May 2020 21:19:42 +0000 (00:19 +0300)]
lib-oauth2, auth: Remove redundant oauth2_request_result.success
success is the same as (error == NULL)
Timo Sirainen [Tue, 26 May 2020 21:12:49 +0000 (00:12 +0300)]
lib-oauth2: json_parsed_cb() - Remove redundant success parameter
success is the same as (error == NULL)
Timo Sirainen [Thu, 1 Oct 2020 13:02:26 +0000 (16:02 +0300)]
fs-compress: Use istream-decompress
Timo Sirainen [Thu, 1 Oct 2020 12:59:37 +0000 (15:59 +0300)]
lib-compression: Fix detecting if input is bzip2 compressed
The detection was broken at least for empty bzip2 input.
Timo Sirainen [Thu, 1 Oct 2020 12:36:08 +0000 (15:36 +0300)]
lib-compression: Add istream-decompress
This stream detects the compression format and creates the proper istream
afterwards. This is more efficient than creating each compression istream
and using istream-try.
Timo Sirainen [Thu, 19 Nov 2020 15:50:22 +0000 (17:50 +0200)]
lib-storage: Add test-mail unit test
Initially it just accesses the mail randomly.
Timo Sirainen [Thu, 19 Nov 2020 13:56:17 +0000 (15:56 +0200)]
mail-crypt: test-mail-crypt - Use test-mail-storage API
Timo Sirainen [Thu, 19 Nov 2020 13:37:54 +0000 (15:37 +0200)]
lib-storage: Add a public test-mail-storage-common.h API
Moved the public functions into test-mail-storage-common.c
Timo Sirainen [Thu, 19 Nov 2020 14:13:53 +0000 (16:13 +0200)]
lib-storage: test-mail-storage - Die on test_mail_init_user() failure
This way the caller won't need to do error handling. The errors were
being handled inconsistently.
Timo Sirainen [Thu, 19 Nov 2020 13:35:07 +0000 (15:35 +0200)]
lib-storage: test-mail-storage - Remove randomness from test home directory
Also rename test_mail_storage_ctx.mail_home to home_root to better describe
it.
Timo Sirainen [Thu, 19 Nov 2020 13:32:20 +0000 (15:32 +0200)]
lib-storage: test-mail-storage - Change test_mail_init() to allocate the struct
Timo Sirainen [Thu, 19 Nov 2020 13:29:01 +0000 (15:29 +0200)]
lib-storage: test-mail-storage - Use settings struct for test_mail_init_user()
Timo Sirainen [Thu, 22 Oct 2020 09:22:40 +0000 (12:22 +0300)]
lib: i_stream_read() - Don't create empty snapshots
This allows the read() implementation to read data into the existing
memarea. Otherwise a new memarea might have to be created because the old
one is referenced by the snapshot.
Timo Sirainen [Thu, 29 Oct 2020 11:35:35 +0000 (13:35 +0200)]
imap: Process title wrongly shows connections are "corked"
The flush callback in ostream-file always corks the connection, so the
process title needs to be delayed until it's no longer in that callback.
Add a 0-timeout to update the process title.
Josef 'Jeff' Sipek [Wed, 25 Nov 2020 16:03:57 +0000 (11:03 -0500)]
lib-lua: Rewrite arg checking macros to use STMT_{START,END}
This makes it safer to use. Additionally, this commit adds some newlines to
the macro definition to make it more readable.
Timo Sirainen [Tue, 10 Nov 2020 14:10:05 +0000 (16:10 +0200)]
login-proxy: Use persistent istream buffers
Constantly freeing and allocating the memory is a bit slow, but because
Dovecot allocates all memory with calloc() the memory cleaing is especially
slow. With this change proxying lots of data in a plaintext connection
takes about 50% less CPU. The downside is that it uses about 4 kB more
memory per istream (8 kB total, for both client and server connections),
but that shouldn't be too bad for proxies since they don't use much memory
otherwise.
Martti Rannanjärvi [Wed, 2 Dec 2020 04:06:59 +0000 (06:06 +0200)]
lib-mail: test-istream-qp-decoder.c - Free input_data_limited
Stephan Bosch [Tue, 1 Dec 2020 09:25:09 +0000 (10:25 +0100)]
lib-http: http-client-request - Fix payload assertions in http_client_request_send_more().
When the request payload is finished, both req->payload_input and
req->payload_output could be NULL, so the assertions on those being not NULL
need to happen after the check for req->payload_finished.
This particularly causes problems with the
blocking http_client_request_send/finish_payload() API, which constantly
modifies req->payload_input and sets it to NULL to finish the output.
This caused a panic:
Panic: file http-client-request.c: line 1232 (http_client_request_send_more): assertion failed: (req->payload_input != NULL)
Stephan Bosch [Wed, 4 Apr 2018 13:18:51 +0000 (15:18 +0200)]
lib-http: test-http-payload - Add test for blocking client output payload.
Stephan Bosch [Wed, 4 Apr 2018 01:02:24 +0000 (03:02 +0200)]
lib-http: test-http-payload - Implement reference counting for client request.
Stephan Bosch [Sat, 27 Jun 2020 16:48:40 +0000 (18:48 +0200)]
lib-http: Reformat http-client-request.c.
Martti Rannanjärvi [Tue, 25 Feb 2020 11:08:21 +0000 (13:08 +0200)]
notify: Free notify_mail_txn when a plugin does not define mail_transaction_commit
Markus Valentin [Fri, 6 Nov 2020 10:47:18 +0000 (11:47 +0100)]
lib-mail: Add tests for message-size functions
Integrate testing of header and body size to existing tests and add new
tests specifically for message-size.
Markus Valentin [Mon, 9 Nov 2020 11:35:09 +0000 (12:35 +0100)]
lib-mail: Extend quoted-printable encoding tests
Markus Valentin [Wed, 4 Nov 2020 13:38:10 +0000 (14:38 +0100)]
lib-mail: Extend quoted-printable decoding tests
Markus Valentin [Thu, 19 Nov 2020 12:30:54 +0000 (13:30 +0100)]
lib-mail: qp-encoder: Ensure trailing white space is followed by printable
In case a qp-encoded line ends with space or tab append a soft line
break to prevent white space being cut off by decoding instance.