]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
6 years agosubmission: Split the DATA command into a generic part and a part related to relaying...
Stephan Bosch [Mon, 27 Aug 2018 23:58:58 +0000 (01:58 +0200)] 
submission: Split the DATA command into a generic part and a part related to relaying to an MTA.

6 years agosubmission: Split the RSET command into a generic part and a part related to relaying...
Stephan Bosch [Wed, 29 Aug 2018 20:30:51 +0000 (22:30 +0200)] 
submission: Split the RSET command into a generic part and a part related to relaying to an MTA.

6 years agosubmission: Split the RCPT command into a generic part and a part related to relaying...
Stephan Bosch [Wed, 29 Aug 2018 20:27:12 +0000 (22:27 +0200)] 
submission: Split the RCPT command into a generic part and a part related to relaying to an MTA.

6 years agosubmission: Split the MAIL command into a generic part and a part related to relaying...
Stephan Bosch [Wed, 29 Aug 2018 20:25:18 +0000 (22:25 +0200)] 
submission: Split the MAIL command into a generic part and a part related to relaying to an MTA.

6 years agosubmission: Split the EHLO command into a generic part and a part related to relaying...
Stephan Bosch [Sat, 1 Sep 2018 11:30:34 +0000 (13:30 +0200)] 
submission: Split the EHLO command into a generic part and a part related to relaying to an MTA.

6 years agosubmission: Move submission_helo_reply_submit() from cmd-helo.c to submission-commands.c.
Stephan Bosch [Mon, 27 Aug 2018 18:15:40 +0000 (20:15 +0200)] 
submission: Move submission_helo_reply_submit() from cmd-helo.c to submission-commands.c.

6 years agosubmission: Make HELO/EHLO reply submission a separate public function.
Stephan Bosch [Mon, 27 Aug 2018 17:46:21 +0000 (19:46 +0200)] 
submission: Make HELO/EHLO reply submission a separate public function.

6 years agosubmission: Move client_command_handle_proxy_reply() to submission-backend-relay.c.
Stephan Bosch [Sun, 15 Jul 2018 17:10:36 +0000 (19:10 +0200)] 
submission: Move client_command_handle_proxy_reply() to submission-backend-relay.c.

6 years agosubmission: client: Remove spurious forward declaration of "struct client_command_con...
Stephan Bosch [Sat, 15 Sep 2018 16:33:30 +0000 (18:33 +0200)] 
submission: client: Remove spurious forward declaration of "struct client_command_context".

6 years agolib-smtp: client: Add forward declaration for struct smtp_client_settings in smtp...
Stephan Bosch [Sat, 15 Sep 2018 19:06:07 +0000 (21:06 +0200)] 
lib-smtp: client: Add forward declaration for struct smtp_client_settings in smtp-client-connection.h.

6 years agolib-smtp: server: Drop pending commands and transaction at disconnect rather than...
Stephan Bosch [Wed, 12 Sep 2018 19:21:09 +0000 (21:21 +0200)] 
lib-smtp: server: Drop pending commands and transaction at disconnect rather than destroy.

This makes sure the conn_trans_free() connection callback is called before
th conn_disconnect() callback. This makes more sense than the other way around,
which instead would be a likely cause for mishaps causing segfaults and the
like.

6 years agolib-smtp: server: Add callback for transaction start.
Stephan Bosch [Sun, 2 Sep 2018 21:26:21 +0000 (23:26 +0200)] 
lib-smtp: server: Add callback for transaction start.

6 years agolib-smtp: server: Change command hooks API to allow many parallel hooks with individu...
Stephan Bosch [Tue, 17 Jul 2018 22:51:56 +0000 (00:51 +0200)] 
lib-smtp: server: Change command hooks API to allow many parallel hooks with individual context.

This e.g. allows many server plugins to hook into command execution without
interfering with eachother.

6 years agoLAYOUT=index: Fix rebuilding mailbox list index on force-resync
Timo Sirainen [Tue, 15 Jan 2019 23:00:22 +0000 (01:00 +0200)] 
LAYOUT=index: Fix rebuilding mailbox list index on force-resync

