From 55fb3d4e8e4570b95bf52dd8708cb0ca2b38f245 Mon Sep 17 00:00:00 2001 From: Aaron Raimist Date: Mon, 28 Jun 2021 22:32:21 -0500 Subject: [PATCH] Also prevent sending unless safe integer Synapse enforces this but I guess it doesn't hurt to also check here Signed-off-by: Aaron Raimist --- src/models/room-state.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/models/room-state.ts b/src/models/room-state.ts index 6b914a1d4..2b67ee79e 100644 --- a/src/models/room-state.ts +++ b/src/models/room-state.ts @@ -670,26 +670,26 @@ export class RoomState extends EventEmitter { powerLevels = powerLevelsEvent.getContent(); eventsLevels = powerLevels.events || {}; - if (Number.isFinite(powerLevels.state_default)) { + if (Number.isSafeInteger(powerLevels.state_default)) { stateDefault = powerLevels.state_default; } else { stateDefault = 50; } const userPowerLevel = powerLevels.users && powerLevels.users[userId]; - if (Number.isFinite(userPowerLevel)) { + if (Number.isSafeInteger(userPowerLevel)) { powerLevel = userPowerLevel; - } else if (Number.isFinite(powerLevels.users_default)) { + } else if (Number.isSafeInteger(powerLevels.users_default)) { powerLevel = powerLevels.users_default; } - if (Number.isFinite(powerLevels.events_default)) { + if (Number.isSafeInteger(powerLevels.events_default)) { eventsDefault = powerLevels.events_default; } } let requiredLevel = state ? stateDefault : eventsDefault; - if (Number.isFinite(eventsLevels[eventType])) { + if (Number.isSafeInteger(eventsLevels[eventType])) { requiredLevel = eventsLevels[eventType]; } return powerLevel >= requiredLevel;