Проект llama.cpp выпустил версию b10955, которая включает критическое исправление повреждения кучи во внутреннем модуле ggml-cpu. Обновление отключает предварительно скомпилированные заголовки (PCH) и удаляет неоднозначное определение CACHE_LINE_SIZE для устранения проблем безопасности памяти.
- Отключение PCH в ggml-cpu восстанавливает естественный порядок включения файлов, обеспечивая обработку ops.h до заголовков аппаратного взаимодействия.
- Удаление ветви std::hardware_destructive_interference_size делает CACHE_LINE_SIZE детерминированным и независимым от порядка включения файлов.
- Исправление устраняет несоответствие, при котором ядра C++ использовали 256-байтовые кэш-линии, а код на C использовал резервные варианты в 64 байта, что ранее приводило к недостаточному размеру буферов rope.
- Это исправление предотвращает сбои с переполнением кучи (heap-buffer-overflow) в ggml_compute_forward_rope_flt, вызванные разницей в размерах буфера.
Релиз предоставляет бинарные файлы для платформ macOS (Apple Silicon и Intel), Linux (x64, arm64, s390x), Windows (CPU, CUDA, Vulkan, ROCm, OpenVINO, SYCL), Android и openEuler.