[Dovecot] Pine and prefix - LIST command bug?
Chris Wakelin
c.d.wakelin at reading.ac.uk
Wed Mar 30 20:40:24 EEST 2005
On Mon, 28 Mar 2005 12:20:48 +0100 Chris Wakelin
<c.d.wakelin at reading.ac.uk> wrote:
...
> I've just tried it, and the same happens; PC-Pine (this time) is trying
>
> LIST "" ~/mail/
>
> and getting no matches, then when you answer yes to the question "Exit,
> saving changes and creating path?" it tries
>
> CREATE ~/mail/
>
> which presumably fails. It then disconnects with "IMAP connection broken
> (server response)".
>
> It looks like Dovecot is crashing on the "CREATE" command:
>
> dovecot: Mar 28 12:14:59 Error: IMAP(vis99003): file strfuncs.c: line
> 165 (p_strndup): assertion failed: (max_chars != (size_t)-1)
> dovecot: Mar 28 12:14:59 Error: child 28188 (imap) killed with signal 6
>
I've found the problem, I think :-
gdiff -ruN cmd-create.c.orig cmd-create.c
--- cmd-create.c.orig Mon Jan 31 16:37:54 2005
+++ cmd-create.c Wed Mar 30 18:26:56 2005
@@ -20,6 +20,13 @@
return TRUE;
len = strlen(mailbox);
+
+ /* If supplied mailbox is namespace prefix then len=0; exit if so */
+ if (len == 0) {
+ client_send_tagline(client, "OK if it makes you happy.");
+ return TRUE;
+ }
+
if (mailbox[len-1] != mail_storage_get_hierarchy_sep(storage))
directory = FALSE;
else {
In the "len = strlen(mailbox);", len will be 0 if the supplied mailbox
- after "client_find_storage(client, &mailbox)" - was a namespace
prefix. That causes "mailbox = t_strndup(mailbox, len-1)" to fail.
What I don't understand is why CREATE "#maildir/" seems not to crash,
(where "#maildir/" is another namespace prefix) when CREATE "mail/"
does, though!
It makes Pine moderately happy at last. It might still be better to
respond as it expects to the LIST "" ~/mail/ command.
Best Wishes,
Chris
--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
Christopher Wakelin, c.d.wakelin at reading.ac.uk
IT Services Centre, The University of Reading, Tel: +44 (0)118 378 8439
Whiteknights, Reading, RG6 2AF, UK Fax: +44 (0)118 975 3094
More information about the dovecot
mailing list