]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
4 years agoimap: imap_client_hibernate() - Return reason string on failure
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.

4 years agoimap: Delay initializing client IO until client_create_finish()
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.

4 years agoimap: Fix crash if imap-hibernate socket can't be connected to
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.

4 years agolib-imap: Add imap_parser_client_read_tag()
Timo Sirainen [Mon, 17 Aug 2020 15:26:01 +0000 (18:26 +0300)] 
lib-imap: Add imap_parser_client_read_tag()

4 years agoimap-login: Use imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Mon, 17 Aug 2020 15:22:42 +0000 (18:22 +0300)] 
imap-login: Use imap_parser_read_tag() and _read_command_name()

4 years agoimap-login: Split off client_invalid_command()
Timo Sirainen [Mon, 17 Aug 2020 15:15:35 +0000 (18:15 +0300)] 
imap-login: Split off client_invalid_command()

4 years agoimap: Use imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Mon, 17 Aug 2020 15:11:36 +0000 (18:11 +0300)] 
imap: Use imap_parser_read_tag() and _read_command_name()

4 years agoimap: Split off client_command_failed_early()
Timo Sirainen [Mon, 17 Aug 2020 14:59:19 +0000 (17:59 +0300)] 
imap: Split off client_command_failed_early()

4 years agolib-imap: Add imap_parser_read_tag() and _read_command_name()
Timo Sirainen [Mon, 17 Aug 2020 14:32:11 +0000 (17:32 +0300)] 
lib-imap: Add imap_parser_read_tag() and _read_command_name()

4 years agolib: Be less verbose in event filter tests
Josef 'Jeff' Sipek [Fri, 23 Oct 2020 14:56:08 +0000 (10:56 -0400)] 
lib: Be less verbose in event filter tests

Only print the input string if the test failed.

4 years agolib-imap: Don't generate invalid BODYSTRUCTURE when reaching MIME part limit
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.

4 years agolib-mail: message-parser - Fix assert-crash when enforcing MIME part limit
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.

4 years agoimap: Add unit test for imap-client-hibernate
Timo Sirainen [Mon, 24 Aug 2020 16:12:21 +0000 (19:12 +0300)] 
imap: Add unit test for imap-client-hibernate

4 years agoimap: Escape tag when sending it to imap-hibernate process
Timo Sirainen [Mon, 17 Aug 2020 15:33:20 +0000 (18:33 +0300)] 
imap: Escape tag when sending it to imap-hibernate process

4 years agoconfigure: Update version to 2.3.13
Aki Tuomi [Thu, 5 Nov 2020 14:02:39 +0000 (16:02 +0200)] 
configure: Update version to 2.3.13

4 years agolib-smtp: smtp-server-connection - Make sure output stream errors are handled.
Stephan Bosch [Tue, 27 Oct 2020 22:16:44 +0000 (23:16 +0100)] 
lib-smtp: smtp-server-connection - Make sure output stream errors are handled.

4 years agolib-ssl-iosteam: ostream-openssl - Make sure error on plaintext streams is propagated.
Stephan Bosch [Mon, 26 Oct 2020 09:19:46 +0000 (10:19 +0100)] 
lib-ssl-iosteam: ostream-openssl - Make sure error on plaintext streams is propagated.

4 years agolib-ssl-iostrea: ostream-openssl - Add local variable for ssl_io in o_stream_ssl_flus...
Stephan Bosch [Mon, 26 Oct 2020 21:04:53 +0000 (22:04 +0100)] 
lib-ssl-iostrea: ostream-openssl - Add local variable for ssl_io in o_stream_ssl_flush_buffer().

4 years agoauth: db-oauth2 - Do not allow empty active_value or active_attribute, when other...
Aki Tuomi [Thu, 5 Nov 2020 11:25:19 +0000 (13:25 +0200)] 
auth: db-oauth2 - Do not allow empty active_value or active_attribute, when other is set

