From f4f8d873022d2fb076e99630606c2ff30aaa3ddb Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Mon, 11 May 2015 10:03:02 +0200
Subject: [PATCH] lib-sieve: storage: Fixed segfault problem in main storage
 initialization. Caused by earlier sieve_default_name-related changes.

---
 src/lib-sieve/sieve-storage.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index f3296a8ee..8164e9cd0 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -497,24 +497,23 @@ struct sieve_storage *sieve_storage_create_main
 
 	/* Attempt to locate user's main storage */
 	storage = sieve_storage_do_create_main(svinst, user, flags, error_r);
-
-	set_default_name =
-		 sieve_setting_get(svinst, "sieve_default_name");
-	if ( set_default_name != NULL && *set_default_name != '\0' &&
-		!sieve_script_name_is_valid(set_default_name) ) {
-		sieve_storage_sys_error(storage,
-			"Invalid script name `%s' for `sieve_default_name' setting.",
-			str_sanitize(set_default_name, 80));
-		set_default_name = NULL;
-	}
-	storage->default_name =
-		p_strdup_empty(storage->pool, set_default_name);
-
 	if ( storage != NULL ) {
 		/* Success; record default script location for later use */
 		storage->default_location =
 			p_strdup_empty(storage->pool, set_default);
 
+		set_default_name =
+			 sieve_setting_get(svinst, "sieve_default_name");
+		if ( set_default_name != NULL && *set_default_name != '\0' &&
+			!sieve_script_name_is_valid(set_default_name) ) {
+			sieve_storage_sys_error(storage,
+				"Invalid script name `%s' for `sieve_default_name' setting.",
+				str_sanitize(set_default_name, 80));
+			set_default_name = NULL;
+		}
+		storage->default_name =
+			p_strdup_empty(storage->pool, set_default_name);
+
 		if (storage->default_location != NULL &&
 			storage->default_name != NULL) {
 			sieve_storage_sys_debug(storage,
-- 
GitLab