diff options
author | David Robertson <davidr@element.io> | 2023-01-31 10:33:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-31 10:33:07 +0000 |
commit | 796a4b74823b721c72de07e45718f05e78e1565d (patch) | |
tree | a1146f865020abbf780d02fcbe3d1834157318b7 /synapse/handlers | |
parent | Handle malformed values of `notification.room` in power level events (#14942) (diff) | |
download | synapse-796a4b74823b721c72de07e45718f05e78e1565d.tar.xz |
Prefer `type(x) is int` to `isinstance(x, int)` (#14945)
* Perfer `type(x) is int` to `isinstance(x, int)` This covered all additional instances I could see where `x` was user-controlled. The remaining cases are ``` $ rg -s 'isinstance.*[^_]int' tests/replication/_base.py 576: if isinstance(obj, int): synapse/util/caches/stream_change_cache.py 136: assert isinstance(stream_pos, int) 214: assert isinstance(stream_pos, int) 246: assert isinstance(stream_pos, int) 267: assert isinstance(stream_pos, int) synapse/replication/tcp/external_cache.py 133: if isinstance(result, int): synapse/metrics/__init__.py 100: if isinstance(calls, (int, float)): synapse/handlers/appservice.py 262: assert isinstance(new_token, int) synapse/config/_util.py 62: if isinstance(p, int): ``` which cover metrics, logic related to `jsonschema`, and replication and data streams. AFAICS these are all internal to Synapse * Changelog
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/message.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index 3278a695ed..6290f7f523 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -377,7 +377,7 @@ class MessageHandler: """ expiry_ts = event.content.get(EventContentFields.SELF_DESTRUCT_AFTER) - if not isinstance(expiry_ts, int) or event.is_state(): + if type(expiry_ts) is not int or event.is_state(): return # _schedule_expiry_for_event won't actually schedule anything if there's already |