You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e8e5a21
Browse filesBrowse the repository at this point in the historyBrowse files
Fix crashes, DoS, and security issues from Fable code review
Parallel sub-agent review surfaced several real bugs; this batch fixes the
high-confidence, self-contained ones (each verified individually; build and
all 77 Core tests green):
Crashes / DoS:
- ShowPlanParser: guard recursion depth in ParseRelOp/ParseStatementAndChildren
and contain the tree walk, so hostile deeply-nested plan XML yields a
ParseError instead of an uncatchable StackOverflowException.
- Program.cs: single-instance file forwarding never worked (the mutex was
disposed as the method returned, so it always launched a duplicate). Detect
the running instance via the named pipe instead.
- MainWindow: add backoff to the pipe listener's catch so a second instance
can no longer spin it at 100% CPU.
- QuerySessionControl.Format: add a catch to the Format_Click async void
handler so a formatter exception no longer crashes the app.
Correctness:
- PlanAnalyzer: the "Cursor Missing LOCAL" rule looked for LOCAL before the
CURSOR keyword (where it is never legal) and fired on every cursor, including
ones already declared LOCAL. Match qualifiers between CURSOR and FOR.
- DarkTheme: define the missing ForegroundMutedBrush (#B0B6C0) referenced by
five call sites, and fix the code-behind fallback (was full foreground).
- HtmlExporter: detect all spill warning types ("Spill to TempDb"/"Spill
Occurred", not just "* Spill"), and lowercase severity with ToLowerInvariant
so the CSS classes survive non-invariant locales.
Security:
- PlanShare: generate share IDs with RandomNumberGenerator instead of
Random.Shared; the 8-char id is the only access control on a shared plan.
- CLI ConnectionHelper: keep Encrypt=Mandatory regardless of --trust-cert;
--trust-cert previously downgraded the connection to Optional (MITM-able).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments