diff options
author | reivilibre <oliverw@matrix.org> | 2022-12-07 11:19:43 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-07 11:19:43 +0000 |
commit | cf1059d045640485a5a0b1e3d945b796b0e6f228 (patch) | |
tree | e0e408463d49bcc58865127b354aa826c2a701e6 /synapse | |
parent | Faster remote room joins: unblock tasks waiting for full room state when the ... (diff) | |
download | synapse-cf1059d045640485a5a0b1e3d945b796b0e6f228.tar.xz |
Fix a long-standing bug where the user directory would return 1 more row than requested. (#14631)
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/rest/client/user_directory.py | 4 | ||||
-rw-r--r-- | synapse/storage/databases/main/user_directory.py | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/synapse/rest/client/user_directory.py b/synapse/rest/client/user_directory.py index 116c982ce6..4670fad608 100644 --- a/synapse/rest/client/user_directory.py +++ b/synapse/rest/client/user_directory.py @@ -63,8 +63,8 @@ class UserDirectorySearchRestServlet(RestServlet): body = parse_json_object_from_request(request) - limit = body.get("limit", 10) - limit = min(limit, 50) + limit = int(body.get("limit", 10)) + limit = max(min(limit, 50), 0) try: search_term = body["search_term"] diff --git a/synapse/storage/databases/main/user_directory.py b/synapse/storage/databases/main/user_directory.py index 044435deab..af9952f513 100644 --- a/synapse/storage/databases/main/user_directory.py +++ b/synapse/storage/databases/main/user_directory.py @@ -886,7 +886,7 @@ class UserDirectoryStore(UserDirectoryBackgroundUpdateStore): limited = len(results) > limit - return {"limited": limited, "results": results} + return {"limited": limited, "results": results[0:limit]} def _parse_query_sqlite(search_term: str) -> str: |