fix(discord): reject unsafe rate limit headers · openclaw/openclaw@0fa034e
steipete
·
2026-05-29
·
via Recent Commits to openclaw:main
File tree
extensions/discord/src/internal
| Original file line number | Diff line number | Diff line change |
|---|
@@ -14,6 +14,14 @@ describe("Discord REST rate limit header parsing", () => {
|
14 | 14 | expect(readHeaderNumber(headers, "X-RateLimit-Reset-After")).toBeUndefined(); |
15 | 15 | }); |
16 | 16 | |
| 17 | +it("rejects unsafe finite numeric header magnitudes", () => { |
| 18 | +const headers = new Headers({ |
| 19 | +"X-RateLimit-Reset-After": "9007199254740993", |
| 20 | +}); |
| 21 | + |
| 22 | +expect(readHeaderNumber(headers, "X-RateLimit-Reset-After")).toBeUndefined(); |
| 23 | +}); |
| 24 | + |
17 | 25 | it("keeps decimal reset headers working", () => { |
18 | 26 | vi.useFakeTimers(); |
19 | 27 | vi.setSystemTime(new Date("2026-05-28T12:00:00.000Z")); |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -32,7 +32,9 @@ export function readHeaderNumber(headers: Headers, name: string): number | undef
|
32 | 32 | return undefined; |
33 | 33 | } |
34 | 34 | const parsed = Number(trimmed); |
35 | | -return Number.isFinite(parsed) ? parsed : undefined; |
| 35 | +return Number.isFinite(parsed) && Math.abs(parsed) <= Number.MAX_SAFE_INTEGER |
| 36 | + ? parsed |
| 37 | + : undefined; |
36 | 38 | } |
37 | 39 | |
38 | 40 | export function readResetAt(response: Response): number | undefined { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。