From 42223b14940974c43e2537a724ed54651a05058c Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Mon, 28 Nov 2011 00:40:43 +0100 Subject: [PATCH] lib-sieve: editheader: fixed implicit keep after runtime error. It did not use the original message in this case. --- src/lib-sieve/sieve-actions.c | 2 +- tests/extensions/editheader/errors.svtest | 31 +++++++++++++++++++ .../editheader/errors/runtime-error.sieve | 6 ++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/extensions/editheader/errors/runtime-error.sieve diff --git a/src/lib-sieve/sieve-actions.c b/src/lib-sieve/sieve-actions.c index 95e15e7ba..1cfa0f241 100644 --- a/src/lib-sieve/sieve-actions.c +++ b/src/lib-sieve/sieve-actions.c @@ -467,7 +467,7 @@ static bool act_store_execute struct act_store_transaction *trans = (struct act_store_transaction *) tr_context; struct mail *mail = ( action->mail != NULL ? - action->mail : sieve_message_get_mail(aenv->msgctx) ); + action->mail : aenv->msgdata->mail ); struct mail_save_context *save_ctx; struct mail_keywords *keywords = NULL; bool result = TRUE; diff --git a/tests/extensions/editheader/errors.svtest b/tests/extensions/editheader/errors.svtest index 863892ae3..00a144f2e 100644 --- a/tests/extensions/editheader/errors.svtest +++ b/tests/extensions/editheader/errors.svtest @@ -66,3 +66,34 @@ test "Invalid field value" { } } +test_set "message" text: +From: stephan@example.com +To: tss@example.com +Subject: Frop + +Frop! +. +; + +test "Implicit keep at runtime error" { + if not test_script_compile "errors/runtime-error.sieve" { + test_fail "compile failed"; + } + + if not test_script_run { + test_fail "run failed"; + } + + if test_result_execute { + test_fail "result execution should have failed"; + } + + if not test_message :folder "INBOX" 0 { + test_fail "message not stored (no implicit keep)"; + } + + if exists "X-Frop" { + test_fail "implicit keep message has editheader changes"; + } +} + diff --git a/tests/extensions/editheader/errors/runtime-error.sieve b/tests/extensions/editheader/errors/runtime-error.sieve new file mode 100644 index 000000000..b308d74c6 --- /dev/null +++ b/tests/extensions/editheader/errors/runtime-error.sieve @@ -0,0 +1,6 @@ +require "editheader"; +require "fileinto"; + +addheader "X-Frop" "Friep"; + +fileinto "Rediculous.non-existent.folder"; -- GitLab