The if-check was a bit confusing because have_backend==TRUE means that there
the mailbox list index is only an index, while have_backend==FALSE means
that the mailbox list index is the only source for the list of mailboxes
(= list index is the backend).

6 years agopush-notification-driver-lua: Request flags and keywords
Aki Tuomi [Mon, 7 Jan 2019 18:08:26 +0000 (20:08 +0200)] 
push-notification-driver-lua: Request flags and keywords

6 years agopush-notification-driver-lua: Fix comment typo
Aki Tuomi [Mon, 7 Jan 2019 17:54:56 +0000 (19:54 +0200)] 
push-notification-driver-lua: Fix comment typo

6 years agopush-notification-driver-lua: Add keywords and flags to MessageAppend event
Aki Tuomi [Mon, 7 Jan 2019 18:01:21 +0000 (20:01 +0200)] 
push-notification-driver-lua: Add keywords and flags to MessageAppend event

6 years agopush-notification-driver-lua: Add keywords and flags to MessageNew event
Aki Tuomi [Mon, 7 Jan 2019 17:49:20 +0000 (19:49 +0200)] 
push-notification-driver-lua: Add keywords and flags to MessageNew event

6 years agopush-notification-driver-lua: Rename keywords_set and keywors_clear to keywords
Aki Tuomi [Mon, 7 Jan 2019 17:48:11 +0000 (19:48 +0200)] 
push-notification-driver-lua: Rename keywords_set and keywors_clear to keywords

This is more concince since these are the keywords being operated on.

6 years agopush-notification-driver-lua: Push keywords in helper function
Aki Tuomi [Mon, 7 Jan 2019 17:47:14 +0000 (19:47 +0200)] 
push-notification-driver-lua: Push keywords in helper function

6 years agopush-notification-driver-lua: Push mail flags as array of flags
Aki Tuomi [Mon, 7 Jan 2019 17:42:39 +0000 (19:42 +0200)] 
push-notification-driver-lua: Push mail flags as array of flags

6 years agopush-notification: Add flags and keywords to MessageAppend event
Aki Tuomi [Mon, 7 Jan 2019 18:00:07 +0000 (20:00 +0200)] 
push-notification: Add flags and keywords to MessageAppend event

6 years agopush-notification: Add flags and keywords to MessageNew event
Aki Tuomi [Mon, 7 Jan 2019 17:33:28 +0000 (19:33 +0200)] 
push-notification: Add flags and keywords to MessageNew event

6 years agom4: Remove unneeded else case from want_lz4
Aki Tuomi [Fri, 11 Jan 2019 07:55:25 +0000 (09:55 +0200)] 
m4: Remove unneeded else case from want_lz4

This causes extraneous code in configure causing it to fail

6 years agom4: Replace some if tests with AS_IF
Aki Tuomi [Fri, 11 Jan 2019 07:37:51 +0000 (09:37 +0200)] 
m4: Replace some if tests with AS_IF

Fixes configure on older systems

6 years agom4: Remove stray comma from want_lua.m4
Aki Tuomi [Fri, 11 Jan 2019 07:37:42 +0000 (09:37 +0200)] 
m4: Remove stray comma from want_lua.m4

6 years agom4: Remove stray AC_ARG_WITH from arc4random.m4
Aki Tuomi [Fri, 11 Jan 2019 07:37:02 +0000 (09:37 +0200)] 
m4: Remove stray AC_ARG_WITH from arc4random.m4

6 years agolog: Use failure context log_prefix when available as prefix for error.
Sergey Kitov [Wed, 12 Dec 2018 14:21:29 +0000 (16:21 +0200)] 
log: Use failure context log_prefix when available as prefix for error.

Current behaviour hides log prefix when seeing errors via doveadm log
errors, this commit will fix it.

6 years agoauth: Fix auth-policy log-only warning whitespace
Martti Rannanjärvi [Thu, 13 Dec 2018 09:30:06 +0000 (11:30 +0200)] 
auth: Fix auth-policy log-only warning whitespace

6 years agoauth: Add auth_policy_log_only setting
Aki Tuomi [Tue, 4 Dec 2018 11:42:44 +0000 (13:42 +0200)] 
auth: Add auth_policy_log_only setting