4 years agoauth: db-oauth2 - If active attribute is present in request, check it
Aki Tuomi [Thu, 29 Oct 2020 09:37:22 +0000 (11:37 +0200)] 
auth: db-oauth2 - If active attribute is present in request, check it

If the attribute is missing, do not assume it's false.

4 years agoauth: db-oauth2 - Check active attribute by default
Aki Tuomi [Thu, 29 Oct 2020 09:36:00 +0000 (11:36 +0200)] 
auth: db-oauth2 - Check active attribute by default

4 years agoauth: db-oauth2 - Change active:false to mean invalid token
Aki Tuomi [Thu, 22 Oct 2020 08:42:23 +0000 (11:42 +0300)] 
auth: db-oauth2 - Change active:false to mean invalid token

Specifications say that invalid token, expired token and any other
reason why the token can be considered invalid should return
{"active":false} reply with no other fields.

Thus, we need to consider this as invalid token.

4 years agoauth: db-oauth2 - Allow active:false without username
Aki Tuomi [Thu, 22 Oct 2020 08:41:16 +0000 (11:41 +0300)] 
auth: db-oauth2 - Allow active:false without username

4 years agolib-storage: Skip setting log view in mailbox_get_expunges_init when box->view is...
sergey.kitov [Tue, 13 Oct 2020 14:34:12 +0000 (17:34 +0300)] 
lib-storage: Skip setting log view in mailbox_get_expunges_init when box->view is outdated.

This fixes assert-crash when IMAP client uses QRESYNC and lots of changes happen between syncing points.

Fixes:
Panic: file mail-transaction-log-view.c: line 144 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq)

4 years agolib-fts: test-fts-filter - Fix clang suspicious concatenation of string literals...
Timo Sirainen [Thu, 29 Oct 2020 10:34:57 +0000 (12:34 +0200)] 
lib-fts: test-fts-filter - Fix clang suspicious concatenation of string literals warning

Fixes:
warning: suspicious concatenation of string literals in an array initialization; did you mean to separate the elements with a comma? [-Wstring-concatenation]

4 years agolib: Standardize STMT_BEGIN and STMT_END
Timo Sirainen [Thu, 29 Oct 2020 10:33:14 +0000 (12:33 +0200)] 
lib: Standardize STMT_BEGIN and STMT_END

do .. while(0) should work everywhere.

This also fixes warnings given by new clang:
warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]

4 years agolib: test-istream - Don't try to return void
Timo Sirainen [Thu, 29 Oct 2020 10:32:44 +0000 (12:32 +0200)] 
lib: test-istream - Don't try to return void

4 years agolib: test-file-cache - Add asserts for initial return value of file_cache_get
Aki Tuomi [Wed, 28 Oct 2020 10:45:09 +0000 (12:45 +0200)] 
lib: test-file-cache - Add asserts for initial return value of file_cache_get

4 years agolib-lda: Update mail sizes to event only if they are known
Aki Tuomi [Wed, 28 Oct 2020 10:23:40 +0000 (12:23 +0200)] 
lib-lda: Update mail sizes to event only if they are known

4 years agolib-storage: raw-mail - Cast st_size to uoff_t
Aki Tuomi [Wed, 28 Oct 2020 10:22:58 +0000 (12:22 +0200)] 
lib-storage: raw-mail - Cast st_size to uoff_t

mbox->size is unsigned field, and st_size will be -1
is the stat target is not regular file or symbolic link.
This can happen if it's stream like stdin.

4 years agolib-fs: iteration - Fix crash when overwriting iteration error
Timo Sirainen [Fri, 23 Oct 2020 11:54:22 +0000 (14:54 +0300)] 
lib-fs: iteration - Fix crash when overwriting iteration error

Can't use fs_file_path() because file is NULL. Instead, add the path to
struct fs_iter directly so it can be used in the error.

Broken by eaaf40ca4e8994824abff89fc617c3cc737d83a5

4 years agoquota: Avoid implicit integer conversion to unsigned in quota calculation
Aki Tuomi [Thu, 22 Oct 2020 17:21:41 +0000 (20:21 +0300)] 
quota: Avoid implicit integer conversion to unsigned in quota calculation

