From f3f0d2fb5a165423af5382e0f30885c830e7f7f1 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Thu, 19 Sep 2024 03:22:19 +0200
Subject: [PATCH] lib-sieve: sieve-storage - Refactor sieve_storage_init()

---
 src/lib-sieve/sieve-storage.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 42ef4862a..217a03562 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -327,8 +327,6 @@ sieve_storage_init(struct sieve_instance *svinst,
 	struct event *storage_event, *event;
 	int ret;
 
-	i_assert(storage_class->v.init != NULL);
-
 	storage_event = sieve_storage_create_event(svinst, svinst->event);
 	event = sieve_storage_create_driver_event(storage_event,
 						  storage_class->driver_name);
@@ -350,16 +348,18 @@ sieve_storage_init(struct sieve_instance *svinst,
 		return -1;
 	}
 
-	T_BEGIN {
-		ret = sieve_storage_alloc(svinst, event, storage_class,
-					  data, flags, main, &storage);
-		i_assert(ret == 0);
+	ret = sieve_storage_alloc(svinst, event, storage_class,
+				  data, flags, main, &storage);
+	i_assert(ret == 0);
+	i_assert(storage != NULL);
+	i_assert(storage_class->v.init != NULL);
 
-		ret = sieve_storage_data_parse(storage, data,
-					       &location, &options);
-		if (ret < 0)
+	T_BEGIN {
+		if (sieve_storage_data_parse(storage, data,
+					     &location, &options) < 0) {
 			*error_code_r = SIEVE_ERROR_TEMP_FAILURE;
-		else {
+			ret = -1;
+		} else {
 			storage->location = p_strdup(storage->pool, location);
 
 			event_add_str(event, "script_location",
-- 
GitLab