Fix crash when referencing an invalid variable name (#2486)

Fix crash when referencing an invalid variable name using the old placeholder parser syntax
This commit is contained in:
Noisyfox 2023-10-22 06:35:53 -05:00 committed by GitHub
parent 66fe13f403
commit e641903b16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -810,9 +810,12 @@ namespace client
const ConfigOption *opt = ctx->resolve_symbol(opt_key_str);
if (opt == nullptr) {
// Check whether the opt_key ends with '_'.
if (opt_key_str.back() == '_')
if (opt_key_str.back() == '_') {
opt_key_str.resize(opt_key_str.size() - 1);
opt = ctx->resolve_symbol(opt_key_str);
opt = ctx->resolve_symbol(opt_key_str);
}
if (opt == nullptr)
ctx->throw_exception("Variable does not exist", opt_key);
}
if (! opt->is_vector())
ctx->throw_exception("Trying to index a scalar variable", opt_key);