From 789f2172629a19a76e2c30646efc31010d24cd8a Mon Sep 17 00:00:00 2001 From: Sebastian Goth Date: Tue, 22 Sep 2009 15:07:52 +0200 Subject: [PATCH] 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. --- src/core/coresession.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; -- 2.20.1