dovecot-2.0: imap-quota: Don't crash if invalid mailbox name is ...

dovecot at dovecot.org dovecot at dovecot.org
Wed Jul 27 19:46:13 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.0/rev/b383271890fe
changeset: 12869:b383271890fe
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jul 27 19:46:01 2011 +0300
description:
imap-quota: Don't crash if invalid mailbox name is given to GETQUOTAROOT.

diffstat:

 src/plugins/imap-quota/imap-quota-plugin.c |  7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diffs (31 lines):

diff -r e6300c6a5814 -r b383271890fe src/plugins/imap-quota/imap-quota-plugin.c
--- a/src/plugins/imap-quota/imap-quota-plugin.c	Tue Jul 12 09:59:34 2011 +0300
+++ b/src/plugins/imap-quota/imap-quota-plugin.c	Wed Jul 27 19:46:01 2011 +0300
@@ -74,6 +74,7 @@
 	struct mailbox *box;
 	struct quota_root_iter *iter;
         struct quota_root *root;
+	enum mailbox_name_status status;
 	const char *mailbox, *storage_name, *name;
 	string_t *quotaroot_reply, *quota_reply;
 
@@ -81,7 +82,7 @@
 	if (!client_read_string_args(cmd, 1, &mailbox))
 		return FALSE;
 
-	ns = client_find_namespace(cmd, mailbox, &storage_name, NULL);
+	ns = client_find_namespace(cmd, mailbox, &storage_name, &status);
 	if (ns == NULL)
 		return TRUE;
 
@@ -94,6 +95,10 @@
 		client_send_tagline(cmd, "NO Not showing other users' quota.");
 		return TRUE;
 	}
+	if (status == MAILBOX_NAME_INVALID) {
+		client_fail_mailbox_name_status(cmd, mailbox, NULL, status);
+		return TRUE;
+	}
 
 	box = mailbox_alloc(ns->list, storage_name, MAILBOX_FLAG_READONLY |
 			    MAILBOX_FLAG_KEEP_RECENT);


More information about the dovecot-cvs mailing list