diff --git a/src/lib-sieve/plugins/regex/mcht-regex.c b/src/lib-sieve/plugins/regex/mcht-regex.c index 7a6b28df0b8693fbd7b82bdc4c509568f6883b37..dd98841c9ae721752ebe5b3c8c52fd6c10b601bd 100644 --- a/src/lib-sieve/plugins/regex/mcht-regex.c +++ b/src/lib-sieve/plugins/regex/mcht-regex.c @@ -368,9 +368,11 @@ void mcht_regex_match_deinit unsigned int count, i; /* Clean up compiled regular expressions */ - rkeys = array_get_modifiable(&ctx->reg_expressions, &count); - for ( i = 0; i < count; i++ ) { - regfree(&rkeys[i].regexp); + if ( array_is_created(&ctx->reg_expressions) ) { + rkeys = array_get_modifiable(&ctx->reg_expressions, &count); + for ( i = 0; i < count; i++ ) { + regfree(&rkeys[i].regexp); + } } }