Deducting negative number from unsigned integer causes
signed integer conversion to unsigned int, which results a
too large positive number. Do calculations using int64 instead.

This did not cause any visible problems, found by
clang integer sanitization.

4 years agoglobal: Fix overzealous use of ENUM_NEGATE
Aki Tuomi [Thu, 22 Oct 2020 15:53:34 +0000 (18:53 +0300)] 
global: Fix overzealous use of ENUM_NEGATE

4 years agolib: istream-seekable - Fix returning stream size
Timo Sirainen [Thu, 22 Oct 2020 19:46:35 +0000 (22:46 +0300)] 
lib: istream-seekable - Fix returning stream size

The returned size may have been truncated.

4 years agolib-fs: Add assert to make sure we never log "(null)" as the old error
Timo Sirainen [Fri, 16 Oct 2020 08:21:51 +0000 (11:21 +0300)] 
lib-fs: Add assert to make sure we never log "(null)" as the old error

4 years agolib-fs: Fix logging old error when an unlogged error is replaced by new error
Timo Sirainen [Fri, 16 Oct 2020 08:20:04 +0000 (11:20 +0300)] 
lib-fs: Fix logging old error when an unlogged error is replaced by new error

The old error was logged as "(null)" if the error happened in a non-root
(filter) file.

4 years agolib-fs: Include file's path when logging pending error messages
Timo Sirainen [Fri, 16 Oct 2020 07:19:59 +0000 (10:19 +0300)] 
lib-fs: Include file's path when logging pending error messages

Otherwise it may not be known which file the error is about.

This happens when a file is freed without the last error being logged.
Also when an unlogged error is being replaced with a new error.

4 years agolib: event-filter-parser - Disallow non-equals comparators on non-fields
Josef 'Jeff' Sipek [Thu, 24 Sep 2020 17:44:58 +0000 (13:44 -0400)] 
lib: event-filter-parser - Disallow non-equals comparators on non-fields

Non-equals comparisons (<, <=, >, and >=) aren't well defined for anything
other than fields.  Therefore, if we encounter one of these comparators with
an event name, category name, or source location, we should error out and
avoid confusing the user.

4 years agolib-storage: Delay recreating event when closing mail
Timo Sirainen [Thu, 15 Oct 2020 17:34:05 +0000 (20:34 +0300)] 
lib-storage: Delay recreating event when closing mail

If the mail isn't reused, the event is unnecessary.

4 years agoglobal: Explicitly wrap values to fit target
Aki Tuomi [Mon, 19 Oct 2020 10:49:29 +0000 (13:49 +0300)] 
global: Explicitly wrap values to fit target

4 years agoglobal: Add explicit casts where needed
Aki Tuomi [Tue, 1 Sep 2020 06:44:04 +0000 (09:44 +0300)] 
global: Add explicit casts where needed

Squash implicit conversion complains from sanitizer.

4 years agoglobal: Disable undefined behaviour sanitization for select locations
Aki Tuomi [Thu, 13 Aug 2020 08:36:08 +0000 (11:36 +0300)] 
global: Disable undefined behaviour sanitization for select locations

4 years agoglobal: Fix negation with constants to match target type
Aki Tuomi [Thu, 20 Aug 2020 05:39:26 +0000 (08:39 +0300)] 
global: Fix negation with constants to match target type

4 years agoglobal: Use ENUM_NEGATE() macro where necessary
Aki Tuomi [Thu, 20 Aug 2020 05:35:59 +0000 (08:35 +0300)] 
global: Use ENUM_NEGATE() macro where necessary

4 years agoglobal: Use UOFF_T_MAX instead of (uoff_t)-1
Aki Tuomi [Wed, 23 Sep 2020 11:51:53 +0000 (14:51 +0300)] 
global: Use UOFF_T_MAX instead of (uoff_t)-1