When auth_policy_log_only=yes, only log what would have been done.

6 years agoauth: Treat all negative responses from policy servers as drops
Aki Tuomi [Tue, 4 Dec 2018 11:42:04 +0000 (13:42 +0200)] 
auth: Treat all negative responses from policy servers as drops

Otherwise negative responses that are not -1 are considered
as success, which is wrong.

6 years agoauth: Log policy decisions clearly
Aki Tuomi [Tue, 4 Dec 2018 11:41:20 +0000 (13:41 +0200)] 
auth: Log policy decisions clearly

6 years agolib-storage: Fix mail_get_headers() API comment
Timo Sirainen [Tue, 11 Dec 2018 18:28:33 +0000 (20:28 +0200)] 
lib-storage: Fix mail_get_headers() API comment

6 years agolib-storage: Fix error handling if mailbox list index refresh fails
Timo Sirainen [Tue, 4 Dec 2018 09:19:23 +0000 (11:19 +0200)] 
lib-storage: Fix error handling if mailbox list index refresh fails

The caller expects the error to be in mail_storage, not mailbox_list.

6 years agomaildir: Don't crash with zlib plugin when saving is aborted
Timo Sirainen [Mon, 3 Dec 2018 13:43:06 +0000 (15:43 +0200)] 
maildir: Don't crash with zlib plugin when saving is aborted

The ostream can be finished even if the saving had already failed. It gets
deleted anyway.

Fixes:
Panic: file ostream-zlib.c: line 37 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0 || zstream->ostream.error_handling_disabled)

6 years agologin-proxy: Fix potential crash for delayed disconnects
Timo Sirainen [Mon, 3 Dec 2018 13:59:13 +0000 (15:59 +0200)] 
login-proxy: Fix potential crash for delayed disconnects

This happens only with login_proxy_max_disconnect_delay.

Fixes:
Panic: file ioloop.c: line 86 (io_add): assertion failed: (fd >= 0)

6 years agolib-smtp: client: Prevent sending an empty XCLIENT command when the first parameter...
Stephan Bosch [Mon, 3 Dec 2018 23:16:47 +0000 (00:16 +0100)] 
lib-smtp: client: Prevent sending an empty XCLIENT command when the first parameter is long.

6 years agolib: event - Add event_set_log_prefix_callback
Aki Tuomi [Thu, 29 Nov 2018 11:12:28 +0000 (13:12 +0200)] 
lib: event - Add event_set_log_prefix_callback

Fetch prefix using a callback.

6 years agolib: Fix failure_context.log_prefix_type_pos handling
Timo Sirainen [Thu, 29 Nov 2018 14:28:23 +0000 (16:28 +0200)] 
lib: Fix failure_context.log_prefix_type_pos handling

The log type string was inserted into wrong location if there were multiple
log prefixes.

6 years agolib-storage: Remove MAILBOX_FEATURE_QRESYNC
Timo Sirainen [Wed, 28 Nov 2018 12:13:54 +0000 (14:13 +0200)] 
lib-storage: Remove MAILBOX_FEATURE_QRESYNC

This is an imap-specific feature, which doesn't need to be visible in
the lib-storage layer.

6 years agoimap: Add support for ENABLE extensions
Timo Sirainen [Wed, 28 Nov 2018 12:12:57 +0000 (14:12 +0200)] 
imap: Add support for ENABLE extensions

Based on patch by Aki Tuomi

6 years agoimap: Change state import/export to use full feature string names
Timo Sirainen [Wed, 28 Nov 2018 12:02:44 +0000 (14:02 +0200)] 
imap: Change state import/export to use full feature string names

Single letter IDs wouldn't allow extensions.

6 years agoimap: Add client_enabled_features()
Timo Sirainen [Thu, 29 Nov 2018 08:01:36 +0000 (10:01 +0200)] 
imap: Add client_enabled_features()

This simplifies the following commits.

6 years agoimap: Cleanup - Change client_enable() to return void
Timo Sirainen [Wed, 28 Nov 2018 11:19:02 +0000 (13:19 +0200)] 
imap: Cleanup - Change client_enable() to return void

