]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
vulkan: Fix memory logger unsafe iterator access (#23667)
authorWinston Ma <redacted>
Thu, 28 May 2026 10:46:07 +0000 (18:46 +0800)
committerGitHub <redacted>
Thu, 28 May 2026 10:46:07 +0000 (12:46 +0200)
ggml/src/ggml-vulkan/ggml-vulkan.cpp

index fb07282ef762c11bd5fe5b8bee140599eb8a267e..b8ac4a9c26c99ac854f16a33c3806d746f88cbf3 100644 (file)
@@ -2095,9 +2095,9 @@ void vk_memory_logger::log_deallocation(vk_buffer_ref buf_ref) {
     const bool device = bool(buf->memory_property_flags & vk::MemoryPropertyFlagBits::eDeviceLocal);
     std::string type = device ? "device" : "host";
     auto it = allocations.find(buf->buffer);
-    total_device -= device ? it->second : 0;
-    total_host -= device ? 0 : it->second;
     if (it != allocations.end()) {
+        total_device -= device ? it->second : 0;
+        total_host -= device ? 0 : it->second;
         VK_LOG_MEMORY(buf->device->name << ": -" << format_size(it->second) << " " << type << " at " << buf->buffer << ". Total device: " << format_size(total_device) << ", total host: " << format_size(total_host));
         allocations.erase(it);
     } else {