From c6bc8e9f8e01648d28925f94bdd5817ef71f2ab0 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@open-xchange.com>
Date: Wed, 21 Feb 2024 03:29:09 +0100
Subject: [PATCH] lib-sieve: sieve - Make sieve_deinit(NULL) a no-op

---
 src/lib-sieve/sieve.c                             | 5 ++++-
 src/plugins/imap-filter-sieve/imap-filter-sieve.c | 3 +--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index 9c09c60fd..3ca4393c0 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -136,6 +136,10 @@ void sieve_deinit(struct sieve_instance **_svinst)
 {
 	struct sieve_instance *svinst = *_svinst;
 
+	if (svinst == NULL)
+		return;
+	*_svinst = NULL;
+
 	sieve_plugins_unload(svinst);
 	sieve_storages_deinit(svinst);
 	sieve_extensions_deinit(svinst);
@@ -144,7 +148,6 @@ void sieve_deinit(struct sieve_instance **_svinst)
 	event_unref(&svinst->event);
 
 	pool_unref(&(svinst)->pool);
-	*_svinst = NULL;
 }
 
 void sieve_set_extensions(struct sieve_instance *svinst, const char *extensions)
diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
index bdfa1f9dc..9230ae720 100644
--- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c
+++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c
@@ -1127,8 +1127,7 @@ static void imap_filter_sieve_user_deinit(struct mail_user *user)
 		sieve_storage_unref(&ifsuser->storage);
 	if (ifsuser->global_storage != NULL)
 		sieve_storage_unref(&ifsuser->global_storage);
-	if (ifsuser->svinst != NULL)
-		sieve_deinit(&ifsuser->svinst);
+	sieve_deinit(&ifsuser->svinst);
 	if (ifsuser->dup_db != NULL)
 		mail_duplicate_db_deinit(&ifsuser->dup_db);
 
-- 
GitLab