]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Merge commit from fork
authorGuy Goldenberg <redacted>
Fri, 13 Jun 2025 16:20:25 +0000 (19:20 +0300)
committerGitHub <redacted>
Fri, 13 Jun 2025 16:20:25 +0000 (19:20 +0300)
* vocab : prevent integer overflow during load

* Add static cast and GGML_ABORT

---------

Co-authored-by: Georgi Gerganov <redacted>
src/llama-vocab.cpp

index d8c9d9730a095fe45ac4c8eff46aec99449b95e9..07e692208b0eb2538e583963c2905460ac663518 100644 (file)
@@ -19,6 +19,7 @@
 #include <set>
 #include <unordered_map>
 #include <cctype>
+#include <cinttypes>
 
 //
 // helpers
@@ -2572,6 +2573,10 @@ int32_t llama_vocab::impl::token_to_piece(llama_token token, char * buf, int32_t
     // copy piece chars to output text buffer
     // skip up to 'lstrip' leading spaces before copying
     auto _try_copy = [=] (const char * token, size_t size) -> int32_t {
+        if (size >= static_cast<size_t>(std::numeric_limits<int32_t>::max())) {
+            GGML_ABORT("invalid token size: %zu exceeds int32_t limit", size);
+        }
+
         for (int32_t i = 0; i < lstrip && size && *token == ' '; ++i) {
             token++;
             size--;