From 0cabf5f60ce48183f5a335ea055963c5e9a75460 Mon Sep 17 00:00:00 2001 From: vitalyster Date: Mon, 19 Aug 2013 09:13:10 +0000 Subject: [PATCH] IRC Backend: fix crash when joining room on some servers --- backends/libcommuni/session.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 8f37e978..31ac3d54 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -122,13 +122,15 @@ void MyIrcSession::on_disconnected() { bool MyIrcSession::correctNickname(std::string &nickname) { bool flags = 0; - switch(nickname.at(0)) { - case '@': nickname = nickname.substr(1); flags = 1; break; - case '+': nickname = nickname.substr(1); break; - case '~': nickname = nickname.substr(1); break; - case '&': nickname = nickname.substr(1); break; - case '%': nickname = nickname.substr(1); break; - default: break; + if (!nickname.empty()) { + switch(nickname.at(0)) { + case '@': nickname = nickname.substr(1); flags = 1; break; + case '+': nickname = nickname.substr(1); break; + case '~': nickname = nickname.substr(1); break; + case '&': nickname = nickname.substr(1); break; + case '%': nickname = nickname.substr(1); break; + default: break; + } } return flags; }