From d90582be33601d9f25b9398e6938e84b5861d6cf Mon Sep 17 00:00:00 2001 From: Tom Bereknyei <tomberek@gmail.com> Date: Sun, 22 Aug 2021 18:45:42 -0400 Subject: [PATCH] Allow use of path and filterSource in flakes As filterSource and path perform work, add paths to allowedPaths. --- src/libexpr/primops.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index bfe41c9fa..6c86aa4e1 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -1886,6 +1886,20 @@ static void addPath(EvalState & state, const Pos & pos, const string & name, con dstPath = state.store->printStorePath(*expectedStorePath); mkString(v, dstPath, {dstPath}); + if (state.allowedPaths) + state.allowedPaths->insert(v.string.s); + + try { + state.realiseContext({}); + } catch (InvalidPathError & e) { + throw EvalError({ + .msg = hintfmt("cannot import '%1%', since path '%2%' is not valid", path, e.path), + .errPos = pos + }); + } catch (Error & e) { + e.addTrace(pos, "while importing '%s'", path); + throw e; + } }