From a915ee9b151b9cc4ddb1e9b1d3635e0731b9fe68 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Fri, 14 May 2010 11:23:55 +0200
Subject: [PATCH] Fixed potential memory leak in generator.

---
 src/lib-sieve/sieve-generator.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/lib-sieve/sieve-generator.c b/src/lib-sieve/sieve-generator.c
index 755701510..25c9ee823 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 */
 		
-- 
GitLab