>>>>> On Thu, 25 Sep 2014 11:24:36 +0200, Michael Menge said: > > Quoting Andy Polyakov <[email protected]>: > > >>> 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. You could also try 'info target' to see if gdb associates that address with anything. __Martin ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [email protected]
