From: Sebastian Goth Date: Tue, 22 Sep 2009 13:07:52 +0000 (+0200) Subject: Fix potential core crash X-Git-Tag: 0.5-rc2~17 X-Git-Url: https://git.quassel-irc.org/?a=commitdiff_plain;h=789f2172629a19a76e2c30646efc31010d24cd8a;p=quassel.git Fix potential core crash Don't crash if a message is still in the coresession messagequeue while the corresponding network has already been deleted by a user. --- diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 433abbff..7f2d808f 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -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;