From 65e142d19317d26f99ad1a9ec91a7aabdf119ef8 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Fri, 6 Jun 2025 12:02:44 +0200 Subject: [PATCH] primops/import: add preflight check to parseExprFromFile --- src/libexpr/eval.cc | 2 ++ 1 file changed, 2 insertions(+) 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);