From a1c1ca7815c2fa7d9424df53806001a7a76b9948 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Thu, 18 Jun 2020 00:28:02 +0200 Subject: [PATCH] lib-sieve: plugins: editheader: Fix infinite loop occurring when header setting is invalid. --- .../editheader/ext-editheader-common.c | 1 + tests/extensions/editheader/protected.svtest | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/lib-sieve/plugins/editheader/ext-editheader-common.c b/src/lib-sieve/plugins/editheader/ext-editheader-common.c index 50983c78a..89fb180b3 100644 --- a/src/lib-sieve/plugins/editheader/ext-editheader-common.c +++ b/src/lib-sieve/plugins/editheader/ext-editheader-common.c @@ -70,6 +70,7 @@ ext_editheader_config_headers(struct sieve_instance *svinst, "setting %s contains invalid header field name " "`%s' (ignored)", setting, *headers); + headers++; continue; } diff --git a/tests/extensions/editheader/protected.svtest b/tests/extensions/editheader/protected.svtest index 398fc9cb1..148a9c8f3 100644 --- a/tests/extensions/editheader/protected.svtest +++ b/tests/extensions/editheader/protected.svtest @@ -1,7 +1,7 @@ require "vnd.dovecot.testsuite"; require "variables"; - +require "encoded-character"; require "editheader"; set "message" text: @@ -148,3 +148,26 @@ id 3jhl22khhf23f; Mon, 24 Aug 2015 04:11:54 -0600; test_fail "autosubmitted header was not added"; } } + +/* + * TEST - Bad header configuration + */ + +test_config_set "sieve_editheader_protected" "${unicode:1F4A9} delivery-date"; +test_config_reload :extension "editheader"; + +test_set "message" "${message}"; +test "Bad header configuration" { + if not exists "delivery-date" { + test_fail "delivery-date header did not exist in the first place"; + } + + deleteheader "delivery-date"; + + if not exists "delivery-date" { + test_fail "protected delivery-date header was deleted"; + } +} + +test_config_set "sieve_editheader_protected" ""; +test_config_reload :extension "editheader"; -- GitLab