4 years agoglobal: Use SIZE_MAX instead of (size_t)-1
Aki Tuomi [Wed, 23 Sep 2020 11:43:29 +0000 (14:43 +0300)] 
global: Use SIZE_MAX instead of (size_t)-1

4 years agolib: macros - Add ENUM_NEGATE
Aki Tuomi [Tue, 11 Aug 2020 05:41:54 +0000 (08:41 +0300)] 
lib: macros - Add ENUM_NEGATE

Handles enumeration flag negation.

4 years agoconfigure: Add ubsan support
Aki Tuomi [Tue, 28 Jul 2020 10:42:01 +0000 (13:42 +0300)] 
configure: Add ubsan support

4 years agolib-mail: test-message-header-hash: Fix type issue
Aki Tuomi [Wed, 23 Sep 2020 11:39:36 +0000 (14:39 +0300)] 
lib-mail: test-message-header-hash: Fix type issue

Satisfies runtime analyzer.

4 years agodoveadm: mailbox status - Handle first_save_date correctly
Aki Tuomi [Tue, 22 Sep 2020 11:39:41 +0000 (14:39 +0300)] 
doveadm: mailbox status - Handle first_save_date correctly

If first_save_date is -1 it means no save has been done.

4 years agolib: unichar - Change uni_utf8_char_bytes to accept unsigned char
Aki Tuomi [Thu, 20 Aug 2020 05:57:35 +0000 (08:57 +0300)] 
lib: unichar - Change uni_utf8_char_bytes to accept unsigned char

4 years agolib-index: Use SIZE_MAX with str_sanitize
Aki Tuomi [Tue, 1 Sep 2020 06:57:04 +0000 (09:57 +0300)] 
lib-index: Use SIZE_MAX with str_sanitize

4 years agoauth: password-scheme - Use UINT_MAX when calling password_generate_otp
Aki Tuomi [Tue, 1 Sep 2020 06:57:23 +0000 (09:57 +0300)] 
auth: password-scheme - Use UINT_MAX when calling password_generate_otp

4 years agolib: mempool-allocfree - Do not use PTR_OFFSET with negative offset
Aki Tuomi [Tue, 1 Sep 2020 08:54:50 +0000 (11:54 +0300)] 
lib: mempool-allocfree - Do not use PTR_OFFSET with negative offset

Avoids undefined behaviour sanitization error.

4 years agolib-fts: test-fts-tokenizer - Change test_chars to unsigned char
Aki Tuomi [Tue, 1 Sep 2020 08:56:42 +0000 (11:56 +0300)] 
lib-fts: test-fts-tokenizer - Change test_chars to unsigned char

4 years agolib: str - Ensure str_append_c gets unsigned char parameter
Aki Tuomi [Thu, 20 Aug 2020 06:46:24 +0000 (09:46 +0300)] 
lib: str - Ensure str_append_c gets unsigned char parameter

4 years agolib: seq-range-array - Assert-crash if array becomes 0..(uint32_t)-1
Timo Sirainen [Thu, 1 Oct 2020 08:37:24 +0000 (11:37 +0300)] 
lib: seq-range-array - Assert-crash if array becomes 0..(uint32_t)-1

4 years agolib: seq_range_array_add() - Reorder code flow
Timo Sirainen [Thu, 1 Oct 2020 08:19:33 +0000 (11:19 +0300)] 
lib: seq_range_array_add() - Reorder code flow

4 years agolib: seq-range-array - Split off seq_range_array_add_slow_path()
Timo Sirainen [Thu, 1 Oct 2020 08:18:04 +0000 (11:18 +0300)] 
lib: seq-range-array - Split off seq_range_array_add_slow_path()

4 years agolib: seq-range-array - Use seq_range_length() internally
Timo Sirainen [Thu, 1 Oct 2020 08:04:56 +0000 (11:04 +0300)] 
lib: seq-range-array - Use seq_range_length() internally

4 years agolib: seq_range_length() - Use const pointer
Timo Sirainen [Thu, 1 Oct 2020 08:04:36 +0000 (11:04 +0300)] 
lib: seq_range_length() - Use const pointer

