Проект 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.