diff options
author | Ben Gamari <ben@smart-cactus.org> | 2017-12-14 19:11:56 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-12-14 19:11:56 -0500 |
commit | 626a94d70ea7a5c5b87f4d6061633c019ca8ea13 (patch) | |
tree | c8a1b94b50b0a5c4da40c80e9b34cd22fa797703 | |
parent | f9bcbddef260872878708317e9f5fa78cd0fe849 (diff) |
edit: Catch stoi exceptions from line number parsing
-rw-r--r-- | src/nix/edit.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nix/edit.cc b/src/nix/edit.cc index 127be321e..7eaa86e2f 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"); |