Ticket #704 (closed defect: Accepted)

Opened 4 years ago

Last modified 39 years ago

MSN: crash when receiving multipart chat

Reported by: wwp Owned by: emostar
Priority: highest Milestone:
Component: msn Version: devel
Keywords: Cc:

Description

Hi,

using CVS 2005-03-10 (ICQ, MSN, qt-gui), licq crashed apparently after I received some messages from 3 people coming up in a chat session. Since I was away, I cannot exactly tell when licq did crash, but when I re-started it, I had pending messages from 3 MSN contacts who did initiate a chat (2 w/ MSN, 1 w/ aMSN).

Here is the bt and bt full:

Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 7176 (LWP 2906)] CMSN::RemovePacket? (this=0xa2e2901, _strUser=

{_M_dataplus = {<std::allocator<char>> = {<No

data fields>}, _M_p = 0x822290c "msnuser1@…"}}, _nSock=170797313)

at /usr/include/g++/bits/basic_string.h:237

237 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } #0 CMSN::RemovePacket? (this=0xa2e2901, _strUser=

{_M_dataplus = {<std::allocator<char>> = {<No

data fields>}, _M_p = 0x822290c "msnuser1@…"}}, _nSock=170797313)

at /usr/include/g++/bits/basic_string.h:237

#1 0x415ab294 in CMSN::Run (this=0x8205c00) at msn.cpp:367 #2 0x415aa024 in LProto_Main (_pDaemon=0x8191990) at plugin.cpp:53 #3 0x415a9f5c in LProto_Main_tep (p=0x8191990)

at /opt/licq/include/licq/licq_protoplugin.h:40

#4 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 #5 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 #6 0x4034ea1a in thread_start () from /lib/libc.so.6

Thread 10 (Thread 8201 (LWP 2907)): #0 0x4034881e in select () from /lib/libc.so.6 No symbol table info available. #1 0x415b164a in MSNPing_tep (p=0x415b877c) at msn-srv.cpp:614

tv = {tv_sec = 23, tv_usec = 510000}

#2 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #3 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #4 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 9 (Thread 7176 (LWP 2906)): #0 CMSN::RemovePacket? (this=0xa2e2901, _strUser=

{_M_dataplus = {<std::allocator<char>> = {<No

data fields>}, _M_p = 0x822290c "msnuser1@…"}}, _nSock=170797313)

at /usr/include/g++/bits/basic_string.h:237

it = {<std::_List_iterator_base> = {

_M_node = 0x8206a48}, <No data fields>}

#1 0x415ab294 in CMSN::Run (this=0x8205c00) at msn.cpp:367

