From fc1200954b3e60ffcada6d6e0ba0a81e6f8d1064 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Sat, 19 Oct 2024 23:54:09 +0200 Subject: [PATCH] plugins: doveadm-sieve: doveadm-sieve-sync - Add error handling for sieve_storage_open_script() --- src/plugins/doveadm-sieve/doveadm-sieve-sync.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c index 4d8cdd5ab..da2b17019 100644 --- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c +++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c @@ -561,9 +561,17 @@ sieve_attribute_get_sieve(struct mail_storage *storage, const char *key, return -1; } ret = sieve_storage_open_script(svstorage, scriptname, &script, NULL); - i_assert(ret == 0); - ret = sieve_attribute_retrieve_script(storage, svstorage, script, FALSE, - value_r, &error); + if (ret < 0) { + enum sieve_error error_code; + + error = sieve_storage_get_last_error(svstorage, &error_code); + if (error_code == SIEVE_ERROR_NOT_FOUND) + ret = 0; + } else { + ret = sieve_attribute_retrieve_script(storage, svstorage, + script, FALSE, + value_r, &error); + } if (ret < 0) { mail_storage_set_critical( storage, "Failed to access sieve script '%s': %s", -- GitLab