diff --git a/ggml.c b/ggml.c index 535c7b7d281dd..aec75dd64571f 100644 --- a/ggml.c +++ b/ggml.c @@ -2447,6 +2447,16 @@ struct ggml_context * ggml_init(struct ggml_init_params params) { /*.scratch_save =*/ { 0, 0, NULL, }, }; + if (ctx->mem_buffer == NULL) { + fprintf(stderr, "%s: failed to allocate memory buffer of size %zu\n", __func__, params.mem_size); + + GGML_PRINT_DEBUG("%s: failed to allocate memory buffer\n", __func__); + + ggml_critical_section_end(); + + return NULL; + } + ggml_assert_aligned(ctx->mem_buffer); GGML_PRINT_DEBUG("%s: context initialized\n", __func__);