diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2020-01-06 15:22:46 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-06 15:22:46 +0000 |
commit | ba897a75903129a453d4fb853190dd31f7d1193b (patch) | |
tree | 1cf2bd4dc92a5d825373d6e46d4747814715140c /synapse/crypto/event_signing.py | |
parent | Add experimental 'databases' config (#6580) (diff) | |
download | synapse-ba897a75903129a453d4fb853190dd31f7d1193b.tar.xz |
Fix some test failures when frozen_dicts are enabled (#6642)
Fixes #4026
Diffstat (limited to 'synapse/crypto/event_signing.py')
-rw-r--r-- | synapse/crypto/event_signing.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/synapse/crypto/event_signing.py b/synapse/crypto/event_signing.py index ccaa8a9920..e65bd61d97 100644 --- a/synapse/crypto/event_signing.py +++ b/synapse/crypto/event_signing.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. - +import collections.abc import hashlib import logging @@ -40,8 +40,11 @@ def check_event_content_hash(event, hash_algorithm=hashlib.sha256): # some malformed events lack a 'hashes'. Protect against it being missing # or a weird type by basically treating it the same as an unhashed event. hashes = event.get("hashes") - if not isinstance(hashes, dict): - raise SynapseError(400, "Malformed 'hashes'", Codes.UNAUTHORIZED) + # nb it might be a frozendict or a dict + if not isinstance(hashes, collections.abc.Mapping): + raise SynapseError( + 400, "Malformed 'hashes': %s" % (type(hashes),), Codes.UNAUTHORIZED + ) if name not in hashes: raise SynapseError( |