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>
This commit is contained in:
Roeland Jago Douma 2019-10-28 13:07:43 +01:00 committed by Backportbot
parent c4a2725f2b
commit f3af39ec78

View file

@ -259,6 +259,8 @@ class Database extends ABackend
* @return array an array of all displayNames (value) and the corresponding uids (key) * @return array an array of all displayNames (value) and the corresponding uids (key)
*/ */
public function getDisplayNames($search = '', $limit = null, $offset = null) { public function getDisplayNames($search = '', $limit = null, $offset = null) {
$limit = $this->fixLimit($limit);
$this->fixDI(); $this->fixDI();
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
@ -380,6 +382,8 @@ class Database extends ABackend
* @return string[] an array of all uids * @return string[] an array of all uids
*/ */
public function getUsers($search = '', $limit = null, $offset = null) { public function getUsers($search = '', $limit = null, $offset = null) {
$limit = $this->fixLimit($limit);
$users = $this->getDisplayNames($search, $limit, $offset); $users = $this->getDisplayNames($search, $limit, $offset);
$userIds = array_map(function ($uid) { $userIds = array_map(function ($uid) {
return (string)$uid; return (string)$uid;
@ -485,5 +489,11 @@ class Database extends ABackend
return $this->cache[$uid]['uid']; return $this->cache[$uid]['uid'];
} }
private function fixLimit($limit) {
if (is_int($limit) && $limit >= 0) {
return $limit;
}
return null;
}
} }