On Thu, Sep 25, 2014 at 02:41:56PM +0200, Andy Polyakov wrote:
> >>> >>> in that case it crashes here:
> >>> >>>
> >>> >>>         if (s->msg_callback)
> >>> >>>                 s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE,
> >>> >>> s->init_buf->data, (size_t)s->init_num + 4, s, s->msg_callback_arg);
> >>> >>>
> >>> >>
> >>> >> So is the pointer to the callback wrong, or is the SIGSEGV in the
> >>> >> called function?
> >>> >
> >>> > What happens if you type just 'disass' at debugger prompt. Question is
> >>> > if you see meaningful code at point of failure, at 0x80e130 in
> >>> original
> >>> > example. If you see meaningful instruction with reference to memory,
> >>> > issue even 'info reg'. If you don't see meaningful code, then it's
> >>> > likely that pointer to callback is wrong. In which case 'print $r10'
> >>> > would print address of failure. $r10 is because we already established
> >>> > that it was called with call *%r10.
> >>> >
> >>>
> >>> (gdb) disass
> >>> No function contains program counter for selected frame.
> >>> (gdb) disass 0x000000000080e130
> >>> No function contains specified address.
> >>> (gdb) print $r10
> >>> $1 = 8446256
> >>>
> >>> 8446256 = 0x000000000080e130
> >>>
> >>> so the pointer was wrong in the first place,
> >>> got changed or the function is not there anymore
> >>
> >> I suggest you try 'x/16i 0x80e130' as well, because disass can report "No
> >> function contains specified address." for an address that has no symbol
> >> information, even if it contains code.
> >>
> > (gdb) x/16i 0x80e130
> > => 0x80e130:    loopne 0x80e138
> >    0x80e132:    addl   $0x0,(%rax)
> >    0x80e138:    rclb   0x7e(%rdx)
> >    0x80e13b:    add    %al,(%rax)
> >    0x80e13d:    add    %al,(%rax)
> 
> This is not meaningful code and therefore crash is more likely to be
> caused by corrupted data... Hmmmmm...

cyrus-imapd 2.4.7 at least never sets the msg_callback (if the upstream release 
tarball
is used).

So probably something corrupted the SSL structure.

Running under valgrind or similar might help.

Ciao, Marcus
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to