From a23262dfdefeb3f441de7a580bb620b737c941b6 Mon Sep 17 00:00:00 2001 From: akleine Date: Tue, 16 Dec 2025 15:45:10 +0100 Subject: [PATCH] fix: added a clean exit in ModelLoader::load_tensors if OOM (#1097) --- examples/common/common.hpp | 2 +- model.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/common/common.hpp b/examples/common/common.hpp index 4489171..7ea070c 100644 --- a/examples/common/common.hpp +++ b/examples/common/common.hpp @@ -862,7 +862,7 @@ static bool is_absolute_path(const std::string& p) { struct SDGenerationParams { std::string prompt; - std::string prompt_with_lora; // for metadata record only + std::string prompt_with_lora; // for metadata record only std::string negative_prompt; int clip_skip = -1; // <= 0 represents unspecified int width = 512; diff --git a/model.cpp b/model.cpp index 0480efe..01a8c45 100644 --- a/model.cpp +++ b/model.cpp @@ -1520,6 +1520,11 @@ bool ModelLoader::load_tensors(on_new_tensor_cb_t on_new_tensor_cb, int n_thread i64_to_i32_vec((int64_t*)read_buf, (int32_t*)target_buf, tensor_storage.nelements()); } if (tensor_storage.type != dst_tensor->type) { + if (convert_buf == nullptr) { + LOG_ERROR("read tensor data failed: too less memory for conversion"); + failed = true; + return; + } convert_tensor((void*)target_buf, tensor_storage.type, convert_buf,