From 3a22de4fb38f71065ae8b12ccd75a9e497bce051 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Sun, 6 Oct 2024 20:04:24 +0200
Subject: [PATCH] lib-sieve: sieve-storage - Make
 sieve_storage_list_deinit(NULL) a no-op

---
 src/lib-sieve/sieve-storage.c                  | 6 +++++-
 src/plugins/doveadm-sieve/doveadm-sieve-sync.c | 3 +--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c
index 72e8e6151..5ffbc7b95 100644
--- a/src/lib-sieve/sieve-storage.c
+++ b/src/lib-sieve/sieve-storage.c
@@ -1025,13 +1025,17 @@ sieve_storage_list_next(struct sieve_storage_list_context *lctx, bool *active_r)
 int sieve_storage_list_deinit(struct sieve_storage_list_context **_lctx)
 {
 	struct sieve_storage_list_context *lctx = *_lctx;
+
+	if (lctx == NULL)
+		return 0;
+	*_lctx = NULL;
+
 	struct sieve_storage *storage = lctx->storage;
 	int ret;
 
 	i_assert(storage->v.list_deinit != NULL);
 	ret = storage->v.list_deinit(lctx);
 
-	*_lctx = NULL;
 	return ret;
 }
 
diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
index 5028dcf1f..1ea6eb65e 100644
--- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
+++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c
@@ -728,8 +728,7 @@ static int sieve_attribute_iter_deinit(struct mailbox_attribute_iter *iter)
 		if (sbox->super.attribute_iter_deinit(siter->super) < 0)
 			ret = -1;
 	}
-	if (siter->sieve_list != NULL)
-		(void)sieve_storage_list_deinit(&siter->sieve_list);
+	(void)sieve_storage_list_deinit(&siter->sieve_list);
 	str_free(&siter->name);
 	i_free(siter);
 	return ret;
-- 
GitLab