diff options
author | regnat <rg@regnat.ovh> | 2021-11-25 14:48:01 +0100 |
---|---|---|
committer | regnat <rg@regnat.ovh> | 2021-11-25 14:48:01 +0100 |
commit | c47027f3a139669dfb607c22b153564ff53d111c (patch) | |
tree | 22a39c98edaef2ef435b01c60108e5967ae7ef22 /src/libexpr/eval.cc | |
parent | 1f7584d24c9e50207d74de26be0771d8377ed695 (diff) |
Fix the error when accessing a forbidden path in pure eval
If we’re in pure eval mode, then tell that in the error message rather
than (wrongly) speaking about restricted mode.
Fix https://github.com/NixOS/nix/issues/5611
Diffstat (limited to 'src/libexpr/eval.cc')
-rw-r--r-- | src/libexpr/eval.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 97fc04711..1fd609bd4 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -519,8 +519,12 @@ Path EvalState::checkSourcePath(const Path & path_) } } - if (!found) - throw RestrictedPathError("access to absolute path '%1%' is forbidden in restricted mode", abspath); + if (!found) { + auto modeInformation = evalSettings.pureEval + ? "in pure eval mode (use '--impure' to override)" + : "in restricted mode"; + throw RestrictedPathError("access to absolute path '%1%' is forbidden %2%", abspath, modeInformation); + } /* Resolve symlinks. */ debug(format("checking access to '%s'") % abspath); |