summary refs log tree commit diff
path: root/synapse/push
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2021-12-10 07:17:28 -0500
committerGitHub <noreply@github.com>2021-12-10 07:17:28 -0500
commit9562f0c2f1bd3489bfbb64fddbbd21ed657b44dd (patch)
tree89c60cececaf4b4c83784f814b840ad61d5e3baa /synapse/push
parentDo not allow cross-room relations, per MSC2674. (#11516) (diff)
downloadsynapse-9562f0c2f1bd3489bfbb64fddbbd21ed657b44dd.tar.xz
Ensure emails are canonicalized before fetching associated user. (#11547)
This should fix pushers with an email in non-canonical form is used as
the pushkey.
Diffstat (limited to 'synapse/push')
-rw-r--r--synapse/push/pusherpool.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/synapse/push/pusherpool.py b/synapse/push/pusherpool.py
index 26735447a6..7912311d24 100644
--- a/synapse/push/pusherpool.py
+++ b/synapse/push/pusherpool.py
@@ -27,6 +27,7 @@ from synapse.push.pusher import PusherFactory
 from synapse.replication.http.push import ReplicationRemovePusherRestServlet
 from synapse.types import JsonDict, RoomStreamToken
 from synapse.util.async_helpers import concurrently_execute
+from synapse.util.threepids import canonicalise_email
 
 if TYPE_CHECKING:
     from synapse.server import HomeServer
@@ -113,7 +114,9 @@ class PusherPool:
         """
 
         if kind == "email":
-            email_owner = await self.store.get_user_id_by_threepid("email", pushkey)
+            email_owner = await self.store.get_user_id_by_threepid(
+                "email", canonicalise_email(pushkey)
+            )
             if email_owner != user_id:
                 raise SynapseError(400, "Email not found", Codes.THREEPID_NOT_FOUND)