[Dovecot] Some issues in Dovecot 1.2.5 after upgrade from 1.0.15

Chris Wakelin c.d.wakelin at reading.ac.uk
Thu Oct 1 01:59:06 EEST 2009


Timo Sirainen wrote:
> On Sep 30, 2009, at 6:10 PM, Chris Wakelin wrote:
> 
>>> #0  client_get_extra_disconnect_reason (client=0x635b8) at
>>> client-common.c:206
>>> 206             if (ssl_require_client_cert)
>>> (gdb) bt
>>> #0  client_get_extra_disconnect_reason (client=0x635b8) at
>>> client-common.c:206
>>> #1  0x299b4 in io_loop_run (ioloop=0x635b8) at ioloop.c:330
>>> #2  0x1d314 in main (argc=0, argv=0xffbefb24, envp=0xffbefb2c) at
>>> main.c:487
> 
> This looks broken. There's no way it can crash in there. Also it can't
> go there directly from io_loop_run(). You sure this core was from
> imap-login and not something else?

It turns out to be just before I replaced the first patched imap-login
(with the extra logging patches) with another (with the "C CAPABILITY"
fix in as well). How about (from the older binary):

> #0  0x1b5d4 in client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:209
> 209             return t_strdup_printf("(auth failed, %u attempts)",
> (gdb) bt
> #0  0x1b5d4 in client_get_extra_disconnect_reason (client=0x635b8) at client-common.c:209
> #1  0x299b4 in io_loop_run (ioloop=0x635b8) at ioloop.c:335
> #2  0x1d314 in main (argc=0, argv=0xffbefb24, envp=0xffbefb2c) at main.c:491

(gdb still suggests it's not sure it's the right binary, though).

> 
>>> Sep 30 21:56:04 auth(default): Info:
>>> passwd-file(xxxxxxx,134.225.1.46): No password
>>> Sep 30 21:56:04 imap-login: Error: proxy: Unexpected input: + Ready
>>> for additional command text.: user=<xxxxxxx>, method=PLAIN,
>>> rip=134.225.1.46, lip=134.225.16.6
> 
> This is it! This is what was causing the crashes I knew about. And now I
> also understand it, it's because username or password contained some
> characters that caused Dovecot to send LOGIN command using literals
> instead of quoted strings, which in turn sends that "+" line which
> Dovecot assumed was a reply to AUTHENTICATE command. This fixes it:
> http://hg.dovecot.org/dovecot-1.2/rev/8e8a706d6905

the usernames had nothing unusual, just [a-z0-9]*, but of course the
passwords could have been anything!

They didn't seem to cause a crash though (I've now renamed the core in
case Solaris won't overwrite it with another one).

> 
> Now, if you still get crashes, there's something else broken too.

I've patched it again. Let's see what happens!

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