summary refs log tree commit diff
path: root/synapse/events
diff options
context:
space:
mode:
authorreivilibre <oliverw@matrix.org>2021-11-01 15:45:56 +0000
committerGitHub <noreply@github.com>2021-11-01 15:45:56 +0000
commit69ab3dddbc1595ee64c428df7a7f3c861a84b5b0 (patch)
treed765576c98cd2620dfbc87d4c6597c4a34ff5262 /synapse/events
parentRemove deprecated delete room admin API (#11213) (diff)
downloadsynapse-69ab3dddbc1595ee64c428df7a7f3c861a84b5b0.tar.xz
Make `check_event_allowed` module API callback not fail open (accept events) when an exception is raised (#11033)
Diffstat (limited to 'synapse/events')
-rw-r--r--synapse/events/third_party_rules.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/synapse/events/third_party_rules.py b/synapse/events/third_party_rules.py

index 8816ef4b76..1bb8ca7145 100644 --- a/synapse/events/third_party_rules.py +++ b/synapse/events/third_party_rules.py
@@ -14,7 +14,7 @@ import logging from typing import TYPE_CHECKING, Any, Awaitable, Callable, List, Optional, Tuple -from synapse.api.errors import SynapseError +from synapse.api.errors import ModuleFailedException, SynapseError from synapse.events import EventBase from synapse.events.snapshot import EventContext from synapse.types import Requester, StateMap @@ -233,9 +233,10 @@ class ThirdPartyEventRules: # This module callback needs a rework so that hacks such as # this one are not necessary. raise e - except Exception as e: - logger.warning("Failed to run module API callback %s: %s", callback, e) - continue + except Exception: + raise ModuleFailedException( + "Failed to run `check_event_allowed` module API callback" + ) # Return if the event shouldn't be allowed or if the module came up with a # replacement dict for the event.