4 years agodoc: Include dovecot-oauth2.conf.ext in dist tarball
Martti Rannanjärvi [Tue, 20 Oct 2020 12:02:24 +0000 (15:02 +0300)] 
doc: Include dovecot-oauth2.conf.ext in dist tarball

4 years agodoveadm-server: Fix STARTTLS support.
Stephan Bosch [Mon, 12 Oct 2020 21:29:02 +0000 (23:29 +0200)] 
doveadm-server: Fix STARTTLS support.

4 years agolib-master: master-service-ssl - Make context initialization error more useful.
Stephan Bosch [Tue, 13 Oct 2020 20:56:25 +0000 (22:56 +0200)] 
lib-master: master-service-ssl - Make context initialization error more useful.

This improves the error in case SSL is disabled; other causes still yield a
rather unhelpful error message.

4 years agolib: ostream-multiplex - Fix dead assignment by adding an assertion on the result.
Stephan Bosch [Mon, 12 Oct 2020 21:18:09 +0000 (23:18 +0200)] 
lib: ostream-multiplex - Fix dead assignment by adding an assertion on the result.

Found by Clang scan-build.

4 years agoglobal: Fix dead assignments in expressions.
Stephan Bosch [Tue, 6 Oct 2020 22:06:08 +0000 (00:06 +0200)] 
global: Fix dead assignments in expressions.

Found by Clang scan-build.

4 years agoman: Update doveadm-search-query.7
raphael-walther [Thu, 8 Oct 2020 11:48:45 +0000 (13:48 +0200)] 
man: Update doveadm-search-query.7

TEXT searches also from headers, not just body.

4 years agodirector: Fix error message when director_username_hash expansion fails
jonmoesli [Wed, 7 Oct 2020 15:48:06 +0000 (17:48 +0200)] 
director: Fix error message when director_username_hash expansion fails

4 years agolib-storage: Fix potential assert-crash when adding missing attachment keywords
Timo Sirainen [Fri, 9 Oct 2020 11:58:54 +0000 (14:58 +0300)] 
lib-storage: Fix potential assert-crash when adding missing attachment keywords

Broken by aab71c35259f542d9ba46b4b5b24eff0016b802e

Fixes:
Panic: file index-mail.c: line 1241 (index_mail_parse_body): assertion failed: (data->parser_ctx != NULL)

4 years agolib: json-parser - Fix skipping strings with non-blocking input
Timo Sirainen [Thu, 8 Oct 2020 07:41:52 +0000 (10:41 +0300)] 
lib: json-parser - Fix skipping strings with non-blocking input

The skipping could have accessed memory outside the allocated string.
This might have resulted in a crash, or caused JSON parsing to fail.

4 years agolib-mail: test-message-header-decode - Add random encode/decode tests for 8 bit data.
Stephan Bosch [Wed, 16 Sep 2020 03:06:12 +0000 (05:06 +0200)] 
lib-mail: test-message-header-decode - Add random encode/decode tests for 8 bit data.

This also tests handling of (broken) UTF-8 input.

4 years agolib-mail: test-message-header-encode - Add tests for broken UTF-8 in input.
Stephan Bosch [Wed, 16 Sep 2020 02:31:58 +0000 (04:31 +0200)] 
lib-mail: test-message-header-encode - Add tests for broken UTF-8 in input.

4 years agolib-mail: test-message-header-encode - Check maximum line length with long printable...
Stephan Bosch [Thu, 17 Sep 2020 10:17:44 +0000 (12:17 +0200)] 
lib-mail: test-message-header-encode - Check maximum line length with long printable text and whitespace.

4 years agolib-mail: message-header-encode - Update function descriptions.
Stephan Bosch [Wed, 16 Sep 2020 23:26:13 +0000 (01:26 +0200)] 
lib-mail: message-header-encode - Update function descriptions.

4 years agolib-mail: Properly handle bad UTF-8 in message_header_encode_b().
Stephan Bosch [Wed, 16 Sep 2020 01:21:30 +0000 (03:21 +0200)] 
lib-mail: Properly handle bad UTF-8 in message_header_encode_b().

