Commit 5cf3a3528 for llama.cpp

commit 5cf3a35287163f79a302a15db66f0fa386d94d10
Author: Daniel Kuts <kutz@ispras.ru>
Date:   Thu Sep 24 21:43:26 2026 +0300

    llama-grammar: fix numeric truncation for token_id parsing (#29382)

diff --git a/src/llama-grammar.cpp b/src/llama-grammar.cpp
index deffec8c0..0a8a61e7e 100644
--- a/src/llama-grammar.cpp
+++ b/src/llama-grammar.cpp
@@ -194,7 +194,11 @@ static std::pair<uint32_t, const char *> parse_token(const llama_vocab * vocab,
     if (*pos == '[') {
         pos++;
         const char * int_end = parse_int(pos);
-        uint32_t token_id = std::stoul(std::string(pos, int_end - pos));
+        unsigned long id = std::stoul(std::string(pos, int_end - pos));
+        if (id > std::numeric_limits<uint32_t>::max()) {
+            throw std::runtime_error(std::string("parsed token id is too big at ") + pos);
+        }
+        uint32_t token_id = static_cast<uint32_t>(id);
         pos = int_end;
         if (*pos != ']') {
             throw std::runtime_error(std::string("expecting ']' at ") + pos);