From 16d87a176090d8d65c8d84fc989e968328b73866 Mon Sep 17 00:00:00 2001 From: tomaioo Date: Fri, 3 Jul 2026 11:15:39 -0700 Subject: [PATCH 1/2] fix: 2 improvements across 2 files - Quality: Insecure Random Password Generation - Quality: Potential Infinite Loop with `while(true)` and Mutable State Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com> --- web/src/core/tools/generateRandomPassword.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/web/src/core/tools/generateRandomPassword.ts b/web/src/core/tools/generateRandomPassword.ts index 98b537c52..2acb98ff7 100644 --- a/web/src/core/tools/generateRandomPassword.ts +++ b/web/src/core/tools/generateRandomPassword.ts @@ -1,7 +1,5 @@ export function generateRandomPassword() { - return Array(2) - .fill("") - .map(() => Math.random().toString(36).slice(-10)) - .join("") - .replace(/\./g, ""); -} + const array = new Uint8Array(20); + crypto.getRandomValues(array); + return Array.from(array, byte => (byte % 36).toString(36)).join(""); +} \ No newline at end of file From 74fc78a3fb0dbdc14804b2de38e3877274e65816 Mon Sep 17 00:00:00 2001 From: tomaioo Date: Fri, 3 Jul 2026 11:15:40 -0700 Subject: [PATCH 2/2] fix: 2 improvements across 2 files - Quality: Insecure Random Password Generation - Quality: Potential Infinite Loop with `while(true)` and Mutable State Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com> --- .../removeFormFieldGroupWithNoNodes.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/web/src/core/usecases/launcher/decoupledLogic/computeRootForm/mergeRangeSliders/removeFormFieldGroupWithNoNodes.ts b/web/src/core/usecases/launcher/decoupledLogic/computeRootForm/mergeRangeSliders/removeFormFieldGroupWithNoNodes.ts index d49febd50..94e1f23dd 100644 --- a/web/src/core/usecases/launcher/decoupledLogic/computeRootForm/mergeRangeSliders/removeFormFieldGroupWithNoNodes.ts +++ b/web/src/core/usecases/launcher/decoupledLogic/computeRootForm/mergeRangeSliders/removeFormFieldGroupWithNoNodes.ts @@ -38,16 +38,18 @@ function removeFormFieldGroupLeafWithNoNodes_rec(params: { let hasRemoved = false; - nodes.forEach(node => { + for (let i = nodes.length - 1; i >= 0; i--) { + const node = nodes[i]; + if (node.type === "field") { - return; + continue; } if (node.nodes.length === 0) { if (node.canAdd) { - return; + continue; } - nodes.splice(nodes.indexOf(node), 1); + nodes.splice(i, 1); hasRemoved = true; } else { const { hasRemoved: hasRemoved_i } = removeFormFieldGroupLeafWithNoNodes_rec({ @@ -58,7 +60,7 @@ function removeFormFieldGroupLeafWithNoNodes_rec(params: { hasRemoved = true; } } - }); + } return { hasRemoved }; }