Nothing cares about its return value. With the current features it's
not even possible to fail. Possibly mailbox_enable() should be also
changed to return void in the future.

6 years agoimap: Add and use imap_feature_lookup()
Timo Sirainen [Wed, 28 Nov 2018 11:17:39 +0000 (13:17 +0200)] 
imap: Add and use imap_feature_lookup()

This simplifies the following commits.

6 years agoimap: Add and use client_enabled_mailbox_features()
Timo Sirainen [Wed, 28 Nov 2018 10:50:51 +0000 (12:50 +0200)] 
imap: Add and use client_enabled_mailbox_features()

This simplifies the following commits.

6 years agoimap: Cleanup - don't avoid calling mailbox_enable(box, 0)
Timo Sirainen [Wed, 28 Nov 2018 10:48:47 +0000 (12:48 +0200)] 
imap: Cleanup - don't avoid calling mailbox_enable(box, 0)

This simplifies the following changes. mailbox_enable() is an efficient
function and it doesn't mind being called with features=0 parameter.

6 years agoimap: Add and use client_has_enabled() wrapper
Timo Sirainen [Wed, 28 Nov 2018 10:44:48 +0000 (12:44 +0200)] 
imap: Add and use client_has_enabled() wrapper

This simplifies the following commits.

6 years agoimap: client_enable() API change - enable features one at a time
Timo Sirainen [Wed, 28 Nov 2018 10:42:55 +0000 (12:42 +0200)] 
imap: client_enable() API change - enable features one at a time

This simplifies the following commits.

6 years agoimap: Access enabled features via new imap_client_feature_* variables
Timo Sirainen [Wed, 28 Nov 2018 10:26:33 +0000 (12:26 +0200)] 
imap: Access enabled features via new imap_client_feature_* variables

This simplifies the following commits.

6 years agom4: dovecot.m4 - Bump serial
Aki Tuomi [Thu, 29 Nov 2018 08:19:38 +0000 (10:19 +0200)] 
m4: dovecot.m4 - Bump serial

6 years agom4: dovecot.m4 - Improve CC_CLANG
Aki Tuomi [Mon, 26 Nov 2018 10:45:52 +0000 (12:45 +0200)] 
m4: dovecot.m4 - Improve CC_CLANG

6 years agom4: dovecot.m4 - Call CC_CLANG before DC_DOVECOT_CFLAGS
Aki Tuomi [Mon, 26 Nov 2018 10:38:25 +0000 (12:38 +0200)] 
m4: dovecot.m4 - Call CC_CLANG before DC_DOVECOT_CFLAGS

So we know if we are using clang compiler

6 years agodovecot.m4: Preserve original CFLAGS/LDFLAGS
Aki Tuomi [Sat, 24 Nov 2018 18:35:53 +0000 (20:35 +0200)] 
dovecot.m4: Preserve original CFLAGS/LDFLAGS

Correct flags are detected during configure, so avoid
overwriting them here by accident.

6 years agodovecot.m4: Use _DC_EOF instead of EOF
Aki Tuomi [Sat, 24 Nov 2018 18:09:26 +0000 (20:09 +0200)] 
dovecot.m4: Use _DC_EOF instead of EOF

Avoids messing with other scripts

6 years agodovecot.m4: Use AS_IF macro instead of if
Aki Tuomi [Sat, 24 Nov 2018 18:08:51 +0000 (20:08 +0200)] 
dovecot.m4: Use AS_IF macro instead of if

It's safer with m4

6 years agodovecot.m4: Call DC_DOVECOT_CFLAGS and HARDENING earlier
Aki Tuomi [Sat, 24 Nov 2018 17:59:04 +0000 (19:59 +0200)] 
dovecot.m4: Call DC_DOVECOT_CFLAGS and HARDENING earlier

Before SUBST

6 years agodovecot.m4: Rename DOVECOT_CFLAGS function to DC_DOVECOT_CFLAGS
Aki Tuomi [Sat, 24 Nov 2018 17:58:18 +0000 (19:58 +0200)] 
dovecot.m4: Rename DOVECOT_CFLAGS function to DC_DOVECOT_CFLAGS

