Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
| Comment: | Merge 4.5: Checking guest arguments
Reviewed against docs/tasks/4.5.md; verdict merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
c018ad7b9551ce26e40e09ac51bd4ecf |
| User & Date: | x86-1-glint 2026-11-09 19:46:42.489 |
|
2026-11-09
| ||
| 19:47 |
Task 4.6 (x86_64): Traps from Glint itself
Claim: docs/tasks/4.6.md adds a bounded frame-pointer backtrace to the report for an unhandled trap in Glint's own code. Each frame also prints as an offset from the image base, so the host can name it. The walk reads only checked addresses inside the interrupted stack, so a corrupted rbp ends it instead of faulting again. The boot spec names frames with llvm-nm and checks the fault routine and the shell appear. Passage: docs/WORKFLOW.md, Handing out a slice, step 1. Demonstration: Glint is built with --frame-pointers always (tools/glint_build.cr line 129). Size: one new task. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: 9a56065018 user: x86-1-glint tags: trunk | |
| 19:46 |
Merge 4.5: Checking guest arguments
Reviewed against docs/tasks/4.5.md; verdict merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: c018ad7b95 user: x86-1-glint tags: trunk | |
| 19:46 |
4.5: Checking guest arguments
Claim: every address and length a guest call passes now goes through one written check before Glint reads through it. Glint::GuestRange.check accepts a range only when 0 < length <= limit, address + length doesn't wrap, the whole range lies in guest RAM and every page translates. copy_in copies a checked range page by page through translate. The console call uses it in place of 4.4's inline checks, and what the guest sees is unchanged. Guest console bytes outside printable ASCII, newline and tab become '?', so a guest can't send terminal control sequences to whoever reads Glint's console. docs/threat-model.md's 4.5 bullet now names GuestRange and that rule instead of saying planned. Passage: xv6 ยง4.4, paraphrased because the text isn't in the workspace: the kernel checks user addresses before fetching arguments or copying user memory. Demonstration: spec/guest_range_spec.cr tries length 0, length over the limit, a sum that wraps near 2^64, ranges below guest RAM (aarch64's base, through the glint_aarch64_test space), starting inside and ending past the top, entirely past the top, the last byte alone (valid), and a two-page range (valid, copied correctly). Each refused case leaves the destination untouched. A console write with an escape byte prints '?'. With the guest-calls, threat-model and phase 4 specs: 20 examples, 0 failures, 1 pending (aarch64); Phase 4's x86_64 demo still passes. Codex reports the full suite at 1735 examples, 13 failures and 2 errors, all aarch64 builds or glint-build all. Codex wrote it from docs/tasks/4.5.md; the reviewer made no changes. Size: +59/-33 non-spec lines; largest changed function console_write, 1,374 bytes; BOOTX64.EFI unchanged at 197,120 bytes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX Leaf check-in: 0d860c83a4 user: x86-1-glint tags: slice/4.5 | |
| 19:27 |
Task 4.5: Checking guest arguments
Claim: docs/tasks/4.5.md moves 4.4's inline console-write checks into one written check, GuestRange, which refuses empty, oversized, wrapping and out-of-RAM ranges and pages that don't translate. Specs try the threat model's hostile values. It also has the reviewer's finding from 4.4 decided: guest bytes outside printable ASCII, newline and tab become '?' on Glint's console, so a guest can't send escape sequences to its reader. The threat model's 4.5 bullet is updated to match. Passage: docs/WORKFLOW.md, Handing out a slice, step 1; docs/threat-model.md lines 13-15 and 29-31. Demonstration: the threat-model text quoted is lines 13-15 of docs/threat-model.md. Size: one new task. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: e7a7646815 user: x86-1-glint tags: trunk | |