From 5684baca3ec3ee1b27b48667e039d23ed03b5dcd Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Sat, 12 Oct 2024 03:18:34 +0200 Subject: [PATCH] lib-sieve: plugins: environment: Use int for sieve_ext_environment_require_extension() status result --- .../plugins/environment/sieve-ext-environment.h | 13 +++++-------- .../vnd.dovecot/environment/ext-vnd-environment.c | 6 +++++- src/plugins/imapsieve/ext-imapsieve.c | 9 +++++++-- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/lib-sieve/plugins/environment/sieve-ext-environment.h b/src/lib-sieve/plugins/environment/sieve-ext-environment.h index 765780a30..e4a6ca646 100644 --- a/src/lib-sieve/plugins/environment/sieve-ext-environment.h +++ b/src/lib-sieve/plugins/environment/sieve-ext-environment.h @@ -19,15 +19,12 @@ sieve_ext_environment_get_extension(struct sieve_instance *svinst, ext_r); } -static inline const struct sieve_extension * -sieve_ext_environment_require_extension(struct sieve_instance *svinst) +static inline int +sieve_ext_environment_require_extension(struct sieve_instance *svinst, + const struct sieve_extension **ext_r) { - const struct sieve_extension *ext; - - if (sieve_extension_require(svinst, &environment_extension, TRUE, - &ext) < 0) - return NULL; - return ext; + return sieve_extension_require(svinst, &environment_extension, TRUE, + ext_r); } bool sieve_ext_environment_is_active(const struct sieve_extension *env_ext, diff --git a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c index e974a4f03..76794c196 100644 --- a/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c +++ b/src/lib-sieve/plugins/vnd.dovecot/environment/ext-vnd-environment.c @@ -59,6 +59,7 @@ const struct sieve_extension_def vnd_environment_extension = { static bool ext_vnd_environment_load(const struct sieve_extension *ext, void **context) { + const struct sieve_extension *ext_env; struct ext_vnd_environment_context *extctx; if (*context != NULL) { @@ -66,8 +67,11 @@ ext_vnd_environment_load(const struct sieve_extension *ext, void **context) *context = NULL; } + if (sieve_ext_environment_require_extension(ext->svinst, &ext_env) < 0) + return FALSE; + extctx = i_new(struct ext_vnd_environment_context, 1); - extctx->env_ext = sieve_ext_environment_require_extension(ext->svinst); + extctx->env_ext = ext_env; extctx->var_ext = sieve_ext_variables_get_extension(ext->svinst); *context = extctx; diff --git a/src/plugins/imapsieve/ext-imapsieve.c b/src/plugins/imapsieve/ext-imapsieve.c index 077e7b774..92a3fb7f9 100644 --- a/src/plugins/imapsieve/ext-imapsieve.c +++ b/src/plugins/imapsieve/ext-imapsieve.c @@ -74,6 +74,7 @@ const struct sieve_extension_def vnd_imapsieve_extension = { static bool ext_imapsieve_load(const struct sieve_extension *ext, void **context) { + const struct sieve_extension *ext_environment; struct ext_imapsieve_context *extctx; if (context != NULL) { @@ -81,9 +82,13 @@ ext_imapsieve_load(const struct sieve_extension *ext, void **context) *context = NULL; } + if (sieve_ext_environment_require_extension(ext->svinst, + &ext_environment) < 0) + return FALSE; + extctx = i_new(struct ext_imapsieve_context, 1); - extctx->ext_environment = - sieve_ext_environment_require_extension(ext->svinst); + extctx->ext_environment = ext_environment; + *context = extctx; return TRUE; } -- GitLab