[Bug 54478] New: atlantik: SIGSEGV when trade was accepted

[email protected]
Newsgroups gmane.comp.kde.devel.atlantik
Message-ID <[email protected]>
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
     
http://bugs.kde.org/show_bug.cgi?id=54478     
           Summary: atlantik: SIGSEGV when trade was accepted
           Product: atlantik
           Version: unspecified
          Platform: Compiled Sources
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: [email protected]
        ReportedBy: [email protected]


Version:           KDE_3_1_BRANCH from today (using KDE KDE 3.1)
Installed from:    Compiled From Sources
Compiler:          gcc-3.2.2 
OS:          Linux

I was testing KDE_3_1_BRANCH and a player had a debt of 28 to settle. I started a trade and the other player gave 28 and got 3 railroads in return. When both players had accpted the trade, one of the clients caused signal 11 (SIGSEGV):

[New Thread 16384 (LWP 15833)]
0x413ebf29 in __wait4 () at __wait4:-1
	in __wait4
#0  0x413ebf29 in __wait4 () at __wait4:-1
#1  0x4146f218 in __DTOR_END__ () from /lib/libc.so.6
#2  0x411e1633 in waitpid () from /lib/libpthread.so.0
#3  0x4083da2c in KCrash::defaultCrashHandler(int) ()
   from /usr/local/kde-3.1.0/lib/libkdecore.so.4
#4  <signal handler called>
#5  0x0810261a in ?? ()
#6  0x4003c3d5 in TradeDisplay::qt_invoke(int, QUObject*) (this=0x8161fb0, 
    _id=136138176, _o=0xbfffe940) at trade_widget.cpp:226
#7  0x40c6e7d4 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x812fd68, clist=0x811c198, o=0xbfffebb0) at kernel/qobject.cpp:2232
#8  0x40071d78 in Player::changed(Player*) (this=0x812fd68, t0=0xfffffe00)
    at player.moc:95
#9  0x40072394 in Player::update(bool) (this=0x812fd68, force=false)
    at player.cpp:127
#10 0x4005c5e4 in AtlantikNetwork::processNode(QDomNode) (this=0x80faa28, n=
      {_vptr.QDomNode = 0x4107e548, impl = 0x8188080})
    at atlantik_network.cpp:479
#11 0x40053a7e in AtlantikNetwork::qt_invoke(int, QUObject*) (this=0x80faa28, 
    _id=-1073745504, _o=0xbffff190) at atlantik_network.cpp:250
#12 0x40c6e6b1 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x8115d50, clist=0x816acf8, o=0xbffff240) at kernel/qobject.cpp:2212
#13 0x40f6e77d in QSignal::signal(QVariant const&) (this=0x8115d50, 
    t0=@0x8115d78) at .moc/debug-shared-mt/moc_qsignal.cpp:100
#14 0x40c8bb0e in QSignal::activate() (this=0x8115d50)
    at kernel/qsignal.cpp:204
#15 0x40c92bc2 in QSingleShotTimer::event(QEvent*) (this=0x8115d28)
    at kernel/qtimer.cpp:277
#16 0x40c07ee1 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff720, receiver=0x8115d28, e=0xbffff530)
    at kernel/qapplication.cpp:2350
#17 0x40c07510 in QApplication::notify(QObject*, QEvent*) (this=0xbffff720, 
    receiver=0x8115d28, e=0xbffff530) at kernel/qapplication.cpp:2112
#18 0x4079f7ef in KApplication::notify(QObject*, QEvent*) ()
   from /usr/local/kde-3.1.0/lib/libkdecore.so.4
#19 0x40bac2ec in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x8115d28, event=0xbffff530) at kernel/qapplication.h:478
#20 0x40be23fc in QEventLoop::activateTimers() (this=0x80abee8)
    at kernel/qeventloop_unix.cpp:524
#21 0x40bbbf28 in QEventLoop::processEvents(unsigned) (this=0x80abee8, flags=4)
    at kernel/qeventloop_x11.cpp:311
#22 0x40c1e9f9 in QEventLoop::enterLoop() (this=0x80abee8)
    at kernel/qeventloop.cpp:191
#23 0x40c1e912 in QEventLoop::exec() (this=0x80abee8)
    at kernel/qeventloop.cpp:138
#24 0x40c08051 in QApplication::exec() (this=0xbffff720)
    at kernel/qapplication.cpp:2471
#25 0x0805a894 in main (argc=-512, argv=0xfffffe00) at main.cpp:75
#26 0x41350e64 in __libc_start_main () from /lib/libc.so.6


From the source:
void TradeDisplay::playerChanged(Player *player)
{
	m_playerFromCombo->changeItem(player->name(), m_playerFromRevMap[player]);
	m_playerTargetCombo->changeItem(player->name(), m_playerTargetRevMap[player]);

	TradeItem *item = 0;
	for (QMap<KListViewItem *, TradeItem *>::Iterator it=m_componentRevMap.begin() ; it != m_componentRevMap.end() && (item = *it) ; ++it)
		tradeItemChanged(item); //  This is line 226
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.