Hi -

This patch (from
http://dovecot.org/pipermail/dovecot/2012-September/068131.html) fixes
a known issue that causes the managesieve daemon to segfault when a
client invokes the CHECKSCRIPT action.

Tested on 3.2rel/amd64: verified that the issue existed, and
that this fixed it.

Cheers, Martin


--- src/lib-sievestorage/sieve-storage-save.c   Sun Apr 22 11:30:28 2012 +0200
+++ src/lib-sievestorage/sieve-storage-save.c   Thu Jul 12 23:57:50 2012 +0200
@@ -318,19 +318,20 @@
 bool sieve_storage_save_will_activate
 (struct sieve_save_context *ctx)
 {
-       const char *scriptname;
-       int ret = 0;
+       bool result = FALSE;
 
-       T_BEGIN {
+       if ( ctx->scriptname != NULL ) T_BEGIN {
+               const char *scriptname;
+               int ret;
+
                ret = sieve_storage_get_active_scriptfile(ctx->storage, 
&scriptname);
-       
                if ( ret > 0 ) {
                        /* Is the requested script active? */
-                       ret = ( strcmp(ctx->scriptname, scriptname) == 0 ? 1 : 
0 );
+                       result = ( strcmp(ctx->scriptname, scriptname) == 0 );
                }
        } T_END;
 
-       return ret;
+       return result;
 }
 
 int sieve_storage_save_commit(struct sieve_save_context **ctx)

Reply via email to