Fix potential core crash
authorSebastian Goth <seezer@roath.org>
Tue, 22 Sep 2009 13:07:52 +0000 (15:07 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 22 Sep 2009 21:15:15 +0000 (23:15 +0200)
Don't crash if a message is still in the coresession messagequeue
while the corresponding network has already been deleted by a user.

src/core/coresession.cpp

index 433abbf..7f2d808 100644 (file)
@@ -251,7 +251,8 @@ void CoreSession::processMessages() {
     BufferInfo bufferInfo = Core::bufferInfo(user(), rawMsg.networkId, rawMsg.bufferType, rawMsg.target);
     Message msg(bufferInfo, rawMsg.type, rawMsg.text, rawMsg.sender, rawMsg.flags);
 
-    networkName = _networks.value(bufferInfo.networkId())->networkName();
+    CoreNetwork *currentNetwork = network(bufferInfo.networkId());
+    networkName = currentNetwork ? currentNetwork->networkName() : QString("");
     // if message is ignored with "HardStrictness" we discard it here
     if(_ignoreListManager.match(msg, networkName) != IgnoreListManager::HardStrictness) {
       Core::storeMessage(msg);
@@ -271,7 +272,8 @@ void CoreSession::processMessages() {
       }
 
       Message msg(bufferInfo, rawMsg.type, rawMsg.text, rawMsg.sender, rawMsg.flags);
-      networkName = _networks.value(bufferInfo.networkId())->networkName();
+      CoreNetwork *currentNetwork = network(bufferInfo.networkId());
+      networkName = currentNetwork ? currentNetwork->networkName() : QString("");
       // if message is ignored with "HardStrictness" we discard it here
       if(_ignoreListManager.match(msg, networkName) == IgnoreListManager::HardStrictness)
         continue;