diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp index 03304317b4be876172041f8bff7cb46da9ec8970..edbd961c0fb459da051615e9f3c41a91f76fff67 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());