-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/972/
-----------------------------------------------------------

Review request for Kopete.


Summary
-------

Sometimes Kopete crashes when disconnecting from WLM server. I think I have
found the cause, which seems a race condition in WlmServer::WlmDisconnect:

1    if (mainConnection)
2    {
3        disconnecting = true;
4        QListIterator i(cb.socketList);
5        while (i.hasNext())
6        {
7            a = i.next();
8            QObject::disconnect (a, 0, 0, 0);
9            cb.socketList.removeAll (a);
10        }
11        cb.socketList.clear ();

12        if (mainConnection->connectionState () !=
13            MSN::NotificationServerConnection::NS_DISCONNECTED)
14        {
15            delete mainConnection;
16            mainConnection = NULL;
17        }
18    }

If WlmServer::WlmDisconnect is called twice in a really short time frame
between the if in line 1 and the delete in line 15 some time will passed and
the second run of WlmServer::WlmDisconnect will enter the if and delete
mainConnection object for a second time, which will cause Kopete to crash.


This addresses bug 199580.
    https://bugs.kde.org/show_bug.cgi?id=199580


Diffs
-----

  /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmserver.h 993925 
  /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmserver.cpp 993925 

Diff: http://reviewboard.kde.org/r/972/diff


Testing
-------


Thanks,

Lamarque

_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to