From d90c1978def803390203f0fada3621de8abba0e5 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sat, 4 Jan 2014 01:54:09 +0100 Subject: Fix a bug when receiving a topic change The number of arguments is not always the same --- src/irc/irc_client.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp index 644cfd1..1e8e326 100644 --- a/src/irc/irc_client.cpp +++ b/src/irc/irc_client.cpp @@ -321,9 +321,11 @@ void IrcClient::send_motd(const IrcMessage& message) void IrcClient::on_topic_received(const IrcMessage& message) { - const std::string chan_name = utils::tolower(message.arguments[1]); + if (message.arguments.size() < 2) + return; + const std::string chan_name = utils::tolower(message.arguments[message.arguments.size() - 2]); IrcChannel* channel = this->get_channel(chan_name); - channel->topic = message.arguments[2]; + channel->topic = message.arguments[message.arguments.size() - 1]; if (channel->joined) this->bridge->send_topic(this->hostname, chan_name, channel->topic); } -- cgit v1.2.3