Development record
The UTF-16 byte view (internal/adapter/scanner/utf16.go, utf16TextRune) ends a run at a surrogate, so a character outside the Basic Multilingual Plane, an emoji written as a surrogate pair, cuts a byte-order-marked UTF-16 string in two, and a name after it is never read when fewer than two code units stood before the pair: an emoji, a space and a name behind a byte-order mark yields no view at all, while the same name before the emoji is found. Detector: the caller's name after an emoji in one byte-order-marked UTF-16 string is a real_name finding in the payload scan.
The UTF-16 byte view (internal/adapter/scanner/utf16.go, utf16TextRune) ends a run at a surrogate, so a character outside the Basic Multilingual Plane, an emoji written as a surrogate pair, cuts a byte-order-marked UTF-16 string in two, and a name after it is never read when fewer than two code units stood before the pair: an emoji, a space and a name behind a byte-order mark yields no view at all, while the same name before the emoji is found. Detector: the caller's name after an emoji in one byte-order-marked UTF-16 string is a real_name finding in the payload scan.
Grounds
- pursued: a name after an astral character in one marked UTF-16 string is found without new findings on chance bytes; a launch dry-run that reports a new finding on this tree's assets, or a marked name after an emoji the scan still passes, would show it wrong
Frontmatter
| id | iss-2609261909101409 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609261909101409-the-utf-16-byte-view-internal-adapter.md
open on GitHub ↗ · commit history ↗