about summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2018-04-23T12·43-0400
committerShea Levy <shea@shealevy.com>2018-04-23T12·43-0400
commite2b028353b198d1590ee14101dbb74cd2a4c5730 (patch)
tree49efda1c90f82f5bf3a0cbd575e6bd63e5e78446
parent0aae411eaa0588553af54cc096baefd6e9cacb51 (diff)
parentaf86132e1afa65b4b466af3ea9c7084836c91ee0 (diff)
Merge branch 'pos-crash-fix' of git://github.com/dezgeg/nix
-rw-r--r--src/libexpr/eval.cc2
-rw-r--r--tests/lang/eval-okay-getattrpos-undefined.exp1
-rw-r--r--tests/lang/eval-okay-getattrpos-undefined.nix1
3 files changed, 3 insertions, 1 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 37b977736e28..8548990795ab 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -628,7 +628,7 @@ void EvalState::mkThunk_(Value & v, Expr * expr)
 
 void EvalState::mkPos(Value & v, Pos * pos)
 {
-    if (pos) {
+    if (pos && pos->file.set()) {
         mkAttrs(v, 3);
         mkString(*allocAttr(v, sFile), pos->file);
         mkInt(*allocAttr(v, sLine), pos->line);
diff --git a/tests/lang/eval-okay-getattrpos-undefined.exp b/tests/lang/eval-okay-getattrpos-undefined.exp
new file mode 100644
index 000000000000..19765bd501b6
--- /dev/null
+++ b/tests/lang/eval-okay-getattrpos-undefined.exp
@@ -0,0 +1 @@
+null
diff --git a/tests/lang/eval-okay-getattrpos-undefined.nix b/tests/lang/eval-okay-getattrpos-undefined.nix
new file mode 100644
index 000000000000..14dd38f7734c
--- /dev/null
+++ b/tests/lang/eval-okay-getattrpos-undefined.nix
@@ -0,0 +1 @@
+builtins.unsafeGetAttrPos "abort" builtins