summaryrefslogtreecommitdiff
path: root/community/murmur/0003-fix-long-username-query.patch
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /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.patch42
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();