- Oct 28, 2021
-
-
Stephan Bosch authored
lib-sieve: sieve-result - Fix panic occurring upon temp fail after committed keep-equivalent action. The determination of whether a keep-equivalent action was already executed is performed in sieve_result_implicit_keep_execute(), which can also be called from sieve_result_implicit_keep_finalize(). But there, the keep-equivalent status was checked before any call to sieve_result_implicit_keep_execute(), which would thus yield the wrong result. This change also makes the associated debug message more specific (otherwise two identical debug messages are logged) and an assert is added that makes sure the keep-equivalent action is actually finalized when the implicit keep was supposed to be finalized. Panic was: Panic: file sieve-result.c: line 1706 (sieve_result_implicit_keep_finalize): assertion failed: (aexec_keep->state == SIEVE_ACTION_EXECUTION_STATE_EXECUTED)
-
- Oct 27, 2021
-
-
Stephan Bosch authored
-
- Sep 23, 2021
-
-
Stephan Bosch authored
-
- Aug 20, 2021
-
-
Stephan Bosch authored
lib-sieve: sieve-result - Indicate in sieve_result_transaction_finalize() debug message whether actions were committed.
-
Stephan Bosch authored
lib-sieve: sieve-result - Indicate in sieve_result_transaction_execute() debug message whether actions were executed.
-
Stephan Bosch authored
-
Stephan Bosch authored
lib-sieve: sieve-result - Assert that implicit keep is executed in sieve_result_implicit_keep_finalize().
-
Stephan Bosch authored
lib-sieve: sieve-result - Fix resource leak occurring when implicit keep is executed before temporary failure at commit. In the commit phase the implicit keep was never finalized, meaning that it was not rolled back and thus not cleaned up properly. This leads to a memory leak and a mailbox reference leak. This in turn causes an assert crash at the end of delivery when the mail user is destroyed.
-
Stephan Bosch authored
-
Stephan Bosch authored
It will be executed in the commit phase if necessary; don't do it early; it will only be rolled back.
-
Stephan Bosch authored
lib-sieve: sieve-result - Move temp failure status checks into sieve_result_implicit_keep_finalize().
-
Stephan Bosch authored
lib-sieve: sieve-result - Move temp failure status checks into sieve_result_implicit_keep_execute().
-
Stephan Bosch authored
-
Stephan Bosch authored
-
- Aug 10, 2021
-
-
Stephan Bosch authored
lib-sieve: sieve-result - Fix omission of action finalization happening upon result execution failure. This occurred because the code that checks for a deferred keep action in sieve_result_implicit_keep_execute() could end up "finding" an action that wasn't actually a deferred keep. That action was then erroneously promoted to the FINALIZED state, which meant that commit/rollback was never executed.
-
- Jun 04, 2021
-
-
Stephan Bosch authored
This had no real purpose and could cause NULL pointer dereference. Found by Clang scan-build.
-
- May 21, 2021
-
-
Stephan Bosch authored
-
Stephan Bosch authored
-
Stephan Bosch authored
This is currently not used, but prevents mishaps once such code is written.
-
Stephan Bosch authored
-
Stephan Bosch authored
This is not currently used, but the absence of the call could cause memory leaks in the future.
-
Stephan Bosch authored
-
Stephan Bosch authored
Call sieve_action_execution_pre() just before the first action activity and always call sieve_action_execution_post() at the end of each action activity. This makes things clearer and it makes the next commit easier.
-
Stephan Bosch authored
lib-sieve: sieve-result - Remove code duplication between implicit keep and normal action execution.
-
Stephan Bosch authored
-
Stephan Bosch authored
Preparation for next commit.
-
Stephan Bosch authored
-
Stephan Bosch authored
Before, actions were executed and committed in full after each script in a sequence. With this change, actions can still be rolled back until the end of all Sieve script and action execution.
-
Stephan Bosch authored
The committed flag is set when at least one action was committed successfully. The existing executed flag is repurposed to signal successful execution of at least one action. These flags are now also properly managed for the keep action.
-
Stephan Bosch authored
Allows doing the check in the action finalization function.
-
Stephan Bosch authored
-
Stephan Bosch authored
-
Stephan Bosch authored
-
Stephan Bosch authored
It is no longer used.
-
Stephan Bosch authored
-
Stephan Bosch authored
Adds status parameter to sieve_result_execute().
-
Stephan Bosch authored
-
Stephan Bosch authored
-
Stephan Bosch authored
-
Stephan Bosch authored
Makes sure it is consistent for a later commit when action exection is more fragmented.
-