Repository navigation
Server-only no-link data jail for table opens - #190
Merged
bedipritpal merged 1 commit intoOct 10, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage5: server-only no-link table-open data jail, based on upstreamb06fa2e4 afterPR189.
Compatibility: symlinked roots/directories/table/index/memo leaves are refused server-side, including a .cdx symlink to .z01. Deployments using those layouts need ordinary files/directories. This is no-link table-open hardening, not a complete OS filesystem sandbox: hard links, mounts, existing path-based rename/unlink operations and exhaustive adversarial directory-rename races are not claimed covered.
9files (+838/-27). No client wire/capability, count-cache policy/OPENADS_FRESH_COUNTS, lock algorithm, health backend, Harbour RDD core, daemon-hardening exemption or CI/workflow change.
Credit: scoped hunks derive from Pritpal Bedi's released mtfix41 source (6dffce5), with added tests for multiple/longest roots, failed replacement preserving policy and pinned POSIX root replacement. No full-function/source identity claim.
Validation: fresh isolated Linux normal/TLS unit/ACE/serverd builds; combined stage4+stage5 selection85cases/1,761assertions each. Changed Linux units and jail tests pass strict Clang14 warning checks. Invalid-root serverd exits1 before listeners. No fullCTest, hosted cross-platform validation or exhaustive bypass/race audit claim. Windows source reviewed, not locally run; reparse/junction-specific test coverage remains a limitation