Avoid conflict with variable of same name

6 years agodovecot.m4: Use dnl instead of hash for comments
Aki Tuomi [Sat, 24 Nov 2018 17:57:00 +0000 (19:57 +0200)] 
dovecot.m4: Use dnl instead of hash for comments

6 years agoconfigure: Use DC_DOVECOT_HARDENING
Aki Tuomi [Sat, 24 Nov 2018 08:20:54 +0000 (10:20 +0200)] 
configure: Use DC_DOVECOT_HARDENING

6 years agodovecot.m4: Add DC_DOVECOT_HARDENING to check hardening options
Aki Tuomi [Sat, 24 Nov 2018 08:15:04 +0000 (10:15 +0200)] 
dovecot.m4: Add DC_DOVECOT_HARDENING to check hardening options

6 years agom4: Move various compiler and linker checks to dovecot.m4
Aki Tuomi [Sat, 24 Nov 2018 08:11:55 +0000 (10:11 +0200)] 
m4: Move various compiler and linker checks to dovecot.m4

We don't want to distribute CFLAGS or LDFLAGS that break
compiler, due to lack of support.

6 years agolib-master: test-event-stats - Use PRIu64 format
Aki Tuomi [Fri, 23 Nov 2018 13:34:51 +0000 (15:34 +0200)] 
lib-master: test-event-stats - Use PRIu64 format

Forgotten in e16ba6f

6 years agolib-master: test-event-stats - Include signal.h
Aki Tuomi [Fri, 23 Nov 2018 13:33:20 +0000 (15:33 +0200)] 
lib-master: test-event-stats - Include signal.h

Forgotten in e16ba6f

6 years agolib-master: test-event-stats: Properly ensure cleanup of all files generated by tests.
Stephan Bosch [Thu, 18 Oct 2018 13:25:53 +0000 (15:25 +0200)] 
lib-master: test-event-stats: Properly ensure cleanup of all files generated by tests.

6 years agolib-master: test-event-stats: Move launch_test_stats() to a more logical place.
Stephan Bosch [Thu, 18 Oct 2018 13:09:51 +0000 (15:09 +0200)] 
lib-master: test-event-stats: Move launch_test_stats() to a more logical place.

6 years agolib-master: Create local .gitignore file for potential test output junk.
Stephan Bosch [Thu, 18 Oct 2018 13:11:55 +0000 (15:11 +0200)] 
lib-master: Create local .gitignore file for potential test output junk.

6 years agofts: Fix search query generation when one language ignores a token
Timo Sirainen [Thu, 18 Oct 2018 09:35:22 +0000 (12:35 +0300)] 
fts: Fix search query generation when one language ignores a token

The search query was changed to "NOT ALL", even though other languages
used the token.

6 years agolib-smtp: client: Fix potential segfault occurring after receiving RCPT reply.
Stephan Bosch [Sun, 26 Aug 2018 13:16:17 +0000 (15:16 +0200)] 
lib-smtp: client: Fix potential segfault occurring after receiving RCPT reply.

Could occur when RCPT reply is received befor DATA command is sent in LMTP session.

Problem found by Coverity.

6 years agolib-smtp: test-smtp-client-errors: Add tests for transaction timeouts.
Stephan Bosch [Wed, 15 Aug 2018 20:34:19 +0000 (22:34 +0200)] 
lib-smtp: test-smtp-client-errors: Add tests for transaction timeouts.

6 years agolib-smtp: client: Add debug message for the moment when all RCPT replies are received.
Stephan Bosch [Wed, 15 Aug 2018 22:50:12 +0000 (00:50 +0200)] 
lib-smtp: client: Add debug message for the moment when all RCPT replies are received.

This helps in debugging transaction state transition problems.

6 years agolib-smtp: client: Fix transaction state transition for the DATA command.
Stephan Bosch [Wed, 15 Aug 2018 22:42:50 +0000 (00:42 +0200)] 
lib-smtp: client: Fix transaction state transition for the DATA command.

It progressed to the DATA state too early. By the looks of things, this only
affected the correctness of error and debug messages. It does not affect the
transaction itself.

