diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c index 9c09c60fd4690c29110e062158ff84e0a721c503..3ca4393c010d28def2b619fa936e43a90a43a26e 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 bdfa1f9dc2c61876a5c0f2c350f15031057677d0..9230ae720ab813fbf26ba5dd36cd87886b5948fa 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);