Remove m.relates_to from events if the client set it to null
It appears as though Python only checks to see if the key exists in a dictionary, not necessarily for a useful value. This means that when clients submit (valid) requests with `m.relates_to: null` and Synapse later reads it, it gets a None reference error on access. This is the easier route than guarding all the places where it could be None.
This commit is contained in:
@@ -201,6 +201,11 @@ class RoomSendEventRestServlet(ClientV1RestServlet):
|
||||
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
|
||||
content = parse_json_object_from_request(request)
|
||||
|
||||
# Pull out the relationship early if the client sent us something
|
||||
# which cannot possibly be processed by us.
|
||||
if content.get("m.relates_to", "not None") is None:
|
||||
del content["m.relates_to"]
|
||||
|
||||
event_dict = {
|
||||
"type": event_type,
|
||||
"content": content,
|
||||
|
||||
Reference in New Issue
Block a user