From: Daniel Bevenius Date: Wed, 10 Sep 2025 03:33:58 +0000 (+0200) Subject: llama : check returned fn ptrs from ggml_backend_reg_get_proc_address (#15893) X-Git-Tag: upstream/0.0.6527~93 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=86587da03bd78df8f4e7d8b111a0c1d2494d6ed0;p=pkg%2Fggml%2Fsources%2Fllama.cpp llama : check returned fn ptrs from ggml_backend_reg_get_proc_address (#15893) This commit adds check for two function pointers returned from ggml_backend_reg_get_proc_address. The motivation for this is that the function pointer could be nullptr if the get proc address function changes in the future. This is also consistent with all the other calls to ggml_backend_reg_get_proc_address in the code base. --- diff --git a/src/llama-context.cpp b/src/llama-context.cpp index 874c6f82..3e163001 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -1447,7 +1447,9 @@ ggml_status llama_context::graph_compute( if (backend_cpu != nullptr) { auto * reg = ggml_backend_dev_backend_reg(ggml_backend_get_device(backend_cpu)); auto * set_threadpool_fn = (decltype(ggml_backend_cpu_set_threadpool) *) ggml_backend_reg_get_proc_address(reg, "ggml_backend_cpu_set_threadpool"); - set_threadpool_fn(backend_cpu, tp); + if (set_threadpool_fn) { + set_threadpool_fn(backend_cpu, tp); + } } // set the number of threads for all the backends diff --git a/src/llama.cpp b/src/llama.cpp index f0d4f5f8..92cddccc 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -83,7 +83,9 @@ void llama_numa_init(enum ggml_numa_strategy numa) { GGML_ASSERT(dev && "CPU backend is not loaded"); auto * reg = ggml_backend_dev_backend_reg(dev); auto * numa_init_fn = (decltype(ggml_numa_init) *) ggml_backend_reg_get_proc_address(reg, "ggml_backend_cpu_numa_init"); - numa_init_fn(numa); + if (numa_init_fn) { + numa_init_fn(numa); + } } }