diff --git a/src/lib-sieve/sieve-generator.c b/src/lib-sieve/sieve-generator.c index 755701510f135df9d1616037f17368b74223bfdf..25c9ee823080afd0230e1bd6ec8a9ce8a988d264 100644 --- a/src/lib-sieve/sieve-generator.c +++ b/src/lib-sieve/sieve-generator.c @@ -427,17 +427,20 @@ bool sieve_generator_run /* Load */ if ( ext->def != NULL && ext->def->generator_load != NULL && - !ext->def->generator_load(ext, &gentr->genenv) ) - return FALSE; + !ext->def->generator_load(ext, &gentr->genenv) ) { + result = FALSE; + } } /* Generate code */ - if ( !sieve_generate_block - (&gentr->genenv, sieve_ast_root(gentr->genenv.ast))) - result = FALSE; - else if ( topmost ) - sieve_binary_activate(*sbin); + if ( result ) { + if ( !sieve_generate_block + (&gentr->genenv, sieve_ast_root(gentr->genenv.ast))) + result = FALSE; + else if ( topmost ) + sieve_binary_activate(*sbin); + } /* Cleanup */