[Dovecot] Re: worth a few Euros?
Jared
demottjar at yahoo.com
Sun Jan 29 06:42:50 EET 2006
Don't worry about the "warning: exec file is newer than core file." It
only said that becuae I copied the binary to the dir after the core
instead of having to keep typing the path to the real location of the
binary.
Timo Sirainen wrote:
> On 28.1.2006 21:33, "-- --" <demottjar at yahoo.com> wrote:
>
>
>>Yo Timo, did you say that login processes "just don't
>>crash"? Found these while doing load/malformed data
>>tests. Got the kernel patch allow_setid_cores
>>working. Don't have time to check if they're
>>exploitable. Probably time to get a gamma version out
>>for people, eh?
>
>
> Any suggestions how I could reproduce these myself? I have this one simple
> stress test tool myself, but I couldn't get it to cause any crashes.
>
>
>>related. Be sure to check
>>if a pointer is valid and that will get rid of most of
>>these.
>
>
> That won't help. If any of these crashes happen, the memory is already
> corrupted and there's no point in trying to avoid crashing.
>
>
>>Note: I have plenty of sample cores if you need one to
>>fix.
>
>
> Those could be helpful, but I'll also need the exact same binaries that
> produced them.
>
>
>>[root at server dovecot]# gdb ./dovecot-auth -c
>
> ..
>
>>#0 auth_request_unref (_request=0x807b0f0) at
>>auth-request.c:96
>
>
> This happened if client did an "AUTHENTICATE" command and then disconnected.
> Got broken with the large changes I did for beta1 (void pointers are evil).
> Not exploitable, always crashes while trying to dereference 0x1 pointer.
> Fixed in CVS.
>
>
>>[root at server 1]# gdb ./dovecot-auth -c core.30100
>
> ..
>
>>warning: exec file is newer than core file.
>
>
> So this didn't help, as the core file must be used against the same binary
> or everything will just show garbage. But I'd guess it's the same problem as
> above.
>
>
>>[root at server login]# gdb ./imap-login -c core.25116
>
> ..
>
>>#0 i_stream_read (stream=0x0) at istream.c:48
>>48 if (stream->closed)
>>(gdb) bt
>>#0 i_stream_read (stream=0x0) at istream.c:48
>>#1 0x0804ade2 in client_read (client=0x8070410) at
>>client.c:311
>>#2 0x0804ae3c in client_input (context=0x8070410) at
>>client.c:333
>
>
> Hmm. Have to look into this. Looking at the code, it seems that client
> structure was unreferenced too many times, but client_destroy() was never
> called.
>
> The reference counting code in authentication is pretty horrible. Guess I'll
> have to clean it up.
>
>
>>[root at server core]# gdb ./imap -c core.15043
>
> ..
>
>>warning: exec file is newer than core file.
>
>
> Again this problem, so I don't know how much I can rely on this backtrace.
>
>
>>#1 0x42028a73 in abort () from /lib/tls/libc.so.6
>>#2 0x0809f9fc in i_internal_panic_handler
>>(fmt=0x80ac360 "file %s: line %d (%s): assertion
>>failed: (%s)",
>> args=0xbfffdd94 "\0251\v\b?") at failures.c:375
>>#3 0x0809f5cb in i_panic (format=0x80ac360 "file %s:
>>line %d (%s): assertion failed: (%s)") at
>>failures.c:173
>>#4 0x08082277 in mail_cache_transaction_reserve_more
>>(ctx=0x80cb4a0, block_size=332, commit=true)
>> at mail-cache-transaction.c:257
>
>
> There's no assert call in line 257. The closest one is at line 252, but I
> couldn't see how it could happen. I did some cleaning up for that code now,
> but I didn't do any changes for the logic itself.
>
>
>
More information about the dovecot
mailing list