]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
9 years agolib-index: Allow growing ext record_size after mail_index_update_ext()
Timo Sirainen [Fri, 3 Jun 2016 14:54:36 +0000 (17:54 +0300)] 
lib-index: Allow growing ext record_size after mail_index_update_ext()

The existing records will just get some zero-padding at the end of records.

9 years agolib-index: Fixed changing extension record sizes.
Timo Sirainen [Fri, 3 Jun 2016 14:52:39 +0000 (17:52 +0300)] 
lib-index: Fixed changing extension record sizes.

map needs to be cloned before any extension record size changes are done.
Otherwise the map cloning will crash or do something broken.

9 years agolib-index: Minor code cleanup - use better variable names
Timo Sirainen [Fri, 3 Jun 2016 14:40:11 +0000 (17:40 +0300)] 
lib-index: Minor code cleanup - use better variable names

9 years agolib-storage: add no_fts in struct mail_search_arg
Baofeng Wang [Wed, 18 May 2016 11:42:21 +0000 (14:42 +0300)] 
lib-storage: add no_fts in struct mail_search_arg

When flag is set, FTS will not be performed.

fts plugin: handle no_fts flag

No fts will be performed once flag is set.
Original patch from Timo Sirainen <timo.sirainen@dovecot.fi>

9 years agovirtual: Moved virtual_mailbox_vfuncs to lib-storage.
Timo Sirainen [Mon, 30 May 2016 16:07:16 +0000 (19:07 +0300)] 
virtual: Moved virtual_mailbox_vfuncs to lib-storage.

This allows implementing other virtual storage backends.

9 years agomaster: Give a nicer error if unix/fifo_listener path is empty.
Timo Sirainen [Wed, 1 Jun 2016 09:37:22 +0000 (12:37 +0300)] 
master: Give a nicer error if unix/fifo_listener path is empty.

The previous error was simply:

unlink(/var/run/dovecot/) failed: Is a directory

9 years agodict-sql: Improve error message for invalid value fields.
Timo Sirainen [Thu, 2 Jun 2016 13:06:08 +0000 (16:06 +0300)] 
dict-sql: Improve error message for invalid value fields.

It'll now show which map's pattern matched, making it easier to find
from the config file.

9 years agoauth: Support %variable expansion for LDAP field names.
Timo Sirainen [Mon, 23 May 2016 14:47:50 +0000 (17:47 +0300)] 
auth: Support %variable expansion for LDAP field names.

For example this is now allowed:

user_attrs = \
  =namespace/%{ldap:enabledNamespace}/enabled=yes \
  ...

9 years agolib-imap-storage: Don't sort uninitialized array on invalid header list.
Timo Sirainen [Wed, 18 May 2016 18:41:49 +0000 (21:41 +0300)] 
lib-imap-storage: Don't sort uninitialized array on invalid header list.

9 years agolib-imap-storage: Minor error logging cleanup/fix.
Timo Sirainen [Wed, 18 May 2016 11:24:55 +0000 (14:24 +0300)] 
lib-imap-storage: Minor error logging cleanup/fix.

