From 0cabf5f60ce48183f5a335ea055963c5e9a75460 2013-08-19 11:13:10 From: vitalyster Date: 2013-08-19 11:13:10 Subject: [PATCH] IRC Backend: fix crash when joining room on some servers --- diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 8f37e97852c700b681a80bd17e635b5b5a3be307..31ac3d5445342499f5754d34024e081f1e90e324 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; }