Broken characters are substituted with a replacement character.

4 years agolib-mail: Properly handle bad UTF-8 in message_header_encode_q().
Stephan Bosch [Wed, 16 Sep 2020 01:19:34 +0000 (03:19 +0200)] 
lib-mail: Properly handle bad UTF-8 in message_header_encode_q().

Broken characters are substituted with a replacement character.

4 years agolib-mail: message-header-encode - Return immediately when len == 0 in message_header_...
Stephan Bosch [Wed, 16 Sep 2020 01:10:12 +0000 (03:10 +0200)] 
lib-mail: message-header-encode - Return immediately when len == 0 in message_header_encode_b/q().

Just to make sure. This shouldn't happen in the first place.

4 years agolib-mail: message-header-encode - Use size_t for length/size variables and parameters.
Stephan Bosch [Wed, 16 Sep 2020 01:05:30 +0000 (03:05 +0200)] 
lib-mail: message-header-encode - Use size_t for length/size variables and parameters.

4 years agolib-mail: message-header-encode - Fix encoding of 0x7F byte for Q encoding.
Stephan Bosch [Wed, 16 Sep 2020 23:33:52 +0000 (01:33 +0200)] 
lib-mail: message-header-encode - Fix encoding of 0x7F byte for Q encoding.

It was not escaped.

4 years agolib-mail: test-message-header-decode - Use test_assert_idx().
Stephan Bosch [Wed, 16 Sep 2020 23:41:41 +0000 (01:41 +0200)] 
lib-mail: test-message-header-decode - Use test_assert_idx().

4 years agolib-mail: test-message-header-decode - Avoid generating random bytes that are never...
Stephan Bosch [Wed, 16 Sep 2020 16:28:43 +0000 (18:28 +0200)] 
lib-mail: test-message-header-decode - Avoid generating random bytes that are never used.

4 years agolib-mail: test-message-header-decode - Use test_assert_strcmp().
Stephan Bosch [Thu, 17 Sep 2020 10:24:40 +0000 (12:24 +0200)] 
lib-mail: test-message-header-decode - Use test_assert_strcmp().

4 years agolib-mail: test-message-header-encode - Use test_assert_strcmp().
Stephan Bosch [Thu, 17 Sep 2020 10:23:06 +0000 (12:23 +0200)] 
lib-mail: test-message-header-encode - Use test_assert_strcmp().

4 years agolib: base64 - Add base64_encode_get_full_space().
Stephan Bosch [Tue, 15 Sep 2020 23:03:53 +0000 (01:03 +0200)] 
lib: base64 - Add base64_encode_get_full_space().

This translates the space in the destination buffer to the number of bytes that
can be encoded at most to complete the full base64 encoding, including padding
and newlines if configured.

4 years agolib: base64 - Fix return value of base64_encode_more().
Stephan Bosch [Tue, 15 Sep 2020 23:02:22 +0000 (01:02 +0200)] 
lib: base64 - Fix return value of base64_encode_more().

It didn't properly return TRUE when all input data was consumed.

4 years agolib: test-base64 - Add test for base64_encode_get_size() in random lowlevel streaming...
Stephan Bosch [Wed, 16 Sep 2020 21:19:19 +0000 (23:19 +0200)] 
lib: test-base64 - Add test for base64_encode_get_size() in random lowlevel streaming tests.

4 years agolib: test-base64 - Abort random lowlevel test case early when something failed already.
Stephan Bosch [Wed, 16 Sep 2020 21:20:32 +0000 (23:20 +0200)] 
lib: test-base64 - Abort random lowlevel test case early when something failed already.

4 years agolib: unichar - Add length definitions for replacement and ellipsis characters.
Stephan Bosch [Tue, 15 Sep 2020 22:37:45 +0000 (00:37 +0200)] 
lib: unichar - Add length definitions for replacement and ellipsis characters.

