author | skyhusker <skyhusker> | 2005-05-31 21:08:33 (UTC) |
---|---|---|
committer | skyhusker <skyhusker> | 2005-05-31 21:08:33 (UTC) |
commit | b30f28de8d5fa29001bc73a0a0e56ef653f1269f (patch) (side-by-side diff) | |
tree | bd6530f1ba36fb7bf96c1d8c2962446cab416da8 | |
parent | 89417179ed4d38875dc3edce0f4e184edf13f1f2 (diff) | |
download | opie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.zip opie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.tar.gz opie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.tar.bz2 |
Fix channel name validation. Thanks to hrw for reporting.
-rw-r--r-- | noncore/net/opieirc/ircservertab.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/noncore/net/opieirc/ircservertab.cpp b/noncore/net/opieirc/ircservertab.cpp index d3c0448..5eb1758 100644 --- a/noncore/net/opieirc/ircservertab.cpp +++ b/noncore/net/opieirc/ircservertab.cpp @@ -104,35 +104,36 @@ void IRCServerTab::settingsChanged() { m_textview->setText("<qt bgcolor=\"" + m_backgroundColor + "\"/>"); m_lines = 0; } void IRCServerTab::executeCommand(IRCTab *tab, QString line) { QTextIStream stream(&line); QString command; stream >> command; command = command.upper().right(command.length()-1); //JOIN if (command == "JOIN" || command == "J") { QString channel; stream >> channel; /* According to RFC 1459 */ if (channel.length() > 0 && channel.length() < 200 && - channel.find(",") == -1 && channel.find("") == -1) { + channel.find(",") == -1 && channel.find('\007') == -1) { - if (!channel.startsWith("#") && !channel.startsWith("&")) { + if (!channel.startsWith("#") && !channel.startsWith("&") + && !channel.startsWith("+") && !channel.startsWith("!")) { channel = channel.prepend("#"); } m_session->join(channel); } else { tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>"); } } //KICK else if (command == "KICK"){ QString nickname; stream >> nickname; if (nickname.length() > 0) { if (line.length() > 7 + nickname.length()) { QString text = line.right(line.length()-nickname.length()-7); IRCPerson person; |