]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
ggml: handle ggml_init failure to fix NULL pointer deref (llama/8692)
authorDavidKorczynski <redacted>
Thu, 25 Jul 2024 21:23:05 +0000 (22:23 +0100)
committerGeorgi Gerganov <redacted>
Thu, 8 Aug 2024 19:48:46 +0000 (22:48 +0300)
`ggml_init` can fail if no unused context is found. In that case, a NULL-pointer deref will happen later in the code during a call to `ggml_set_on_alloc`.

This fixes it by bailing out if no context is found.

ggml/src/ggml.c

index c6117c37436ee55410f185f32643c5862fa97913..4319866618357f88fdf7d28406922eef80d2093a 100644 (file)
@@ -21095,6 +21095,12 @@ struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_p
         };
 
         *params.ctx = ggml_init(pdata);
+        if (*params.ctx == NULL) {
+            fprintf(stderr, "%s: failed to initialize context\n", __func__);
+            fclose(file);
+            gguf_free(ctx);
+            return NULL;
+        }
 
         struct ggml_context * ctx_data = *params.ctx;