changeset 17090:f9a11e81209f

lib-storage: Implemented get_metadata() for fail-mailbox. This fixes a crash when a nonexistent mailbox was allocated and accessed (via LAYOUT=index).
author Timo Sirainen <tss@iki.fi>
date Wed, 08 Jan 2014 11:24:36 -0500
parents a0e04a5aadab
children b6ab0e056c0b
files src/lib-storage/fail-mailbox.c
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/fail-mailbox.c	Tue Jan 07 14:33:29 2014 -0500
+++ b/src/lib-storage/fail-mailbox.c	Wed Jan 08 11:24:36 2014 -0500
@@ -88,6 +88,16 @@
 	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 @@
 		fail_mailbox_delete,
 		fail_mailbox_rename,
 		fail_mailbox_get_status,
-		NULL,
+		fail_mailbox_get_metadata,
 		fail_mailbox_set_subscribed,
 		NULL,
 		NULL,