packet = {<CBuffer> = {

m_pDataStart = 0x41600440 "MSG msnuser1@…

Rajendra 149 MIME-Version: 1.0 Content-Type: application/x-msnmsgrp2p P2P-Dest: msnuser2@…

", m_pDataPosWrite = 0x416004fe "",

m_pDataPosRead = 0x41600440 "MSG

msnuser1@… Rajendra 149 MIME-Version: 1.0 Content-Type: application/x-msnmsgrp2p P2P-Dest: msnuser2@…

", m_nDataSize = 190, m_pTLV = 0x0},

_vptr.CMSNBuffer = 0x415b8038, m_lHeader = {<std::_List_base<SHeader*,

std::allocator<SHeader*> >> = {<std::_List_alloc_base<SHeader*, std::allocator<SHeader*>, true>> = {

_M_node = 0x845ba38}, <No data fields>}, <No

data fields>}}

szUser = 0x41600508 "msnuser1@…" bProcess = true strUser = {_M_dataplus = {<std::allocator<char>> =

{<No data fields>},

_M_p = 0x822290c "msnuser1@…"}}

pBuf = (SBuffer *) 0x41600528 sock = (class TCPSocket *) 0x85fcd00 nNumDesc = 27 nCurrent = 26 f = {fds_bits = {67108864, 0 <repeats 31 times>}} nResult = 1

#2 0x415aa024 in LProto_Main (_pDaemon=0x8191990) at plugin.cpp:53

nPipe = 22

#3 0x415a9f5c in LProto_Main_tep (p=0x8191990)

at /opt/licq/include/licq/licq_protoplugin.h:40

No locals. #4 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #5 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #6 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 6 (Thread 4101 (LWP 2902)): #0 0x4034881e in select () from /lib/libc.so.6 No symbol table info available. #1 0x406f616c in QEventLoop::processEvents ()

from /opt/qt-x11-commercial-3.3.3/lib/libqt-mt.so.3

No symbol table info available. #2 0x4075551b in QEventLoop::enterLoop ()

from /opt/qt-x11-commercial-3.3.3/lib/libqt-mt.so.3

No symbol table info available. #3 0x407553c4 in QEventLoop::exec ()

from /opt/qt-x11-commercial-3.3.3/lib/libqt-mt.so.3

No symbol table info available. #4 0x40744060 in QApplication::exec ()

from /opt/qt-x11-commercial-3.3.3/lib/libqt-mt.so.3

No symbol table info available. #5 0x40456a2b in CLicqGui::Run (this=0x81930c0, _licqDaemon=0x8191990)

at licqgui.cpp:396

nPipe = 135950176 r = 136134016

#6 0x40455329 in LP_Main (_licqDaemon=0x8191990) at licqgui.cpp:174

nResult = 135868608

#7 0x4045506c in LP_Main_tep (p=0x8191990)

at /opt/licq/include/licq/licq_plugin.h:119

No locals. #8 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #9 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #10 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 5 (Thread 3076 (LWP 2901)): #0 0x4034881e in select () from /lib/libc.so.6 No symbol table info available. #1 0x080bc697 in UpdateUsers?_tep (p=0x8191990) at icqd-threads.cpp:1009

_i_ = {<std::_List_iterator_base> = {

_M_node = 0x8159058}, <No data fields>}

pUser = (class ICQUser *) 0x815636c _ul_ = (std::list<ICQUser*, std::allocator<ICQUser*> >

*) 0x8156fe0

tv = {tv_sec = 16, tv_usec = 900000}

#2 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #3 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #4 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 4 (Thread 2051 (LWP 2900)): #0 0x4034881e in select () from /lib/libc.so.6 No symbol table info available. #1 0x080bbc78 in Ping_tep (p=0x815636c) at icqd-threads.cpp:646

tv = {tv_sec = 18, tv_usec = 620000}

#2 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #3 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #4 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 3 (Thread 1026 (LWP 2899)): #0 0x4034881e in select () from /lib/libc.so.6 No symbol table info available. #1 0x080bbdd0 in MonitorSockets?_tep (p=0x8191990) at icqd-threads.cpp:690

f = {fds_bits = {16803840, 0 <repeats 31 times>}} nSocketsAvailable = 0 nCurrentSocket = 25 l = 25 buf = "S", '' <repeats 387 times>, "®h26@", ''

<repeats 20 times>, "üú177¿äú177¿Ø­*@ ", '' <repeats 11 times>, "+000000+000000üú177¿p0027@äú177¿Üú?177¿üú177¿Ð¿9@000000üÿÿÿ010000000000000031¯*@#0000002202 00Üú177¿+000000`ø177¿ïþûÿ0000000017703ÿÿ00@ÿÿÿÿÿÿ06,16@#00É01220ë23@+", '' <repeats 70 times>, "20004@0000000000000020004@00@00001770300@0000É0106,16@#000000220ë23@"... #2 0x401641b0 in pthread_start_thread () from /lib/libpthread.so.0 No symbol table info available. #3 0x4016422f in pthread_start_thread_event () from /lib/libpthread.so.0 No symbol table info available. #4 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 2 (Thread 2049 (LWP 2898)): #0 0x40346d5b in poll () from /lib/libc.so.6 No symbol table info available. #1 0x40163ec8 in pthread_manager () from /lib/libpthread.so.0 No symbol table info available. #2 0x401640bd in pthread_manager_event () from /lib/libpthread.so.0 No symbol table info available. #3 0x4034ea1a in thread_start () from /lib/libc.so.6 No symbol table info available.

Thread 1 (Thread 1024 (LWP 2894)): #0 0x402aaf19 in sigsuspend () from /lib/libc.so.6 No symbol table info available. #1 0x40166d38 in pthread_wait_for_restart_signal ()

from /lib/libpthread.so.0

No symbol table info available. #2 0x4016314b in pthread_cond_wait () from /lib/libpthread.so.0 No symbol table info available. #3 0x08074654 in CLicq::Main (this=0xbffff1f0) at licq.cpp:1003

bUIPlugin = true iter = {<std::_List_iterator_base> = {

_M_node = 0x815a510}, <No data fields>}

p_iter = {<std::_List_iterator_base> = {

_M_node = 0x815a520}, <No data fields>}

nExitId = 2053 nPluginResult = (int *) 0xbffff0c0 bDaemonShutdown = false t = (pthread_t *) 0xfffffffc sz = "°00@200300@ 401@

ñÿ¿000000002321305Àðÿ¿Î21400@Cÿ(00P01000000000000Î21426@", '' <repeats 12 times>, "N22026@/opt/licq/share/licq/utilities00@20000000dC%@30ñÿ¿À*27@204Ê#@dC%@30ñÿ¿T26@224Ê#@@¥2516000000xå$@xå$@@¥25Xñÿ¿ã210 @204Ê#@à2029@Xñÿ¿ ï.@ð2069@ðñÿ¿xñÿ¿lc25(³25à2029@x³"... #4 0x080759c9 in main (argc=6, argv=0xbffff2b4) at main.cpp:58

licq = {licqDaemon = 0x8191990, m_nNextId = 3,

list_plugins = {<std::_List_base<CPlugin*,

std::allocator<CPlugin*> >> = {<std::_List_alloc_base<CPlugin*, std::allocator<CPlugin*>, true>> = {

_M_node = 0x815a510}, <No data fields>}, <No

data fields>},

mutex_plugins = {m_reserved = 134697565, m_count

0, m_owner

0x0,

m_kind = 0, m_lock = {status = 0, spinlock

= 0}},

list_protoplugins = {<std::_List_base<CProtoPlugin*,

std::allocator<CProtoPlugin*> >> = {<std::_List_alloc_base<CProtoPlugin*, std::allocator<CProtoPlugin*>, true>> = {_M_node = 0x815a520}, <No data fields>}, <No data fields>},

mutex_protoplugins = {m_reserved = -1073745352,

m_count = 0,

m_owner = 0x0, m_kind = 0, m_lock = {status

0, spinlock

0}},

m_bDeletePID = true}

237 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }

Change History

Changed 3 years ago by emostar

  • status changed from assigned to closed

Logged In: YES user_id=21415

This got fixed when I changed the code to add new users in the multi-user chat to the Not In List. Otherwise, we have no ICQUser pointer and strange shit will happen!

Changed 3 years ago by emostar

Logged In: YES user_id=21415

This is fixed in the latest CVS version of Licq. It will be included in the next release, or you may use the CVS version. Read http://www.licq.org/daily.php

Note: See TracTickets for help on using tickets.