Blob Blame History Raw
diff -Ppru cyrus-imapd-2.4.18.orig/imap/imapd.c cyrus-imapd-2.4.18/imap/imapd.c
--- cyrus-imapd-2.4.18.orig/imap/imapd.c	2015-07-06 05:38:29.000000000 +0200
+++ cyrus-imapd-2.4.18/imap/imapd.c	2015-12-21 18:00:27.551941924 +0100
@@ -6002,7 +6002,11 @@ void cmd_list(char *tag, struct listargs
 
     list_callback_calls = 0;
 
-    if (!listargs->pat->s[0] && !(listargs->cmd & LIST_CMD_LSUB)) {
+    if (!listargs->pat->s[0] && (listargs->cmd == LIST_CMD_LIST)) {
+	/* special case: query top-level hierarchy separator */
+	prot_printf(imapd_out, "* LIST (\\Noselect) \"%c\" \"\"\r\n",
+		    imapd_namespace.hier_sep);
+    } else if (!listargs->pat->s[0] && (listargs->cmd == LIST_CMD_XLIST)) {
 	/* special case: query top-level hierarchy separator */
 	prot_printf(imapd_out, "* LIST (\\Noselect) \"%c\" \"\"\r\n",
 		    imapd_namespace.hier_sep);