]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Philippe Antoine [Fri, 20 Mar 2020 15:00:21 +0000 (16:00 +0100)]
lib-smtp: Add fuzz target for smtp server
Timo Sirainen [Mon, 23 Mar 2020 16:33:18 +0000 (18:33 +0200)]
lib-imap: Add fuzz-imap-utf7
Timo Sirainen [Mon, 23 Mar 2020 16:29:16 +0000 (18:29 +0200)]
lib-test: Add fuzzing framework
Timo Sirainen [Mon, 23 Mar 2020 16:28:34 +0000 (18:28 +0200)]
configure: Add --with-fuzzer=clang to use clang fuzzer
Timo Sirainen [Wed, 18 Nov 2020 19:22:45 +0000 (21:22 +0200)]
lib-imap: Fix writing BODYSTRUCTURE for truncated multipart/digest part
Fixes error while parsing BODYSTRUCTURE:
message_part message/rfc822 flag doesn't match lines in BODYSTRUCTURE
Timo Sirainen [Wed, 18 Nov 2020 18:48:11 +0000 (20:48 +0200)]
lib-imap: Fix writing BODYSTRUCTURE for truncated multipart/ part
If the max nesting limit is reached, write the last part out as
application/octet-stream. The original content-type could be confusing
IMAP clients when they don't see any child parts.
Timo Sirainen [Wed, 18 Nov 2020 16:55:34 +0000 (18:55 +0200)]
lib-imap: Fix writing BODYSTRUCTURE for truncated message/rfc822 part
If the max nesting limit is reached, write the last part out as
application/octet-stream instead of dummy message/rfc822.
Fixes error while parsing BODYSTRUCTURE:
message_part message/rfc822 flag doesn't match BODYSTRUCTURE
Aki Tuomi [Sat, 12 Dec 2020 15:39:54 +0000 (17:39 +0200)]
NEWS: Add news for 2.3.13
Timo Sirainen [Fri, 11 Sep 2020 07:57:51 +0000 (10:57 +0300)]
lib-imap: Don't generate invalid BODYSTRUCTURE when reaching MIME part limit
If the last MIME part was message/rfc822 and its child was truncated away,
BODYSTRUCTURE was missing the ENVELOPE and BODY[STRUCTURE] parts. Fixed by
writing empty dummy ones.
Timo Sirainen [Fri, 11 Sep 2020 06:53:03 +0000 (09:53 +0300)]
lib-mail: message-parser - Fix assert-crash when enforcing MIME part limit
The limit could have been exceeded with message/rfc822 parts.
Timo Sirainen [Mon, 24 Aug 2020 16:12:21 +0000 (19:12 +0300)]
imap: Add unit test for imap-client-hibernate
Timo Sirainen [Mon, 24 Aug 2020 16:10:43 +0000 (19:10 +0300)]
imap: imap_client_hibernate() - Return reason string on failure
This helps writing a unit test for it.
Timo Sirainen [Mon, 24 Aug 2020 16:10:10 +0000 (19:10 +0300)]
imap: Delay initializing client IO until client_create_finish()
This helps writing unit tests.
Timo Sirainen [Mon, 24 Aug 2020 13:58:16 +0000 (16:58 +0300)]
imap: Fix crash if imap-hibernate socket can't be connected to
The error was supposed to be returned to caller, not logged directly.
Timo Sirainen [Mon, 17 Aug 2020 15:33:20 +0000 (18:33 +0300)]
imap: Escape tag when sending it to imap-hibernate process
Timo Sirainen [Mon, 17 Aug 2020 15:26:01 +0000 (18:26 +0300)]
lib-imap: Add imap_parser_client_read_tag()
Timo Sirainen [Mon, 17 Aug 2020 15:22:42 +0000 (18:22 +0300)]
imap-login: Use imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Mon, 17 Aug 2020 15:15:35 +0000 (18:15 +0300)]
imap-login: Split off client_invalid_command()
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