Menu

#81 segfault in Win32BinaryFile::GetAddressByName

v1.0 (example)
open
nobody
None
5
2014-01-17
2014-01-17
No

I have this issue when decompiling a Win32 application:

It seams that dlprocptrs is destroyed.
begause
it->second.c_str() returns NULL leading to a segfault in strcmp()
If I fix that, it segfaults later at it++;

Here my gdb output with a breakpoint just before the segbault happens

Symbol: old_SetDlgItemTextA at 0x4099b0
Symbol: old_ModifyMenuA at 0x4099b4
decoding entry point...
Symbol: �tn at 0x0

Breakpoint 1, Win32BinaryFile::GetAddressByName (this=0x9d7f20,
pName=0x7ffff6753ec3 "main", bNoTypeOK=true)
at /home/dschuermann/workspace/boomerang-code/boomerang/loader/Win32BinaryFile.cpp:963
963 std::cerr << "Symbol: (NULL) at 0x" << std::hex << it->first << "\n";
(gdb) p dlprocptrs
$1 = {_M_t = {
_M_impl = {<std::allocator\<std::_rb_tree_node\<std::pair\<unsigned long="" const,="" std::basic_string\<char,="" std::char_traits\<char="">, std::allocator\<char> > > > >> = {<__gnu_cxx::new_allocator<std::_rb_tree_node\<std::pair\<unsigned long="" const,="" std::basic_string\<char,="" std::char_traits\<char="">, std::allocator\<char> > > > >> = {<no data="" fields="">}, <no data="" fields="">},
_M_key_compare = {<std::binary_function\<unsigned long,="" unsigned="" bool="">> = {<no data="" fields="">}, <no data="" fields="">}, _M_header = {
_M_color = std::_S_red, _M_parent = 0x9a5ac0, _M_left = 0x9de540,
_M_right = 0x9de680}, _M_node_count = 191}}}
(gdb) ^CQuit</no></no></std::binary_function\<unsigned></no></no></char></std::_rb_tree_node\<std::pair\<unsigned></char></std::allocator\<std::_rb_tree_node\<std::pair\<unsigned>

Discussion


Log in to post a comment.

MongoDB Logo MongoDB