diff options
author | Arash Partow <ArashPartow@users.noreply.github.com> | 2021-01-24 04:36:55 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-23 09:36:55 -0800 |
commit | d19281b9b8917961bab781f70711a561db7f059b (patch) | |
tree | 2c0276cfd860e84182d7a18859747a85f11882e7 /projects/exprtk | |
parent | 03fb1febc3a8bf06fb4b62ab6c03471ddbbca83d (diff) |
[exprtk] Set maximum expression size evaluation phase (#5040)
Diffstat (limited to 'projects/exprtk')
-rw-r--r-- | projects/exprtk/exprtk_fuzzer.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/projects/exprtk/exprtk_fuzzer.cpp b/projects/exprtk/exprtk_fuzzer.cpp index 09c4fc01..3b109138 100644 --- a/projects/exprtk/exprtk_fuzzer.cpp +++ b/projects/exprtk/exprtk_fuzzer.cpp @@ -52,14 +52,19 @@ void run(const std::string& expression_string) if (parser.compile(expression_string, expression)) { - try + const std::size_t max_expression_size = 64 * 1024; + + if (expression_string.size() <= max_expression_size) { - expression.value(); - } - catch (std::runtime_error& rte) - {} + try + { + expression.value(); + } + catch (std::runtime_error& rte) + {} - parser.clear_loop_runtime_check(); + parser.clear_loop_runtime_check(); + } } } |