From a23ea5cd315cf208175307dd8b65f9dc28a28ffa Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Thu, 15 Aug 2013 20:15:08 +0200
Subject: [PATCH] lda-sieve plugin: Don't access already freed memory when
 deinitializing. Patch by Timo Sirainen (modified).

---
 src/plugins/lda-sieve/lda-sieve-plugin.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index bf1ea939b..13b1f5fb4 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -935,12 +935,13 @@ static int lda_sieve_deliver_mail
 			ret = -1;
 		else
 			ret = lda_sieve_execute(&srctx, storage_r);
+	
+		for ( i = 0; i < srctx.script_count; i++ )
+			sieve_script_unref(&srctx.scripts[i]);
 	} T_END;
 
 	/* Clean up */
 
-	for ( i = 0; i < srctx.script_count; i++ )
-		sieve_script_unref(&srctx.scripts[i]);
 	if ( srctx.user_ehandler != NULL )
 		sieve_error_handler_unref(&srctx.user_ehandler);
 	sieve_error_handler_unref(&srctx.master_ehandler);
-- 
GitLab