We read from input, not from mail_input. In theory it could have the actual
error instead of mail_input (although right now it couldn't).

9 years agolib: ostream-escaped: Fixed setting offset
Timo Sirainen [Wed, 18 May 2016 15:41:33 +0000 (18:41 +0300)] 
lib: ostream-escaped: Fixed setting offset

9 years agolmtp: Fixed error logging when writing to temp file
Timo Sirainen [Mon, 16 May 2016 16:16:55 +0000 (19:16 +0300)] 
lmtp: Fixed error logging when writing to temp file

9 years agoglobal: Use [io]_stream_get_error() insted of %m
Timo Sirainen [Mon, 16 May 2016 12:49:08 +0000 (15:49 +0300)] 
global: Use [io]_stream_get_error() insted of %m

9 years agoAdded LIBDOVECOT_SQL_INCLUDE to dovecot-config and dovecot.m4.
Stephan Bosch [Tue, 10 May 2016 18:37:55 +0000 (20:37 +0200)] 
Added LIBDOVECOT_SQL_INCLUDE to dovecot-config and dovecot.m4.

9 years agodsync: Fixed potential crash
Timo Sirainen [Wed, 11 May 2016 09:19:14 +0000 (05:19 -0400)] 
dsync: Fixed potential crash

This seems to be possible with dsync_mailbox_find_common_expunged_uid() ->
dsync_mailbox_common_uid_found() -> dsync_mailbox_rewind_search() -> following
search doesn't find anything.

9 years agodoveadm fetch: Translate commas to spaces in body|binary.<section> with
Timo Sirainen [Tue, 3 May 2016 16:42:08 +0000 (19:42 +0300)] 
doveadm fetch: Translate commas to spaces in body|binary.<section> with

This way we can do e.g.:

doveadm fetch 'uid body.header.fields(from,to,subject)' ...

Although in theory we could also change the parser to allow spaces as long
as they're inside (..), but this is probably too much extra effort.

9 years agolib-imap-storage: Allow HEADER.FIELDS(..) without space before '('
Timo Sirainen [Tue, 3 May 2016 16:39:44 +0000 (19:39 +0300)] 
lib-imap-storage: Allow HEADER.FIELDS(..) without space before '('

This is to allow doveadm fetch to use it. Attempting to do this without a
space in IMAP already fails elsewhere:

x fetch 1 body.peek[header.fields(from to)]
x BAD Error in IMAP command FETCH: Invalid characters in atom

9 years agodoveadm fetch: Fixed logging errors for istream failures
Timo Sirainen [Tue, 3 May 2016 11:58:37 +0000 (14:58 +0300)] 
doveadm fetch: Fixed logging errors for istream failures

9 years agodoveadm fetch: Added body.<section> and binary.<section> fields
Timo Sirainen [Tue, 3 May 2016 11:54:28 +0000 (14:54 +0300)] 
doveadm fetch: Added body.<section> and binary.<section> fields

These correspond to IMAP BODY[<section>].

9 years agodoveadm: error to print formatted without format
Martti Rannanjärvi [Wed, 20 Apr 2016 11:33:57 +0000 (14:33 +0300)] 
doveadm: error to print formatted without format

This changes the segfault of `doveadm -f formatted ...` to an error.

9 years agolib-http: server: Fixed assert failure occurring when closing the connection while...
Stephan Bosch [Sat, 30 Apr 2016 12:22:21 +0000 (14:22 +0200)] 
lib-http: server: Fixed assert failure occurring when closing the connection while a request payload was still being read.

9 years ago.gitignore: Added *~
Timo Sirainen [Sat, 30 Apr 2016 12:26:27 +0000 (15:26 +0300)] 
.gitignore: Added *~

9 years agodoveadm-server: Handle istream send error.
Aki Tuomi [Tue, 26 Apr 2016 16:26:34 +0000 (19:26 +0300)] 
doveadm-server: Handle istream send error.

9 years agolib-dict-extra: Avoid out of scope data stack usage.
Teemu Huovila [Fri, 29 Apr 2016 18:36:31 +0000 (21:36 +0300)] 
lib-dict-extra: Avoid out of scope data stack usage.

9 years agolib: Add PKCS#5 pbkdf1 and 2
Aki Tuomi [Wed, 20 Apr 2016 14:34:53 +0000 (17:34 +0300)] 
lib: Add PKCS#5 pbkdf1 and 2

9 years agoauth: Add PBKDF2 password scheme
Aki Tuomi [Wed, 27 Apr 2016 06:14:29 +0000 (09:14 +0300)] 
auth: Add PBKDF2 password scheme

9 years agolib-fts: Improved stopword file reading.
Teemu Huovila [Wed, 1 Jun 2016 09:24:57 +0000 (12:24 +0300)] 
lib-fts: Improved stopword file reading.

The reading tries to be a little bit stricter now. Only stopwords at the
start of a new line are accepted now. Changed fi stopwords accordingly.
Also removed superfluous stack allocation in parsing.

9 years agolib-fts: Add stopword files for more languages.
Teemu Huovila [Mon, 30 May 2016 09:40:00 +0000 (12:40 +0300)] 
lib-fts: Add stopword files for more languages.

9 years agolib-fts: Move stopwords to subdirectory.
Teemu Huovila [Mon, 30 May 2016 08:54:26 +0000 (11:54 +0300)] 
lib-fts: Move stopwords to subdirectory.

All files incluided in dist are explicitly mentioned. The whole
subdirectory 'stopwords' could also be distributed, but that is
more error prone.

9 years agodict: Pipelined iteration replies may have been hanging.
Timo Sirainen [Wed, 1 Jun 2016 21:52:37 +0000 (00:52 +0300)] 
dict: Pipelined iteration replies may have been hanging.

For example:
 - lookup start
 - iterate start
 - iterate finished, but can't reply yet
 - lookup finished
 - iterate reply can be sent now, but wasn't previously

9 years agodict: Fixed crash when reaching max (5) pending commands.
Timo Sirainen [Wed, 1 Jun 2016 21:51:26 +0000 (00:51 +0300)] 
dict: Fixed crash when reaching max (5) pending commands.

9 years agoglobal: Use i_stream_get_max_buffer_size() wherever possible
Timo Sirainen [Wed, 1 Jun 2016 15:11:29 +0000 (18:11 +0300)] 
global: Use i_stream_get_max_buffer_size() wherever possible

After 7be8ba0c0 it's no longer correct to access stream->max_buffer_size
directly. These changes fix using istream-chain with various wrapper
streams.

9 years agolib: i_stream_get_max_buffer_size() checks also parents' max sizes
Timo Sirainen [Wed, 1 Jun 2016 15:09:48 +0000 (18:09 +0300)] 
lib: i_stream_get_max_buffer_size() checks also parents' max sizes

This fixes i_stream_get_max_buffer_size() to work correctly with
istream-chain.

9 years agolib: istream-chain didn't update its max_buffer_size
Timo Sirainen [Wed, 1 Jun 2016 15:03:58 +0000 (18:03 +0300)] 
lib: istream-chain didn't update its max_buffer_size

I had this code at some point earlier, but looks like it got lost from the
final commit.

9 years agolib-compression: istream.max_buffer_size == 0 isn't unlimited.
Timo Sirainen [Wed, 1 Jun 2016 14:52:23 +0000 (17:52 +0300)] 
lib-compression: istream.max_buffer_size == 0 isn't unlimited.

9 years agofs-metawrap: Removed unnecessary code.
Timo Sirainen [Wed, 1 Jun 2016 14:18:23 +0000 (17:18 +0300)] 
fs-metawrap: Removed unnecessary code.

As mentioned in a0cf7d392, this can't happen.

9 years agolib-fs: Improved unit tests.
Timo Sirainen [Wed, 1 Jun 2016 14:12:51 +0000 (17:12 +0300)] 
lib-fs: Improved unit tests.

9 years agofs-metawrap: Removed unnecessary code.
Timo Sirainen [Wed, 1 Jun 2016 14:12:10 +0000 (17:12 +0300)] 
fs-metawrap: Removed unnecessary code.

The caller already set success==FALSE if ostream was closed.

9 years agolib-fs: Added more asserts
Timo Sirainen [Wed, 1 Jun 2016 14:11:53 +0000 (17:11 +0300)] 
lib-fs: Added more asserts

9 years agolib-fs: Clarified fs_write_stream_abort() API and dropped its _async().
Timo Sirainen [Wed, 1 Jun 2016 14:06:28 +0000 (17:06 +0300)] 
lib-fs: Clarified fs_write_stream_abort() API and dropped its _async().

We can't handle an abort after an async fs_write_stream_finish() is already
going.

9 years agolib-fs: Added fs_write_stream_abort_async()
Timo Sirainen [Wed, 1 Jun 2016 12:15:19 +0000 (15:15 +0300)] 
lib-fs: Added fs_write_stream_abort_async()

9 years agolib-mail: istream-qp-decoder: For efficiency, avoid copying data between decode buffe...
Stephan Bosch [Sat, 14 May 2016 20:49:53 +0000 (22:49 +0200)] 
lib-mail: istream-qp-decoder: For efficiency, avoid copying data between decode buffer and stream buffer.

Instead, use the decode buffer directly as stream buffer.

9 years agolib: istream's max_buffer_size=0 means 0, not unlimited.
Timo Sirainen [Wed, 4 May 2016 15:24:03 +0000 (18:24 +0300)] 
lib: istream's max_buffer_size=0 means 0, not unlimited.

Make sure we don't grow the buffer size then.

9 years agolib: Fix to previous istream-chain max_buffer_size handling
Timo Sirainen [Wed, 1 Jun 2016 10:30:22 +0000 (13:30 +0300)] 
lib: Fix to previous istream-chain max_buffer_size handling

We were casting the wrong stream.

9 years agofs-metawrap: Fixed buffer size while reading metadata header.
Timo Sirainen [Tue, 31 May 2016 19:33:32 +0000 (22:33 +0300)] 
fs-metawrap: Fixed buffer size while reading metadata header.

It's not enough to have the buffer size set to "large enough" at the time of
the stream creation, because i_stream_set_max_buffer_size() could be called
afterwards.

9 years agolib: Fixed max_buffer_size handling in istream-chain
Timo Sirainen [Tue, 31 May 2016 19:19:37 +0000 (22:19 +0300)] 
lib: Fixed max_buffer_size handling in istream-chain

The default max_buffer_size=256 was wrong in all situations.

We're now assuming that the underlying istreams' max_buffer_size is always
correct. While gluing together two streams we're now allocating enough
memory to hold all of the wanted data (instead of assert-crashing as could
have happened earlier). This means that the max memory usage is actually
the two streams' max_buffer_size summed together. Ideally this would be
fixed to limit the max_buffer_size to maximum of the two, but that would
require further changes.

9 years agodoveadm: Do not use INT64 with mail cmds yet
Aki Tuomi [Wed, 1 Jun 2016 05:43:23 +0000 (08:43 +0300)] 
doveadm: Do not use INT64 with mail cmds yet

9 years agolib-dcrypt: Fixed check program dependencies
Timo Sirainen [Tue, 31 May 2016 23:01:10 +0000 (02:01 +0300)] 
lib-dcrypt: Fixed check program dependencies

9 years agolib-dcrypt: Fixed dcrypt_openssl_generate_keypair()
Timo Sirainen [Tue, 31 May 2016 21:19:41 +0000 (00:19 +0300)] 
lib-dcrypt: Fixed dcrypt_openssl_generate_keypair()

9 years agodict-client: Fixed idle_msecs setting.
Timo Sirainen [Tue, 31 May 2016 14:16:17 +0000 (17:16 +0300)] 
dict-client: Fixed idle_msecs setting.

9 years agolib-fs: Don't duplicate backend name in fs_init() errors.
Timo Sirainen [Tue, 31 May 2016 14:06:29 +0000 (17:06 +0300)] 
lib-fs: Don't duplicate backend name in fs_init() errors.

fs_init() already adds the "backend: " prefix to the error_r, so the callers
shouldn't do it again.

9 years agolib-dcrypt: Use base64 encoded test samples
Aki Tuomi [Mon, 30 May 2016 19:39:39 +0000 (22:39 +0300)] 
lib-dcrypt: Use base64 encoded test samples

9 years agolib-dcrypt: Fix strict type-punning warning
Aki Tuomi [Mon, 30 May 2016 19:33:29 +0000 (22:33 +0300)] 
lib-dcrypt: Fix strict type-punning warning

9 years agolib-dcrypt: Fix various OpenSSL API usage issues
Aki Tuomi [Mon, 30 May 2016 19:30:31 +0000 (22:30 +0300)] 
lib-dcrypt: Fix various OpenSSL API usage issues

9 years agolib-dcrypt: Remove duplication of samples
Aki Tuomi [Mon, 30 May 2016 19:05:22 +0000 (22:05 +0300)] 
lib-dcrypt: Remove duplication of samples

9 years agolib-dcrypt: Always allow error_r to be NULL.
Timo Sirainen [Mon, 30 May 2016 18:14:53 +0000 (21:14 +0300)] 
lib-dcrypt: Always allow error_r to be NULL.

Especially dcrypt_openssl_private_to_public_key() was called with
error_r=NULL by the dcrypt.c itself.

9 years agolib-dcrypt: sample-v2.bin shouldn't be executable
Timo Sirainen [Mon, 30 May 2016 16:38:22 +0000 (19:38 +0300)] 
lib-dcrypt: sample-v2.bin shouldn't be executable

9 years agolib-dcrypt: Compiler warning fixes
Timo Sirainen [Mon, 30 May 2016 12:36:17 +0000 (15:36 +0300)] 
lib-dcrypt: Compiler warning fixes

9 years agodoveadm mailbox delete: Added --unsafe option.
Timo Sirainen [Fri, 27 May 2016 19:18:17 +0000 (22:18 +0300)] 
doveadm mailbox delete: Added --unsafe option.

9 years agolib-storage: Added MAILBOX_FLAG_DELETE_UNSAFE
Timo Sirainen [Fri, 27 May 2016 19:15:07 +0000 (22:15 +0300)] 
lib-storage: Added MAILBOX_FLAG_DELETE_UNSAFE

9 years agoconfigure: Include lib-dcrypt in core
Aki Tuomi [Thu, 5 May 2016 21:29:16 +0000 (00:29 +0300)] 
configure: Include lib-dcrypt in core

9 years agolib-dcrypt: Initial implementation
Aki Tuomi [Wed, 27 Apr 2016 11:08:00 +0000 (14:08 +0300)] 
lib-dcrypt: Initial implementation

9 years agodoveadm-director: Fix commands so that they compile
Aki Tuomi [Mon, 30 May 2016 11:45:09 +0000 (14:45 +0300)] 
doveadm-director: Fix commands so that they compile

9 years agodoveadm mailbox delete: Added -e parameter to delete only empty mailboxes.
Timo Sirainen [Fri, 27 May 2016 08:29:09 +0000 (11:29 +0300)] 
doveadm mailbox delete: Added -e parameter to delete only empty mailboxes.

9 years agodoveadm-director: Convert to ver2 infra
Aki Tuomi [Wed, 24 Feb 2016 10:10:19 +0000 (12:10 +0200)] 
doveadm-director: Convert to ver2 infra

9 years agodbox: Revert cache changes if some save/copy fails but transaction is committed.
Timo Sirainen [Fri, 27 May 2016 18:55:56 +0000 (21:55 +0300)] 
dbox: Revert cache changes if some save/copy fails but transaction is committed.

9 years agolazy-expunge: Don't fail expunge if mail was already expunged.
Timo Sirainen [Fri, 27 May 2016 18:34:26 +0000 (21:34 +0300)] 
lazy-expunge: Don't fail expunge if mail was already expunged.

9 years agolazy-expunge: Fixed error logging.
Timo Sirainen [Fri, 27 May 2016 18:32:23 +0000 (21:32 +0300)] 
lazy-expunge: Fixed error logging.

9 years agodsync: Debug logging improvement.
Timo Sirainen [Fri, 27 May 2016 15:30:01 +0000 (18:30 +0300)] 
dsync: Debug logging improvement.

9 years agolib-fs: Fix to previous fs-metawrap commit
Timo Sirainen [Fri, 27 May 2016 11:38:17 +0000 (14:38 +0300)] 
lib-fs: Fix to previous fs-metawrap commit

Argh. I was sure I compiled this before pushing it.

9 years agolib-fs: fs-metawrap: Improved error logging on corrupted files.
Timo Sirainen [Fri, 27 May 2016 11:33:47 +0000 (14:33 +0300)] 
lib-fs: fs-metawrap: Improved error logging on corrupted files.

9 years agodoveadm: Fixed sending command -parameters to doveadm-server
Timo Sirainen [Thu, 26 May 2016 16:13:40 +0000 (19:13 +0300)] 
doveadm: Fixed sending command -parameters to doveadm-server

9 years agosdbox: Make sure we don't crash when altmove-flag is set but alt path is missing.
Timo Sirainen [Thu, 26 May 2016 18:40:30 +0000 (21:40 +0300)] 
sdbox: Make sure we don't crash when altmove-flag is set but alt path is missing.

9 years agodict-sql: Fixed memory leak
Timo Sirainen [Thu, 26 May 2016 15:25:06 +0000 (18:25 +0300)] 
dict-sql: Fixed memory leak

9 years agocassandra: Added metrics=path connect setting.
Timo Sirainen [Wed, 25 May 2016 19:29:47 +0000 (22:29 +0300)] 
cassandra: Added metrics=path connect setting.

Cassandra's metrics are written to the path in JSON format. It can be a file
or a FIFO. The path supports expanding the standard global %variables, such
as %{pid}

9 years agodict: Added missing main.h from previous commit
Timo Sirainen [Wed, 25 May 2016 19:08:04 +0000 (22:08 +0300)] 
dict: Added missing main.h from previous commit

9 years agodict: Show command statistics in process title.
Timo Sirainen [Wed, 25 May 2016 17:00:01 +0000 (20:00 +0300)] 
dict: Show command statistics in process title.

9 years agolib: Fixed crashes in timing_get_median() and timing_get_95th()
Timo Sirainen [Wed, 25 May 2016 16:56:47 +0000 (19:56 +0300)] 
lib: Fixed crashes in timing_get_median() and timing_get_95th()

These were writing outside allocated memory. They weren't actually used
anywhere yet though.

9 years agolib: Added timing_reset()
Timo Sirainen [Wed, 25 May 2016 16:45:58 +0000 (19:45 +0300)] 
lib: Added timing_reset()

9 years agodsync: race condition where done/finish is received after one side has closed
J. Nick Koston [Fri, 20 May 2016 00:15:49 +0000 (19:15 -0500)] 
dsync: race condition where done/finish is received after one side has closed

We do not tell the remote we are closing if they have
already told us because they close the
connection after sending ITEM_FINISH or ITEM_DONE and will
not be ever receive anything else from us unless
it just happens to get combined into the same packet
as a previous response and is already in the buffer.

9 years agolib-stats: Allow unregistering + re-registering stats.
Timo Sirainen [Tue, 24 May 2016 12:52:37 +0000 (15:52 +0300)] 
lib-stats: Allow unregistering + re-registering stats.

Fixes:
Panic: stats_register() called after stats_alloc_size() was already called - this will break existing allocations

This could have happened with doveadm HTTP API when using multiple commands
in same HTTP connection.

9 years agolib-index: Fixed assert-crash caused by previous cache compression change.
Timo Sirainen [Mon, 23 May 2016 20:24:31 +0000 (23:24 +0300)] 
lib-index: Fixed assert-crash caused by previous cache compression change.

We can't call mail_cache_map() when cache file isn't open or we'll crash:

Panic: file mail-cache.c: line 468 (mail_cache_map): assertion failed: (cache->need_compress_file_seq != 0 || MAIL_INDEX_IS_IN_MEMORY(cache->index))

9 years agolib-index: Make sure cache compression doesn't clear the file unneededly.
Timo Sirainen [Mon, 23 May 2016 15:46:09 +0000 (18:46 +0300)] 
lib-index: Make sure cache compression doesn't clear the file unneededly.

This probably never happened with current code, except when the cache file
was already broken.

mail_cache_compress() unmapped cache when map_with_read==TRUE, but we never
mapped it back. This would cause cache copying code to think cache was
unusable and not copy anything.

9 years agolib-ldap: Use ldap_unbind_ext() instead of ldap_destroy()
Timo Sirainen [Mon, 23 May 2016 10:12:41 +0000 (13:12 +0300)] 
lib-ldap: Use ldap_unbind_ext() instead of ldap_destroy()

This allows it to compile with older LDAP libraries. Their behavior (at least
in OpenLDAP) is identical as long as LDAP_OPT_CLIENT_CONTROLS haven't been
changed, which we haven't.

9 years agolib-ldap: Support libldap without LDAP_OPT_X_TLS_NEWCTX.
Timo Sirainen [Mon, 23 May 2016 10:08:20 +0000 (13:08 +0300)] 
lib-ldap: Support libldap without LDAP_OPT_X_TLS_NEWCTX.

9 years agodoveadm backup: Fixed unnecessary mailbox deletion.
Timo Sirainen [Fri, 20 May 2016 12:55:52 +0000 (15:55 +0300)] 
doveadm backup: Fixed unnecessary mailbox deletion.

Broken by 79490ec1a. The idea is to delete the mailbox early to avoid
unnecessary work, but we deleted it too early. If the last mail(s) were
deleted instead of just expunging them we deleted the whole mailbox.

9 years agolib-mail: Fixed istream-header-filter calling callback(hdr=NULL)
Timo Sirainen [Thu, 19 May 2016 20:19:29 +0000 (23:19 +0300)] 
lib-mail: Fixed istream-header-filter calling callback(hdr=NULL)

It should do it on the following parsings as well if there were any
callbacks that were called, or if the hdr==NULL callback added any
headers. This is important because the hdr==NULL call could do some
cleanups.

9 years agoconfig: fix possible out-of-bound access in parsing function
Baofeng Wang [Mon, 16 May 2016 08:34:05 +0000 (11:34 +0300)] 
config: fix possible out-of-bound access in parsing function

Add low-bound check when decreasing string pointer from tail.

9 years agolib-fs: istream-metawrap can't have a readable fd currently
Timo Sirainen [Wed, 18 May 2016 19:26:50 +0000 (22:26 +0300)] 
lib-fs: istream-metawrap can't have a readable fd currently

9 years agolib-mail: istream-header-filter - Don't return -2 too early
Timo Sirainen [Wed, 18 May 2016 11:56:59 +0000 (14:56 +0300)] 
lib-mail: istream-header-filter - Don't return -2 too early

We returned -2 after we already added the data to the buffer. We should
have returned -2 only on the next read() call if nothing was skipped.

9 years agolib-http: Fixed checking if istream or ostream needs waiting.
Timo Sirainen [Wed, 18 May 2016 15:51:55 +0000 (18:51 +0300)] 
lib-http: Fixed checking if istream or ostream needs waiting.

9 years agolib: If epoll_ctl() fails, panic instead of just fatal.
Timo Sirainen [Wed, 18 May 2016 15:48:27 +0000 (18:48 +0300)] 
lib: If epoll_ctl() fails, panic instead of just fatal.

This makes it easier to fix such bugs.

9 years agodoveadm-mailbox-delete: Restore recursive parameter
Aki Tuomi [Wed, 18 May 2016 06:33:15 +0000 (09:33 +0300)] 
doveadm-mailbox-delete: Restore recursive parameter

9 years agodict: Fix crash when no dictionaries defined
Aki Tuomi [Wed, 18 May 2016 06:29:04 +0000 (09:29 +0300)] 
dict: Fix crash when no dictionaries defined

9 years agoimap: Include sync timing information in tagged command replies.
Timo Sirainen [Mon, 16 May 2016 21:00:43 +0000 (00:00 +0300)] 
imap: Include sync timing information in tagged command replies.
Show it only when it's larger than 0 to avoid unnecessary output.

9 years agodoveadm-mailbox: Add update subcommand
Aki Tuomi [Tue, 17 May 2016 20:31:29 +0000 (23:31 +0300)] 
doveadm-mailbox: Add update subcommand

9 years agolib-ldap: Fixed assert-crash when killing LDAP connection.
Timo Sirainen [Thu, 12 May 2016 21:45:34 +0000 (17:45 -0400)] 
lib-ldap: Fixed assert-crash when killing LDAP connection.

libldap may have already closed the fd, so with epoll io_remove() would
try to remove it and crash with:

Panic: epoll_ctl(del, 12) failed: Bad file descriptor

9 years agolib: istream - provide alternatives to i_stream_read_data()
Phil Carmody [Mon, 8 Feb 2016 16:32:10 +0000 (18:32 +0200)] 
lib: istream - provide alternatives to i_stream_read_data()

Providing as a parameter the number of bytes that you would be
disappointed to receive was confusing compared to providing the
number that you would be happy to receive. This lets us get rid
of all the '-1's in the callers. The callers which used 0 as
a parameter were so common that it's worth providing a separate
API just to simplify their demands.

Deep down, these are still the same underlying function. Currently
we route the new API through the old one, but eventually, the old
API can be routed through the new one, so that the friendlier
interface has the simplest implementation.

Signed-off-by: Phil Carmody <phil@dovecot.fi>
9 years agolib-ldap: Do not create new context and lose settings
Aki Tuomi [Sun, 15 May 2016 14:25:17 +0000 (17:25 +0300)] 
lib-ldap: Do not create new context and lose settings

9 years agolib-ldap: Compiling fix - don't pass through void return
Timo Sirainen [Sat, 14 May 2016 22:17:18 +0000 (01:17 +0300)] 
lib-ldap: Compiling fix - don't pass through void return