diff options
author | David Robertson <davidr@element.io> | 2023-01-31 10:57:02 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-31 10:57:02 +0000 |
commit | a134e626e43e9c31a4618d4164ba7d6242c0f803 (patch) | |
tree | 186eefe970b8f7d493566ec1066672c48928a590 /synapse/federation | |
parent | Prefer `type(x) is int` to `isinstance(x, int)` (#14945) (diff) | |
download | synapse-a134e626e43e9c31a4618d4164ba7d6242c0f803.tar.xz |
Reject boolean power levels (#14944)
* Better test for bad values in power levels events The previous test only checked that Synapse didn't raise an exception, but didn't check that we had correctly interpreted the value of the dodgy power level. It also conflated two things: bad room notification levels, and bad user levels. There _is_ logic for converting the latter to integers, but we should test it separately. * Check we ignore types that don't convert to int * Handle `None` values in `notifications.room` * Changelog * Also test that bad values are rejected by event auth * Docstring * linter scripttttttttt * Test boolean values in PL content * Reject boolean power levels * Changelog
Diffstat (limited to 'synapse/federation')
-rw-r--r-- | synapse/federation/federation_base.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/synapse/federation/federation_base.py b/synapse/federation/federation_base.py index 6bd4742140..29fae716f5 100644 --- a/synapse/federation/federation_base.py +++ b/synapse/federation/federation_base.py @@ -280,7 +280,7 @@ def event_from_pdu_json(pdu_json: JsonDict, room_version: RoomVersion) -> EventB _strip_unsigned_values(pdu_json) depth = pdu_json["depth"] - if not isinstance(depth, int): + if type(depth) is not int: raise SynapseError(400, "Depth %r not an intger" % (depth,), Codes.BAD_JSON) if depth < 0: |