]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Implemented get_metadata() for fail-mailbox.
authorTimo Sirainen <tss@iki.fi>
Wed, 8 Jan 2014 16:24:36 +0000 (11:24 -0500)
committerTimo Sirainen <tss@iki.fi>
Wed, 8 Jan 2014 16:24:36 +0000 (11:24 -0500)
This fixes a crash when a nonexistent mailbox was allocated and accessed
(via LAYOUT=index).

src/lib-storage/fail-mailbox.c

index fb55ed252695fa9e64f864bd043ceb2392a352da..87382e0e2d6e1272d69b0049f4193fbb41ac1e86 100644 (file)
@@ -88,6 +88,16 @@ static int fail_mailbox_get_status(struct mailbox *box ATTR_UNUSED,
        return -1;
 }
 
+static int
+fail_mailbox_get_metadata(struct mailbox *box,
+                         enum mailbox_metadata_items items ATTR_UNUSED,
+                         struct mailbox_metadata *metadata_r ATTR_UNUSED)
+{
+       mail_storage_set_error(box->storage, MAIL_ERROR_NOTFOUND,
+                              T_MAIL_ERR_MAILBOX_NOT_FOUND(box->vname));
+       return -1;
+}
+
 static int fail_mailbox_set_subscribed(struct mailbox *box,
                                       bool set ATTR_UNUSED)
 {
@@ -257,7 +267,7 @@ struct mailbox fail_mailbox = {
                fail_mailbox_delete,
                fail_mailbox_rename,
                fail_mailbox_get_status,
-               NULL,
+               fail_mailbox_get_metadata,
                fail_mailbox_set_subscribed,
                NULL,
                NULL,