6 years agolib-smtp: client: Fix segmentation fault occurring at transaction timeout.
Stephan Bosch [Wed, 15 Aug 2018 22:28:51 +0000 (00:28 +0200)] 
lib-smtp: client: Fix segmentation fault occurring at transaction timeout.

In the DATA command callback trans->cmd_data can be NULL when the command is
aborted from smtp_client_transaction_fail_reply().

6 years agolib-smtp: client: transaction: Prevent early transaction abort in smtp_client_transac...
Stephan Bosch [Wed, 15 Aug 2018 20:39:58 +0000 (22:39 +0200)] 
lib-smtp: client: transaction: Prevent early transaction abort in smtp_client_transaction_fail_reply().

Can happen in one of the command callbacks of aborted commands.

6 years agolib-smtp: Remove trailing whitespace in smtp-cient-transaction.c.
Stephan Bosch [Thu, 16 Aug 2018 06:48:43 +0000 (08:48 +0200)] 
lib-smtp: Remove trailing whitespace in smtp-cient-transaction.c.

6 years agolib-smtp: Remove trailing whitespace in test-smtp-client-errors.c.
Stephan Bosch [Thu, 16 Aug 2018 06:47:37 +0000 (08:47 +0200)] 
lib-smtp: Remove trailing whitespace in test-smtp-client-errors.c.

6 years agolib-smtp: Read input before exiting in sendmail-exit-1.sh
Martti Rannanjärvi [Mon, 13 Aug 2018 08:25:04 +0000 (11:25 +0300)] 
lib-smtp: Read input before exiting in sendmail-exit-1.sh

This avoids a Broken pipe error that fails the unit test this script
belongs to.

6 years agolib-smtp: Include test-bin in dist
Aki Tuomi [Thu, 9 Aug 2018 06:21:09 +0000 (09:21 +0300)] 
lib-smtp: Include test-bin in dist

6 years agolib-test: Warn if test_run or test_run_named result is not used
Aki Tuomi [Thu, 9 Aug 2018 09:38:43 +0000 (12:38 +0300)] 
lib-test: Warn if test_run or test_run_named result is not used

Ensures hopefully that unit tests do not succeed when they fail
due to wrong exit code.

6 years agoglobal: Ensure unit tests return value
Aki Tuomi [Thu, 9 Aug 2018 09:44:22 +0000 (12:44 +0300)] 
global: Ensure unit tests return value

6 years agolib-auth: Fix reconnect timeout leak at deinit
Timo Sirainen [Fri, 6 Jul 2018 08:22:46 +0000 (11:22 +0300)] 
lib-auth: Fix reconnect timeout leak at deinit

6 years agolib-http: client: Notify host object about submission of request before submitting...
Stephan Bosch [Fri, 6 Jul 2018 13:07:32 +0000 (15:07 +0200)] 
lib-http: client: Notify host object about submission of request before submitting the request to the queue.

This makes sure the host idle timeout is stopped before the request is submitted
and the host object's refresh function is called. If the idle timeout is still
running at that point, the refresh function will return success without
performing a lookup, which can lead to a panic.

Panic was:

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

6 years agolib-http: client: Reset ips count to zero before DNS lookup.
Stephan Bosch [Mon, 2 Jul 2018 21:59:50 +0000 (23:59 +0200)] 
lib-http: client: Reset ips count to zero before DNS lookup.

6 years agolib: mempool - Remove unnecessary check
Josef 'Jeff' Sipek [Thu, 5 Jul 2018 14:50:32 +0000 (10:50 -0400)] 
lib: mempool - Remove unnecessary check

The previous commit guarantees that we always have one of _ILP32 and _LP64
defined so we don't have to check ourselves.

6 years agolib: Make sure exactly one of _ILP32 and _LP64 is defined at all times
Josef 'Jeff' Sipek [Thu, 5 Jul 2018 14:48:49 +0000 (10:48 -0400)] 
lib: Make sure exactly one of _ILP32 and _LP64 is defined at all times

These defines are very common, but not universal.  For example, clang on
illumos and FreeBSD always defines one of them, while 32-bit Ubuntu 16.04
doesn't define either.

