diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c index 33aa925daf76077d9b4c18963acb63eacd85f4cb..ade6465d9d4213e61cdad2cb7bf917e7ce93d37d 100644 --- a/src/lib-sieve/sieve-script.c +++ b/src/lib-sieve/sieve-script.c @@ -894,11 +894,15 @@ sieve_script_sequence_next(struct sieve_script_sequence *sseq, void sieve_script_sequence_free(struct sieve_script_sequence **_sseq) { struct sieve_script_sequence *sseq = *_sseq; + + if (sseq == NULL) + return; + *_sseq = NULL; + struct sieve_storage *storage = sseq->storage; if (storage->v.script_sequence_destroy != NULL) storage->v.script_sequence_destroy(sseq); sieve_storage_unref(&storage); - *_sseq = NULL; }