diff --git a/Makefile.am b/Makefile.am index 3249569efefb6c8f71fa54c88c9c4cdf67fbc99a..1dfb0e6f4146c03e02e0d649b52e79a06ec97907 100644 --- a/Makefile.am +++ b/Makefile.am @@ -196,6 +196,7 @@ $(test_cases): failure_test_cases = \ tests/failures/fuzz1.svtest \ tests/failures/fuzz2.svtest \ + tests/failures/fuzz3.svtest \ tests/failures/mailbox-bad-utf8.svtest $(failure_test_cases): diff --git a/src/testsuite/testsuite-mailstore.c b/src/testsuite/testsuite-mailstore.c index 9c584246a7bdbf3a0bf204abeb67375f9ef3d8fa..7762d5004a28b889dd61c12a58f6b123d2418eb1 100644 --- a/src/testsuite/testsuite-mailstore.c +++ b/src/testsuite/testsuite-mailstore.c @@ -274,11 +274,16 @@ bool testsuite_mailstore_mail_index(const struct sieve_runtime_env *renv, const char *folder, unsigned int index) { struct testsuite_mailstore_mail *tmail; + struct mailbox_status status; tmail = testsuite_mailstore_open(folder); if (tmail == NULL) return FALSE; + mailbox_get_open_status(tmail->box, STATUS_MESSAGES, &status); + if (index >= status.messages) + return FALSE; + mail_set_seq(tmail->mail, index+1); testsuite_message_set_mail(renv, tmail->mail); diff --git a/tests/failures/fuzz3.svtest b/tests/failures/fuzz3.svtest new file mode 100644 index 0000000000000000000000000000000000000000..c1c22dcf59b6e88e8d3e38ce034cf223e9c60448 --- /dev/null +++ b/tests/failures/fuzz3.svtest @@ -0,0 +1,12 @@ +require "vnd.dovecot.testsuite"; +require "fileinto"; +require "mailbox"; + +test"" { + fileinto :create "Folder"; + + if test_result_execute { + } + + test_message :folder "Folder" 2; +}