X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=b6879bb4f8cf415952d45137b3d5532a98b15a60;hp=58a230205d605a38d9feed3e4e091cced3f75809;hb=ce4dc5d6d32af97589c15529f67f15218c381488;hpb=7a1eca89ead6eb300c593ace9f14c0eb2f9836b8 diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 58a23020..b6879bb4 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -216,6 +216,12 @@ void IrcServerHandler::handleMode(const QString &prefix, const QList emit displayMsg(Message::Mode, BufferInfo::ChannelBuffer, serverDecode(params[0]), serverDecode(params).join(" "), prefix); IrcChannel *channel = network()->ircChannel(params[0]); + if(!channel) { + // we received mode information for a channel we're not in. that means probably we've just been kicked out or something like that + // anyways: we don't have a place to store the data --> discard the info. + return; + } + QString modes = params[1]; bool add = true; int paramOffset = 2;