]> source.dussan.org Git - nextcloud-server.git/commitdiff
Make sure limit is never negative 17712/head
authorRoeland Jago Douma <roeland@famdouma.nl>
Mon, 28 Oct 2019 12:07:43 +0000 (13:07 +0100)
committerRoeland Jago Douma <roeland@famdouma.nl>
Mon, 28 Oct 2019 12:07:43 +0000 (13:07 +0100)
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>
lib/private/User/Database.php

index 3db96fa02e205a6e9910ebfd2456f5321cb5940b..23dbe8c2334ee8fe538ef2804a432e003cde9059 100644 (file)
@@ -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;
+       }
 }