|
76 | 76 | - name: Slot-lookup ratchet |
77 | 77 | run: pnpm check:slot-lookup |
78 | 78 |
|
79 | | - # Raw control-byte guard (#3127 / #4890 / #5157). Scans every tracked TEXT |
80 | | - # file for a raw C0 control byte — 0x00-0x08, 0x0b, 0x0c, 0x0e-0x1f, i.e. |
81 | | - # everything except tab/LF/CR. Two distinct harms, one gate: |
| 79 | + # Raw control-byte guard (#3127 / #4890 / #5157 / #5460). Scans every |
| 80 | + # tracked TEXT file for a raw ASCII control byte — 0x00-0x08, 0x0b, 0x0c, |
| 81 | + # 0x0e-0x1f and 0x7f, i.e. everything except tab/LF/CR. Two distinct |
| 82 | + # harms, one gate: |
82 | 83 | # • A literal U+0000 makes grep/ripgrep treat the whole file as binary and |
83 | 84 | # silently return ZERO matches — the file drops out of code search and |
84 | 85 | # out of every grep-based lint, with no error saying so. Nothing else |
|
92 | 93 | # Four tracked source files carried those past the NUL-only gate until |
93 | 94 | # #5157 widened the scan surface; PR #5140 is the case that found it, |
94 | 95 | # when a 0x01 sitting 14 bytes from a caught NUL went unfixed. |
| 96 | + # • DEL (0x7f) is in the set for the same reason, added by #5460. It is |
| 97 | + # not a C0 control — it sits alone past the printable range — so the |
| 98 | + # C0-shaped set could not reach it, and two raw specimens survived in |
| 99 | + # the CLI's password prompts nine lines below a 0x03 #5157 had just |
| 100 | + # escaped, reading as `case ''`. The set is drawn by the accident |
| 101 | + # source (a tool materialising an escape into its byte), and that |
| 102 | + # source does not pick byte values. |
95 | 103 | # The command name stays `check:nul-bytes` for continuity — see the script's |
96 | 104 | # header for why. Authors must write the unicode escape instead of the byte. |
97 | 105 | - name: Raw control-byte guard |
|
0 commit comments