diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-01-18 09:27:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 09:27:57 -0500 |
commit | 4d6b1d3c47387466d34abb98613ca0d240057e24 (patch) | |
tree | 08df969de7124271ab9cc98a6aee9da884f9d907 | |
parent | Bump packaging from 22.0 to 23.0 (#14847) (diff) | |
download | synapse-4d6b1d3c47387466d34abb98613ca0d240057e24.tar.xz |
Properly check for frozendicts in event auth code. (#14864)
Check for for an instance of a mapping instead of a dict. This only affects room version 10 when frozen events are enabled.
-rw-r--r-- | changelog.d/14864.bugfix | 1 | ||||
-rw-r--r-- | synapse/event_auth.py | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/changelog.d/14864.bugfix b/changelog.d/14864.bugfix new file mode 100644 index 0000000000..12c0c74ab3 --- /dev/null +++ b/changelog.d/14864.bugfix @@ -0,0 +1 @@ +Fix a bug introduced in Synapse 1.64.0 when using room version 10 with frozen events enabled. diff --git a/synapse/event_auth.py b/synapse/event_auth.py index d437b7e5d1..c4a7b16413 100644 --- a/synapse/event_auth.py +++ b/synapse/event_auth.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import collections.abc import logging import typing from typing import ( @@ -877,7 +878,7 @@ def _check_power_levels( if not isinstance(v, int): raise SynapseError(400, f"{v!r} must be an integer.") if k in {"events", "notifications", "users"}: - if not isinstance(v, dict) or not all( + if not isinstance(v, collections.abc.Mapping) or not all( isinstance(v, int) for v in v.values() ): raise SynapseError( |