4 years agolib: json-parser - Fix parsing \uXXXX in non-blocking input
Timo Sirainen [Wed, 6 May 2020 10:15:34 +0000 (13:15 +0300)] 
lib: json-parser - Fix parsing \uXXXX in non-blocking input

If it was in the istream's read boundary it resulted as parsing error.

4 years agolib: json-parser - Fix error message for invalid escape sequence
Timo Sirainen [Wed, 6 May 2020 10:01:41 +0000 (13:01 +0300)] 
lib: json-parser - Fix error message for invalid escape sequence

4 years agolib: json-parser - Don't allocate errors from data stack
Timo Sirainen [Wed, 6 May 2020 09:54:13 +0000 (12:54 +0300)] 
lib: json-parser - Don't allocate errors from data stack

There's no guarantee that the json-parser's life time is within the same
data stack frame.

4 years agolib: json-parser - Fail if strings contain NULs
Timo Sirainen [Wed, 6 May 2020 09:38:22 +0000 (12:38 +0300)] 
lib: json-parser - Fail if strings contain NULs

Previous behavior was to just truncate the string, which could be worse than
failing entirely.

4 years agolib-http: test-http-client-errors - Add unit test for host idle timeout.
Stephan Bosch [Tue, 22 Sep 2020 23:59:27 +0000 (01:59 +0200)] 
lib-http: test-http-client-errors - Add unit test for host idle timeout.

This test involves retrying a request that failed host lookup, which used to
cause the request to be erroneously aborted.

4 years agolib-http: http-client-host - Prevent erroneously starting host idle timeout during...
Stephan Bosch [Sun, 20 Sep 2020 23:14:20 +0000 (01:14 +0200)] 
lib-http: http-client-host - Prevent erroneously starting host idle timeout during request retry.

During request retry the request is first dropped from and subsequently added to
the queue. Dropping a request from the queue can start the host idle timeout
when it is the very last one. The timeout was not removed later on anymore when
the request was submitted again, because it was added prematurely (before
dropping the request).

4 years agolib-http: http-client-host - Fix determination of whether host is idle.
Stephan Bosch [Sun, 20 Sep 2020 21:16:00 +0000 (23:16 +0200)] 
lib-http: http-client-host - Fix determination of whether host is idle.

4 years agolib-http: http-client-host - Make sure DNS lookup is performed when host has no IPs.
Stephan Bosch [Tue, 22 Sep 2020 20:12:27 +0000 (22:12 +0200)] 
lib-http: http-client-host - Make sure DNS lookup is performed when host has no IPs.

This fixes at least one panic:

Panic: file ./http-client-private.h: line 679 (http_client_host_get_ip): assertion failed: (idx < host->shared->ips_count)

4 years agoauth: Fix potential read buffer overflow in PLAIN mechanism
Timo Sirainen [Wed, 26 Aug 2020 08:31:01 +0000 (11:31 +0300)] 
auth: Fix potential read buffer overflow in PLAIN mechanism

The overflow could have crashed the auth process in theory, although
practically it doesn't seem to happen.

4 years agoauth: test-mech - Allocate test input explicitly
Timo Sirainen [Wed, 26 Aug 2020 08:42:02 +0000 (11:42 +0300)] 
auth: test-mech - Allocate test input explicitly

This way valgrind will catch if there are read buffer overflows.

4 years agolib-index: Fix DEBUG assert to not trigger on transaction resets
Timo Sirainen [Wed, 1 Apr 2020 14:22:04 +0000 (17:22 +0300)] 
lib-index: Fix DEBUG assert to not trigger on transaction resets

Fixes a crash in test-mail-index when compiled --with-devel-checks:

Panic: file mail-index-transaction.c: line 211 (mail_index_transaction_commit_real): assertion failed: (expected_highest_modseq == log->head->sync_highest_modseq)

4 years agologin-common: Include the proxy's source address in log messages
Josef 'Jeff' Sipek [Thu, 17 Sep 2020 19:43:02 +0000 (15:43 -0400)] 
login-common: Include the proxy's source address in log messages