mesh-files: find writes the NUL itself, so a list or search through root runs at all (issue 1409) #668

Merged
mesh-tools merged 1 commits from fix/1409-root-list-nul into main 2026-11-12 15:39:52 +00:00
Member

Issue 1409; design 39 parts §15 and the lead's answer D3.

Live on novox after #665's delivery: novox/node-files.list {path: /var/lib/claude-licence-manager} (and /root) answers "cannot be listed, not even through sudo: sudo -n /usr/bin/find: fork/exec /usr/bin/sudo: invalid argument". listAsRoot's and searchBelowAsRoot's find -printf formats ended in a literal NUL byte since 5d98bcc0 (2026-10-16), and exec refuses an argument holding one, so no list or search through root ever ran on a node.

Quick fix: find writes \0 itself. Thorough, in the same commit: the tests' stand-in root refuses an argument holding a NUL as exec does, so every root call in the module is held to it (it found the search's instance). No other module in the repository passes such an argument.

Tests: TestTheReadsFallBackToRoot fails with either old format. vet, vet -tags integration, unit, gofmt pass.

Reviewed-by: mesh-code-reviewer@shanks at c29ef0d95e (round 1)
Pushed-by: fix-1965@shanks

Issue 1409; design 39 parts §15 and the lead's answer D3. Live on novox after #665's delivery: novox/node-files.list {path: /var/lib/claude-licence-manager} (and /root) answers "cannot be listed, not even through sudo: sudo -n /usr/bin/find: fork/exec /usr/bin/sudo: invalid argument". listAsRoot's and searchBelowAsRoot's find -printf formats ended in a literal NUL byte since 5d98bcc0 (2026-10-16), and exec refuses an argument holding one, so no list or search through root ever ran on a node. Quick fix: find writes \0 itself. Thorough, in the same commit: the tests' stand-in root refuses an argument holding a NUL as exec does, so every root call in the module is held to it (it found the search's instance). No other module in the repository passes such an argument. Tests: TestTheReadsFallBackToRoot fails with either old format. vet, vet -tags integration, unit, gofmt pass. Reviewed-by: mesh-code-reviewer@shanks at c29ef0d95ea705f04cf3b085dc8400e06aaf63d0 (round 1) Pushed-by: fix-1965@shanks
mesh-tools added 1 commit 2026-11-12 15:36:34 +00:00
mesh-files: find writes the NUL itself, so a list or search through root runs at all (issue 1409)
mesh/delivery merged: source.main moved to novox/mesh-catalog@836fcd81f65b
mesh/check checking c29ef0d95ea7 on 836fcd81f65b
c29ef0d95e
Live on novox 2026-11-12: node-files.list of a root-only directory answered
'fork/exec /usr/bin/sudo: invalid argument'. The kernel refuses a program
argument that holds a NUL byte, and listAsRoot's -printf format and
searchBelowAsRoot's ended in a literal \x00 since 5d98bcc0 (2026-10-16), so
no list or search through root ever ran on a node. find writes \0 itself.
The stand-in root in the tests refuses an argument holding a NUL, as exec
does, so every root call is held to it; it found the search's instance.

Builds: design 39 parts §15 and the lead's answer D3 (list through root of a place a secret is kept).
Author
Member

Delivery novox/mesh-catalog@c29ef0d95ea7 — merged since 2026-11-12T15:39:53Z

Source — source.main moved to novox/mesh-catalog@836fcd81f6. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-12 15:36 (new) → proposed (announced): novox/mesh-catalog#668's head announced
  • 2026-11-12 15:36 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-12 15:39 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@c29ef0d95ea7` — **merged** since 2026-11-12T15:39:53Z **Source** — source.main moved to novox/mesh-catalog@836fcd81f65b. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-12 15:36 (new) → proposed (announced): novox/mesh-catalog#668's head announced - 2026-11-12 15:36 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-12 15:39 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 836fcd81f6 into main 2026-11-12 15:39:52 +00:00
mesh-tools deleted branch fix/1409-root-list-nul 2026-11-12 15:39:52 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#668