summaryrefslogtreecommitdiff
authorskyhusker <skyhusker>2005-05-31 21:08:33 (UTC)
committer skyhusker <skyhusker>2005-05-31 21:08:33 (UTC)
commitb30f28de8d5fa29001bc73a0a0e56ef653f1269f (patch) (unidiff)
treebd6530f1ba36fb7bf96c1d8c2962446cab416da8
parent89417179ed4d38875dc3edce0f4e184edf13f1f2 (diff)
downloadopie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.zip
opie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.tar.gz
opie-b30f28de8d5fa29001bc73a0a0e56ef653f1269f.tar.bz2
Fix channel name validation. Thanks to hrw for reporting.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircservertab.cpp5
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
@@ -114,15 +114,16 @@ void IRCServerTab::executeCommand(IRCTab *tab, QString line) {
114 //JOIN 114 //JOIN
115 if (command == "JOIN" || command == "J") { 115 if (command == "JOIN" || command == "J") {
116 QString channel; 116 QString channel;
117 stream >> channel; 117 stream >> channel;
118 /* According to RFC 1459 */ 118 /* According to RFC 1459 */
119 if (channel.length() > 0 && channel.length() < 200 && 119 if (channel.length() > 0 && channel.length() < 200 &&
120 channel.find(",") == -1 && channel.find("") == -1) { 120 channel.find(",") == -1 && channel.find('\007') == -1) {
121 121
122 if (!channel.startsWith("#") && !channel.startsWith("&")) { 122 if (!channel.startsWith("#") && !channel.startsWith("&")
123 && !channel.startsWith("+") && !channel.startsWith("!")) {
123 channel = channel.prepend("#"); 124 channel = channel.prepend("#");
124 } 125 }
125 m_session->join(channel); 126 m_session->join(channel);
126 } else { 127 } else {
127 tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>"); 128 tab->appendText("<font color=\"" + m_errorColor + "\">Unknown channel format!</font><br>");
128 } 129 }