From: Timo Sirainen Date: Sat, 18 Nov 2017 21:10:47 +0000 (+0200) Subject: lib-storage: Make sure mailbox autocreation doesn't get into infinite loop X-Git-Tag: 2.3.0.rc1~426 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3fdbff36858760732e48a6f1040be30e7fb6df80;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Make sure mailbox autocreation doesn't get into infinite loop If mailbox_create() -> mailbox_open() fails with MAIL_ERROR_NOTFOUND, it would have looped back to mailbox_create() and continued this until running out of stack. --- diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index f7dc7745e2..880a16814b 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -1255,7 +1255,7 @@ mailbox_open_full(struct mailbox *box, struct istream *input) } T_END; if (ret < 0 && box->storage->error == MAIL_ERROR_NOTFOUND && - !box->deleting && + !box->deleting && !box->creating && box->input == NULL && mailbox_is_autocreated(box)) T_BEGIN { ret = mailbox_autocreate_and_reopen(box); } T_END;