From 56c3ab4ff86798aaf4f79d3d1a92041d05d202d6 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 5 May 2022 20:04:51 +1000 Subject: Fix parsing of INT_MIN %arg Fixes #4601 --- src/command_manager.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/command_manager.cc') diff --git a/src/command_manager.cc b/src/command_manager.cc index b8784093..266b832d 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -382,10 +382,10 @@ void expand_token(Token&& token, const Context& context, const ShellContext& she return set_target(params); } - const int arg = str_to_int(content)-1; - if (arg < 0) + const int arg = str_to_int(content); + if (arg < 1) throw runtime_error("invalid argument index"); - return set_target(arg < params.size() ? params[arg] : String{}); + return set_target(arg <= params.size() ? params[arg-1] : String{}); } case Token::Type::FileExpand: return set_target(read_file(content)); -- cgit v1.2.3