diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index eacbf4c9b..70d6bf00f 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -3055,6 +3055,8 @@ Expr * EvalState::parseExprFromFile(const SourcePath & path) Expr * EvalState::parseExprFromFile(const SourcePath & path, std::shared_ptr & staticEnv) { auto buffer = path.resolveSymlinks().readFile(); + + if (buffer.size() == 0) throw Error("cannot import empty file '%s'", path); // readFile hopefully have left some extra space for terminators buffer.append("\0\0", 2); return parse(buffer.data(), buffer.size(), Pos::Origin(path), path.parent(), staticEnv);