summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2019-10-28 13:07:43 +0100
committerBackportbot <backportbot-noreply@rullzer.com>2019-10-28 13:00:28 +0000
commitf3af39ec787277120c8b97cc992130c92dc57e8e (patch)
tree59873e0c20f9caa084e8126f662b3fead9d5aadb
parentc4a2725f2b72cdfaa7dbeab6c358c88783d4d9fd (diff)
downloadnextcloud-server-f3af39ec787277120c8b97cc992130c92dc57e8e.tar.gz
nextcloud-server-f3af39ec787277120c8b97cc992130c92dc57e8e.zip
Make sure limit is never negative
There were some cases where a negative limit could be passed in. Which would happily make the query explode. This is just a quick hack to make sure it never is negative. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r--lib/private/User/Database.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php
index 3db96fa02e2..23dbe8c2334 100644
--- a/lib/private/User/Database.php
+++ b/lib/private/User/Database.php
@@ -259,6 +259,8 @@ class Database extends ABackend
* @return array an array of all displayNames (value) and the corresponding uids (key)
*/
public function getDisplayNames($search = '', $limit = null, $offset = null) {
+ $limit = $this->fixLimit($limit);
+
$this->fixDI();
$query = $this->dbConn->getQueryBuilder();
@@ -380,6 +382,8 @@ class Database extends ABackend
* @return string[] an array of all uids
*/
public function getUsers($search = '', $limit = null, $offset = null) {
+ $limit = $this->fixLimit($limit);
+
$users = $this->getDisplayNames($search, $limit, $offset);
$userIds = array_map(function ($uid) {
return (string)$uid;
@@ -485,5 +489,11 @@ class Database extends ABackend
return $this->cache[$uid]['uid'];
}
+ private function fixLimit($limit) {
+ if (is_int($limit) && $limit >= 0) {
+ return $limit;
+ }
+ return null;
+ }
}