summaryrefslogtreecommitdiff
path: root/common/common.cpp
diff options
context:
space:
mode:
authorJustine Tunney <jtunney@mozilla.com>2024-05-10 07:01:08 -0400
committerGitHub <noreply@github.com>2024-05-10 21:01:08 +1000
commit4e3880978f8b1bf546dd4e6f3b524d6b8739c49c (patch)
tree54ab13653c57d8a5ecb709947dd5a43596ca64c2 /common/common.cpp
parentf89fe2732c5709f6e86d5f4aee2e6d2a561f2eb2 (diff)
Fix memory bug in grammar parser (#7194)
The llama.cpp grammar parser had a bug where forgetting to add a closing quotation mark to strings would cause parsing to crash. Anyone running a server on a public endpoint is advised to upgrade. To reproduce this bug ./llamafile -m foo.gguf -p bar --grammar 'root::="' Credit for discovering and reporting this issue goes to Eclypsium Security Researcher Richard Johnson <Richard.johnson@eclypsium.com>.
Diffstat (limited to 'common/common.cpp')
-rw-r--r--common/common.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/common/common.cpp b/common/common.cpp
index 484e6733..ba1ecf0e 100644
--- a/common/common.cpp
+++ b/common/common.cpp
@@ -1371,14 +1371,12 @@ bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) {
if (arg.compare(0, arg_prefix.size(), arg_prefix) == 0) {
std::replace(arg.begin(), arg.end(), '_', '-');
}
-
if (!gpt_params_find_arg(argc, argv, arg, params, i, invalid_param)) {
throw std::invalid_argument("error: unknown argument: " + arg);
}
- }
-
- if (invalid_param) {
- throw std::invalid_argument("error: invalid parameter for argument: " + arg);
+ if (invalid_param) {
+ throw std::invalid_argument("error: invalid parameter for argument: " + arg);
+ }
}
if (params.prompt_cache_all &&