From 626a94d70ea7a5c5b87f4d6061633c019ca8ea13 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Thu, 14 Dec 2017 19:11:56 -0500 Subject: edit: Catch stoi exceptions from line number parsing --- src/nix/edit.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/nix/edit.cc') 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"); -- cgit v1.2.3