I'm pretty certain it's not my hardware as the problem occurs on two different machines, desktop and laptop, both debian etch.
I forgot to mention before that the daemon is running on a debian sarge machine, it is CVS20070123 source, but being sarge is built with gcc 3.3.5 rather that 4.x that I have on my desktop. I don't think that should make a difference but I thought I'd better mention in just in case.
Right then, I've got traces and miscellaneous variable info from the OnPacketReceived segfault.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1232890176 (LWP 28532)]
0x0818b566 in CRemoteConnect::OnPacketReceived (this=0x831cc58, packet=0x84abaa8) at RemoteConnect.cpp:159
159 handler->HandlePacket(packet);
(gdb) bt
#0 0x0818b566 in CRemoteConnect::OnPacketReceived (this=0x831cc58, packet=0x84abaa8) at RemoteConnect.cpp:159
#1 0x081857e9 in CECSocket::OnInput (this=0x831cc58) at ECSocket.cpp:342
#2 0x0818f26e in CECMuleSocketHandler::SocketHandler (this=0x82c4c40, event=@0x853abb0) at ECMuleSocket.cpp:58
#3 0xb74f64af in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#4 0xb759923c in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#5 0xb759940e in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#6 0xb75995b6 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#7 0xb7599a9f in wxEvtHandler::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#8 0xb74f676a in wxAppConsole::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#9 0xb77ef16c in wxAppBase::OnIdle () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#10 0xb74f64af in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#11 0xb759923c in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#12 0xb759940e in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#13 0xb75995b6 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#14 0xb77ef412 in wxAppBase::ProcessIdle () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#15 0xb773659e in wxApp::Initialize () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#16 0xb6f779b1 in g_source_is_destroyed () from /usr/lib/libglib-2.0.so.0
#17 0xb6f79731 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0xb6f7c7a6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#19 0xb6f7cb67 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#20 0xb6d85281 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#21 0xb7750454 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#22 0xb77eeb97 in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#23 0xb77eec3f in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#24 0xb753055e in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#25 0xb7530612 in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#26 0x08072a62 in main (argc=Cannot access memory at address 0x0
) at amule-remote-gui.cpp:120
#27 0xb726bea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#28 0x0806ad71 in _start () at ../sysdeps/i386/elf/start.S:119
(gdb)
(gdb) bt full
#0 0x0818b566 in CRemoteConnect::OnPacketReceived (this=0x831cc58, packet=0x84abaa8) at RemoteConnect.cpp:159
handler = (CECPacketHandlerBase *) 0x831ea00
next_packet = (CECPacket *) 0x0
#1 0x081857e9 in CECSocket::OnInput (this=0x831cc58) at ECSocket.cpp:342
reply = {_M_ptr = 0x0}
packet = {_M_ptr = 0x84abaa8}
bytes_rx = 5134
#2 0x0818f26e in CECMuleSocketHandler::SocketHandler (this=0x82c4c40, event=@0x853abb0) at ECMuleSocket.cpp:58
socket = (class CECSocket *) 0x831cc58
#3 0xb74f64af in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
No symbol table info available.
#26 0x08072a62 in main (argc=Cannot access memory at address 0x0
) at amule-remote-gui.cpp:120
No locals.
#27 0xb726bea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#28 0x0806ad71 in _start () at ../sysdeps/i386/elf/start.S:119
---Type to continue, or q to quit---
No locals.
(gdb)
(gdb) p handler
$1 = (CECPacketHandlerBase *) 0x831ea00
(gdb) p *handler
$2 = {_vptr.CECPacketHandlerBase = 0xc1e1b8b9}
(gdb)
(gdb) p this
$3 = (CRemoteConnect * const) 0x831cc58
(gdb) p *this
$4 = { = { = {_vptr.CECSocket = 0x823aa48, static EC_SOCKET_BUFFER_SIZE = 2048, m_use_events = true,
m_output_queue = {<__gnu_norm::deque >> = {<__gnu_norm::_Deque_base >> = {
_M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_map = 0x831cb78,
_M_map_size = 8, _M_start = {_M_cur = 0x831c7d0, _M_first = 0x831c7c0, _M_last = 0x831c9c0, _M_node = 0x831cb84}, _M_finish = {_M_cur = 0x831c7d0,
_M_first = 0x831c7c0, _M_last = 0x831c9c0,
_M_node = 0x831cb84}}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::deque > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 5}, }, },
m_in_ptr = {<__gnu_norm::vector >> = {<__gnu_norm::_Vector_base >> = {
_M_impl = {> = {<__gnu_cxx::new_allocator> = {}, },
_M_start = 0x831cdd8 "", _M_finish = 0x831d5d8 "",
_M_end_of_storage = 0x831d5d8 ""}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::vector > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, }, _M_guaranteed_capacity = 2048},
m_out_ptr = {<__gnu_norm::vector >> = {<__gnu_norm::_Vector_base >> = {_M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x831d5e0 "",
_M_finish = 0x831dde0 "",
_M_end_of_storage = 0x831dde0 ""}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::vector > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, }, _M_guaranteed_capacity = 2048},
m_curr_rx_data = {_M_ptr = 0x8312678}, m_curr_tx_data = {_M_ptr = 0x855e700}, m_rx_flags = 33, m_tx_flags = 34, m_my_flags = 51, m_bytes_needed = 0,
m_in_header = false, m_curr_packet_len = 5134, m_z = {next_in = 0x831f1fe "SizePref=8\nQueueSizePref=10\nServerKeepAliveTimeout=30\n", avail_in = 0,
total_in = 5134, next_out = 0x85bee38 "ýýý", avail_out = 0, total_out = 12793, msg = 0x0, state = 0x0, zalloc = 0xb74a6f60 ,
zfree = 0xb74a6f30 , opaque = 0x0, data_type = 64, adler = 2373122196, reserved = 0}}, <> = {}, },
m_ec_state = CRemoteConnect::EC_OK,
m_req_fifo = {<__gnu_norm::list >> = {<__gnu_norm::_List_base >> = {
_M_impl = { >> = {<__gnu_cxx::new_allocator<__gnu_norm::_List_node >> = {}, }, _M_node = {_M_next = 0x831cda0,
_M_prev = 0x831cda0}}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::list > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, }, },
m_req_count = -1, m_req_fifo_thr = 20, m_notifier = 0x82f1898, m_connectionPassword = { = {static npos = 4294967295,
m_pchData = 0x83f1bfc}, }, m_server_reply = { = {static npos = 4294967295, m_pchData = 0x842ea0c}, },
m_client = { = {static npos = 4294967295, m_pchData = 0x83a4e3c}, }, m_version = { = {static npos = 4294967295,
m_pchData = 0x83de20c}, }}
(gdb)
(gdb) p packet
$5 = (const CECPacket *) 0x84abaa8
(gdb) p *packet
$6 = { = { = {m_error = 0, m_tagData = 0x0, m_state = CECTag::bsFinished, m_tagName = 32, m_dataLen = 0, m_dataType = 0 '\0',
m_dynamic = true, m_tagList = {<__gnu_norm::vector >> = {<__gnu_norm::_Vector_base >> = {
_M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x8599240,
_M_finish = 0x8599ba8,
_M_end_of_storage = 0x8599ba8}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::vector > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 3}, }, _M_guaranteed_capacity = 43},
m_haschildren = true, static s_theNullTag = {m_error = 0, m_tagData = 0x8238da4, m_state = CECTag::bsName, m_tagName = 0, m_dataLen = 0, m_dataType = 0 '\0',
m_dynamic = false, m_tagList = {<__gnu_norm::vector >> = {<__gnu_norm::_Vector_base >> = {
_M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x0, _M_finish = 0x0,
_M_end_of_storage = 0x0}}, }, <__gnu_debug::_Safe_sequence<__gnu_debug_def::vector > >> = {<__gnu_debug::_Safe_sequence_base> = {_M_iterators = 0x0, _M_const_iterators = 0x0, _M_version = 1}, }, _M_guaranteed_capacity = 0}, m_haschildren = false,
static s_theNullTag = , static s_theNullTagData = {0, 0, 0, 0}}, static s_theNullTagData = {0, 0, 0,
0}}, }, m_opCode = 34 '"'}
(gdb)