diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c index 554a024a5177847219044509faa1f32e77e99733..09a67e95604f6f0fd1e05d1a2f28352198c9f93b 100644 --- a/src/lib-sieve/sieve-validator.c +++ b/src/lib-sieve/sieve-validator.c @@ -573,6 +573,9 @@ bool sieve_validator_extension_loaded int ext_id = SIEVE_EXT_ID(ext); const struct sieve_validator_extension_reg *reg; + if ( ext_id < 0 || ext_id >= (int) array_count(&valdtr->extensions)) + return FALSE; + reg = array_idx(&valdtr->extensions, (unsigned int) ext_id); return ( reg->loaded );