fix(e2e): reject loose telegram credential limits · openclaw/openclaw@e1c2926
vincentkoc
·
2026-06-19
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -160,8 +160,11 @@ function optionalPositiveInteger(value: string | undefined, fallback: number) {
|
160 | 160 | if (!value) { |
161 | 161 | return fallback; |
162 | 162 | } |
| 163 | +if (!/^\d+$/u.test(value)) { |
| 164 | +throw new Error(`Expected positive integer, got ${value}.`); |
| 165 | +} |
163 | 166 | const parsed = Number(value); |
164 | | -if (!Number.isInteger(parsed) || parsed < 1) { |
| 167 | +if (!Number.isSafeInteger(parsed) || parsed < 1) { |
165 | 168 | throw new Error(`Expected positive integer, got ${value}.`); |
166 | 169 | } |
167 | 170 | return parsed; |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -133,6 +133,26 @@ describe("telegram user credential IO", () => {
|
133 | 133 | ); |
134 | 134 | }); |
135 | 135 | |
| 136 | +it("rejects loose and unsafe credential timeout env values", async () => { |
| 137 | +const previous = process.env.OPENCLAW_TELEGRAM_USER_CREDENTIAL_COMMAND_TIMEOUT_MS; |
| 138 | +try { |
| 139 | +for (const value of ["1e3", String(Number.MAX_SAFE_INTEGER + 1)]) { |
| 140 | +process.env.OPENCLAW_TELEGRAM_USER_CREDENTIAL_COMMAND_TIMEOUT_MS = value; |
| 141 | +await expect( |
| 142 | +import( |
| 143 | +`${new URL("../../scripts/e2e/telegram-user-credential.ts", import.meta.url).href}?case=loose-timeout-${value}-${Date.now()}` |
| 144 | +), |
| 145 | +).rejects.toThrow(`Expected positive integer, got ${value}.`); |
| 146 | +} |
| 147 | +} finally { |
| 148 | +if (previous === undefined) { |
| 149 | +delete process.env.OPENCLAW_TELEGRAM_USER_CREDENTIAL_COMMAND_TIMEOUT_MS; |
| 150 | +} else { |
| 151 | +process.env.OPENCLAW_TELEGRAM_USER_CREDENTIAL_COMMAND_TIMEOUT_MS = previous; |
| 152 | +} |
| 153 | +} |
| 154 | +}); |
| 155 | + |
136 | 156 | it("rejects oversized chunked lease payload markers before hydration", async () => { |
137 | 157 | const credentialModule = (await import( |
138 | 158 | `${new URL("../../scripts/e2e/telegram-user-credential.ts", import.meta.url).href}?case=chunk-marker-${Date.now()}` |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。