forked from heavy-duty/rig
json_string_array took the first "Tags" array anywhere in the document, justified by Self-before-Peer field order. An untagged Self omits the key entirely (Go omitempty), so the match fell through into Peer and returned a peer's tag — false-refusing every login join and false-verifying untagged authkey joins on any tailnet with a tagged node. Extract Self by brace counting (Location nests an object, so slicing to the next key would truncate) and read the array inside it. Refs #160 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 152.md | ||
| 160.md | ||
| README.md | ||
changelog.d/ — the next release's section, one fragment per issue
Machine-assembled by bin/changelog-assemble (#112): every PR that changes
behavior writes one file here — <issue>.md, the exact prose that will be
published, nothing else — and the release PR folds them all into the next
## X.Y.Z — DATE section of CHANGELOG.md, consuming them. Distinct
filenames never conflict, which is this directory's whole reason to exist.
This README is the marker that keeps the directory tracked when it holds no
fragments (#112 D1) — changelog-armed refuses a tree without it; do not
delete it.