6 years agolib: mempool - Improve p_realloc() panic message
Josef 'Jeff' Sipek [Thu, 21 Jun 2018 13:45:03 +0000 (09:45 -0400)] 
lib: mempool - Improve p_realloc() panic message

Most importantly, this differentiates it from the panic message that
p_malloc() prints.

6 years agolib: mempool - Centralize p_free() NULL pointer check
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 16:24:34 +0000 (12:24 -0400)] 
lib: mempool - Centralize p_free() NULL pointer check

This changes the behavior of p_free(pool, some_null_pointer) slightly.

datastack mempools:

    Previously, the datastack frame id was checked regardless of whether or
    not the pointer was NULL.  Now, only non-NULL pointers perform this
    check.

system mempools:

    Previously, the process would SIGSEGV if a NULL pointer was freed in a
    debug binary on a system with malloc_usable_size().  Now, no SIGSEGV
    occurs.

allocfree, alloconly, and unsafe datastack:

    No change in behavior.

6 years agolib: mempool - Centralize p_realloc() NULL pointer check
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 15:47:26 +0000 (11:47 -0400)] 
lib: mempool - Centralize p_realloc() NULL pointer check

Instead of each mempool implementation having to check the pointer passed in
for being NULL, we can check that the sizes are within the required bounds
in p_realloc().

6 years agolib: mempool - Centralize p_{m,re}alloc() size checks
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 15:42:28 +0000 (11:42 -0400)] 
lib: mempool - Centralize p_{m,re}alloc() size checks

Instead of each mempool implementation having to check the allocation sizes
for sanity, we can check that the sizes are within the required bounds in
p_malloc() and p_realloc().

Since p_malloc() and p_realloc() are static inlines, some consumers will see
a little bit of growth in binary size, but others will be able to optimize
the check away at compile time.

6 years agolib: mempool - Define a global max allocation size supported by all pools
Josef 'Jeff' Sipek [Fri, 22 Jun 2018 20:51:40 +0000 (16:51 -0400)] 
lib: mempool - Define a global max allocation size supported by all pools

Instead of relying on each mempool implementation to define its own limits
and checks, this commit defines a generic one that's sufficient to make any
mempool present or future happy.

6 years agolib: mempool-allocfree: Remove unused #define
Josef 'Jeff' Sipek [Fri, 22 Jun 2018 21:28:24 +0000 (17:28 -0400)] 
lib: mempool-allocfree: Remove unused #define

This define was never actually used.

6 years agolib: mempool-datastack - Use container_of instead of casts
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 15:18:32 +0000 (11:18 -0400)] 
lib: mempool-datastack - Use container_of instead of casts

6 years agolib: mempool-alloconly - Use container_of instead of casts
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 15:18:13 +0000 (11:18 -0400)] 
lib: mempool-alloconly - Use container_of instead of casts

6 years agolib: Rename a alloconly mempool helper function to make its scope obvious
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 14:35:15 +0000 (10:35 -0400)] 
lib: Rename a alloconly mempool helper function to make its scope obvious

pool_try_grow() makes it look like it is part of the mempool API, even
though it is an internal helper specific to the alloconly pool.

6 years agolib: Document the unsafe datastack mempool
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 14:55:53 +0000 (10:55 -0400)] 
lib: Document the unsafe datastack mempool

6 years agolib: Document the system mempool
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 20:08:40 +0000 (16:08 -0400)] 
lib: Document the system mempool

6 years agolib: Document datastack mempools
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 11:50:38 +0000 (07:50 -0400)] 
lib: Document datastack mempools

6 years agolib: Document allocfree mempools
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 19:36:43 +0000 (15:36 -0400)] 
lib: Document allocfree mempools

6 years agolib: Document alloconly mempools
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 18:04:43 +0000 (14:04 -0400)] 
lib: Document alloconly mempools

6 years agolib: mempool - Further reduce test code duplication
Josef 'Jeff' Sipek [Fri, 29 Jun 2018 20:17:40 +0000 (16:17 -0400)] 
lib: mempool - Further reduce test code duplication

We have to use a macro because we need to pass a type as an argument.