From cdb81d4ea16ff80a03dd3fc51a01b97b584275e3 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 7 Jan 2024 12:20:04 +0200 Subject: [PATCH 1/2] ggml : fix null backend dereference --- ggml-cuda.cu | 2 +- ggml-metal.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ggml-cuda.cu b/ggml-cuda.cu index 032d7e98689e1..ee82f68d74e9a 100644 --- a/ggml-cuda.cu +++ b/ggml-cuda.cu @@ -10140,7 +10140,7 @@ ggml_backend_t ggml_backend_cuda_init(int device) { } bool ggml_backend_is_cuda(ggml_backend_t backend) { - return backend->iface.get_name == ggml_backend_cuda_name; + return backend && backend->iface.get_name == ggml_backend_cuda_name; } int ggml_backend_cuda_get_device_count() { diff --git a/ggml-metal.m b/ggml-metal.m index e3d76b9d3d332..00b377a3e1389 100644 --- a/ggml-metal.m +++ b/ggml-metal.m @@ -2749,7 +2749,7 @@ ggml_backend_t ggml_backend_metal_init(void) { } bool ggml_backend_is_metal(ggml_backend_t backend) { - return backend->iface.get_name == ggml_backend_metal_name; + return backend && backend->iface.get_name == ggml_backend_metal_name; } void ggml_backend_metal_set_n_cb(ggml_backend_t backend, int n_cb) { From 44c93c67461589758adc28d4696240290da595e6 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 7 Jan 2024 12:26:50 +0200 Subject: [PATCH 2/2] ggml : also check ggml_backend_is_cpu --- ggml-backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ggml-backend.c b/ggml-backend.c index 56f96c3671ec1..8d66c5605de46 100644 --- a/ggml-backend.c +++ b/ggml-backend.c @@ -703,7 +703,7 @@ ggml_backend_t ggml_backend_cpu_init(void) { } bool ggml_backend_is_cpu(ggml_backend_t backend) { - return backend->iface.get_name == ggml_backend_cpu_name; + return backend && backend->iface.get_name == ggml_backend_cpu_name; } void ggml_backend_cpu_set_n_threads(ggml_backend_t backend_cpu, int n_threads) {