From 6ed21a4afb714465f2c939ee9512dde5c4ede7f0 Mon Sep 17 00:00:00 2001 From: Michael Davis <michael.davis@cern.ch> Date: Fri, 24 Jan 2020 13:17:33 +0100 Subject: [PATCH] [cta-admin] Check that uint64 arguments are not negative numbers --- cmdline/CtaAdminCmd.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp index 03304317b4..edbd961c0f 100644 --- a/cmdline/CtaAdminCmd.cpp +++ b/cmdline/CtaAdminCmd.cpp @@ -363,9 +363,11 @@ void CtaAdminCmd::addOption(const Option &option, const std::string &value) } case Option::OPT_UINT: try { auto key = uint64Options.at(option.get_key()); + int64_t val_int = std::stol(value); + if(val_int < 0) throw std::out_of_range("value is negative"); auto new_opt = admincmd_ptr->add_option_uint64(); new_opt->set_key(key); - new_opt->set_value(std::stoul(value)); + new_opt->set_value(val_int); break; } catch(std::invalid_argument &) { throw std::runtime_error(value + " is not a valid uint64: " + option.help()); -- GitLab