diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 72e8e61514c4e4d0deda937e64e2e80b285d64f6..5ffbc7b954ed3081f3bbc73fd732dbbc0131bbc9 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 5028dcf1f23a47ec87680427fa1742a5b7a7ef1b..1ea6eb65e851231a170ab64ded8b8ce90f41365a 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;