mirror of
https://github.com/NixOS/nix
synced 2025-06-25 10:41:16 +02:00
fix: builtins.toFile adds path to allowedPaths
The produced path is then allowed be imported or utilized elsewhere: ``` assert (43 == import (builtins.toFile "source" "43")); "good" ``` This will still fail on write-only stores.
This commit is contained in:
parent
9345b4e9ca
commit
f25112d383
3 changed files with 10 additions and 3 deletions
|
@ -1798,15 +1798,16 @@ static void prim_toFile(EvalState & state, const Pos & pos, Value * * args, Valu
|
|||
refs.insert(state.store->parseStorePath(path));
|
||||
}
|
||||
|
||||
auto storePath = state.store->printStorePath(settings.readOnlyMode
|
||||
auto storePath = settings.readOnlyMode
|
||||
? state.store->computeStorePathForText(name, contents, refs)
|
||||
: state.store->addTextToStore(name, contents, refs, state.repair));
|
||||
: state.store->addTextToStore(name, contents, refs, state.repair);
|
||||
|
||||
/* Note: we don't need to add `context' to the context of the
|
||||
result, since `storePath' itself has references to the paths
|
||||
used in args[1]. */
|
||||
|
||||
v.mkString(storePath, {storePath});
|
||||
/* Add the output of this to the allowed paths. */
|
||||
state.allowAndSetStorePathString(storePath, v);
|
||||
}
|
||||
|
||||
static RegisterPrimOp primop_toFile({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue