about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/nix/edit.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nix/edit.cc b/src/nix/edit.cc
index 127be321eee2..7eaa86e2f914 100644
--- a/src/nix/edit.cc
+++ b/src/nix/edit.cc
@@ -52,7 +52,12 @@ struct CmdEdit : InstallableCommand
             throw Error("cannot parse meta.position attribute '%s'", pos);
 
         std::string filename(pos, 0, colon);
-        int lineno = std::stoi(std::string(pos, colon + 1));
+        int lineno;
+        try {
+            lineno = std::stoi(std::string(pos, colon + 1));
+        } catch (std::invalid_argument e) {
+            throw Error("cannot parse line number '%s'", pos);
+        }
 
         auto editor = getEnv("EDITOR", "cat");