From ca5e55cb64e67043023d121ca72294bbcae3a0eb Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 3 Jul 2010 17:04:06 +0200 Subject: [PATCH] ManageSieve: check for DUMP_CAPABILITY=1 before executing dump capability to prevent infinite recursion. --- src/managesieve-login/managesieve-login-settings-plugin.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/managesieve-login/managesieve-login-settings-plugin.c b/src/managesieve-login/managesieve-login-settings-plugin.c index 8cff0d78c..9cf84e2e0 100644 --- a/src/managesieve-login/managesieve-login-settings-plugin.c +++ b/src/managesieve-login/managesieve-login-settings-plugin.c @@ -15,6 +15,7 @@ #include <unistd.h> #include <sys/wait.h> #include <sysexits.h> +#include <stdlib.h> typedef enum { CAP_SIEVE, CAP_NOTIFY } capability_type_t; @@ -105,6 +106,9 @@ static bool capability_dump(void) unsigned int pos; pid_t pid; + if ( getenv("DUMP_CAPABILITY") != NULL ) + return TRUE; + if ( pipe(fd) < 0 ) { i_error("managesieve-login: dump-capability pipe() failed: %m"); return FALSE; @@ -196,11 +200,9 @@ static void managesieve_login_config_parser_begin(struct config_parser_context * } } -/* Currently fails and makes doveconf go berserk - if ( capability_sieve != NULL ) managesieve_login_config_set(ctx, "managesieve_sieve_capability", capability_sieve); if ( capability_notify != NULL ) - managesieve_login_config_set(ctx, "managesieve_notify_capability", capability_notify);*/ + managesieve_login_config_set(ctx, "managesieve_notify_capability", capability_notify); } -- GitLab