java-topology/defects/element-web/patch/element-web-0001-textforevent-user-set.patch
russell@unturf.com c1f0ce8eda wave16b: element-web/bun CWE-407 patches + unit tests
element-web-0001: TextForEvent.tsx user dedup array → Set (15x, HIGH)
element-web-0002: TextForEvent.tsx pinned filter indexOf → Set.has (13x, MEDIUM)
bun-0001: yarn.zig scoped version two-pass scan → single pass (4x, MEDIUM)

5 tests: 5/5 PASS
2026-03-30 07:37:28 -04:00

17 lines
904 B
Diff

--- a/apps/web/src/TextForEvent.tsx
+++ b/apps/web/src/TextForEvent.tsx
@@ -498,13 +498,9 @@ function textForPowerEvent(event: MatrixEvent, client: MatrixClient): (() => str
const previousUserDefault: number = event.getPrevContent().users_default || 0;
const currentUserDefault: number = event.getContent().users_default || 0;
- // Construct set of userIds
- const users: string[] = [];
- Object.keys(event.getContent().users).forEach((userId) => {
- if (users.indexOf(userId) === -1) users.push(userId);
- });
- Object.keys(event.getPrevContent().users).forEach((userId) => {
- if (users.indexOf(userId) === -1) users.push(userId);
- });
+ // Deduplicate userIds from current and previous content; O(U) via Set
+ const users = Array.from(
+ new Set([...Object.keys(event.getContent().users), ...Object.keys(event.getPrevContent().users)]),
+ );