diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/murmur/0003-fix-long-username-query.patch |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/murmur/0003-fix-long-username-query.patch')
-rw-r--r-- | community/murmur/0003-fix-long-username-query.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/community/murmur/0003-fix-long-username-query.patch b/community/murmur/0003-fix-long-username-query.patch new file mode 100644 index 000000000..2fc52f70c --- /dev/null +++ b/community/murmur/0003-fix-long-username-query.patch @@ -0,0 +1,42 @@ +commit 6b33dda344f89e5a039b7d79eb43925040654242 +Author: Benjamin Jemlich <pcgod@users.sourceforge.net> +Date: Tue Jun 29 14:49:14 2010 +0200 + + Don't crash on long usernames + +diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp +index f12867a..de307ea 100644 +--- a/src/murmur/Messages.cpp ++++ b/src/murmur/Messages.cpp +@@ -1231,6 +1231,9 @@ void Server::msgQueryUsers(ServerUser *uSource, MumbleProto::QueryUsers &msg) { + + for (int i=0;i<msg.names_size();++i) { + QString name = u8(msg.names(i)); ++ if (!validateUserName(name)) { ++ continue; ++ } + int id = getUserID(name); + if (id >= 0) { + name = getUserName(id); +diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp +index 11b6906..7e15def 100644 +--- a/src/murmur/ServerDB.cpp ++++ b/src/murmur/ServerDB.cpp +@@ -810,7 +810,7 @@ int Server::authenticate(QString &name, const QString &pw, const QStringList &em + TransactionHolder th; + QSqlQuery &query = *th.qsqQuery; + +- SQLPREP("SELECT `user_id`,`name`,`pw` FROM `%1users` WHERE `server_id` = ? AND `name` like ?"); ++ SQLPREP("SELECT `user_id`,`name`,`pw` FROM `%1users` WHERE `server_id` = ? AND LOWER(`name`) = LOWER(?)"); + query.addBindValue(iServerNum); + query.addBindValue(name); + SQLEXEC(); +@@ -1051,7 +1051,7 @@ int Server::getUserID(const QString &name) { + TransactionHolder th; + + QSqlQuery &query = *th.qsqQuery; +- SQLPREP("SELECT `user_id` FROM `%1users` WHERE `server_id` = ? AND `name` like ?"); ++ SQLPREP("SELECT `user_id` FROM `%1users` WHERE `server_id` = ? AND LOWER(`name`) = LOWER(?)"); + query.addBindValue(iServerNum); + query.addBindValue(name); + SQLEXEC(); |