Repository navigation
runtime: intersect embedded and preload sandbox policies - #3441
adilalperenciftci wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
|
Thanks. The change is right in intent: an embedded policy that allows shouldn't let a process skip a stricter preload grant list (levels should intersect). We're holding this one out of the batch with your other sandbox PRs, though, because it conflicts with an in-flight rework of the same code: #3334 (commit 6854baa, #2955) replaces the process-wide The same bug survives there (any result if (aether_sandbox_check_resolved) {
int r = aether_sandbox_check_resolved(category, match_target);
if (r == 0) { log_deny(category, match_target); return 0; }
/* r > 0 (allowed here) or -1 (no level): fall through to file grants */
}
if (!sandbox_active) return 1;and the test harness would supply 🤖 Generated with Claude Code |
|
Adaptation plan after #3334 merges:
I will not rebase or push the API adaptation until #3334 is merged. |
|
adilalperenciftci Can you please introduce yourself on nicolasmd87@gmail.com? Thank you |
Treat in-process grant levels and preload grants as independent boundaries. Continue to file or shared-memory grants after an in-process allow, while denying immediately when either policy refuses the operation. Update the regression harness to exercise the current runtime hooks and cover both policy orderings. Signed-off-by: Adil Alperen Ciftci <adilalperenciftci@users.noreply.github.com>
b32ffec to
6b07155
Compare
|
Thanks @adilalperenciftci! This landed in #3474, which batched nine of your PRs and merged on 2026-10-30 ( On top of your commit, #3474 tightens |
Summary
I reproduced an allowing in-process checker replacing, rather than composing with, an active preload grant list. In embedded guest runtimes this let the local checker authorize an operation that the outer process policy denied.
This change makes the two policies intersect:
Verification
make check-tests: passed.make test: 634 passed, 0 failed on Ubuntu VM.make check-changelog: passed.