From: DavidKorczynski Date: Thu, 25 Jul 2024 21:23:05 +0000 (+0100) Subject: ggml: handle ggml_init failure to fix NULL pointer deref (#8692) X-Git-Tag: upstream/0.0.4488~1023 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=49ce0ab6d45402e8bb622bf86f86529f2b0ba552;p=pkg%2Fggml%2Fsources%2Fllama.cpp ggml: handle ggml_init failure to fix NULL pointer deref (#8692) `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. --- diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index f65837e8..29afcc7f 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -21096,6 +21096,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;