From 603f214ba9fc27c2e9ee2d8f0385bf53abd0cbca Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Sat, 13 Jul 2024 01:10:24 +0200
Subject: [PATCH] lib-sieve: sieve-storage - Use int for
 sieve_script_sequence_create() status result

---
 src/lib-sieve/sieve-script.c             | 16 ++++++++--------
 src/lib-sieve/sieve-script.h             |  8 ++++----
 src/plugins/lda-sieve/lda-sieve-plugin.c |  4 ++--
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c
index 8b355a963..008bfa647 100644
--- a/src/lib-sieve/sieve-script.c
+++ b/src/lib-sieve/sieve-script.c
@@ -863,15 +863,15 @@ void sieve_script_sequence_init(struct sieve_script_sequence *sseq,
 	sieve_storage_ref(storage);
 }
 
-struct sieve_script_sequence *
-sieve_script_sequence_create(struct sieve_instance *svinst,
-			     const char *location,
-			     enum sieve_error *error_code_r)
+int sieve_script_sequence_create(struct sieve_instance *svinst,
+				 const char *location,
+				 struct sieve_script_sequence **sseq_r,
+				 enum sieve_error *error_code_r)
 {
 	struct sieve_storage *storage;
-	struct sieve_script_sequence *sseq;
 	enum sieve_error error_code;
 
+	*sseq_r = NULL;
 	if (error_code_r != NULL)
 		*error_code_r = SIEVE_ERROR_NONE;
 	else
@@ -879,12 +879,12 @@ sieve_script_sequence_create(struct sieve_instance *svinst,
 
 	if (sieve_storage_create(svinst, location, 0,
 				 &storage, error_code_r) < 0)
-		return NULL;
+		return -1;
 
-	sseq = sieve_storage_get_script_sequence(storage, error_code_r);
+	*sseq_r = sieve_storage_get_script_sequence(storage, error_code_r);
 
 	sieve_storage_unref(&storage);
-	return sseq;
+	return 0;
 }
 
 struct sieve_script *
diff --git a/src/lib-sieve/sieve-script.h b/src/lib-sieve/sieve-script.h
index 952ea1bdc..24d9759ea 100644
--- a/src/lib-sieve/sieve-script.h
+++ b/src/lib-sieve/sieve-script.h
@@ -152,10 +152,10 @@ const char *sieve_script_get_last_error_lcase(struct sieve_script *script);
 
 struct sieve_script_sequence;
 
-struct sieve_script_sequence *
-sieve_script_sequence_create(struct sieve_instance *svinst,
-			     const char *location,
-			     enum sieve_error *error_code_r);
+int sieve_script_sequence_create(struct sieve_instance *svinst,
+				 const char *location,
+				 struct sieve_script_sequence **sseq_r,
+				 enum sieve_error *error_code_r);
 struct sieve_script *
 sieve_script_sequence_next(struct sieve_script_sequence *sseq,
 			   enum sieve_error *error_code_r);
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index 54736a5b8..e369468bc 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -289,8 +289,8 @@ lda_sieve_multiscript_get_scripts(struct sieve_instance *svinst,
 	bool finished = FALSE;
 	int ret = 1;
 
-	sseq = sieve_script_sequence_create(svinst, location, error_code_r);
-	if (sseq == NULL)
+	if (sieve_script_sequence_create(svinst, location,
+					 &sseq, error_code_r) < 0)
 		return (*error_code_r == SIEVE_ERROR_NOT_FOUND ? 0 : -1);
 
 	while (ret > 0 && !finished) {
-- 
GitLab