aboutsummaryrefslogtreecommitdiff
path: root/ggml-metal.m
diff options
context:
space:
mode:
authorSpencer Sutton <spencersutton@users.noreply.github.com>2023-06-05 23:28:17 -0400
committerGitHub <noreply@github.com>2023-06-06 06:28:17 +0300
commit590250f7a9847bc9c83aa063dbaac8fa0fea27c8 (patch)
tree8ee19cf55a027e846ba83efb183c195d9182f7aa /ggml-metal.m
parentf4c55d3bd7e124b101bc974cbbf0e0dbbc32d5a3 (diff)
metal : add checks for buffer size (#1706)
Co-authored-by: Spencer Sutton <Spencer.Sutton@precisely.com>
Diffstat (limited to 'ggml-metal.m')
-rw-r--r--ggml-metal.m5
1 files changed, 5 insertions, 0 deletions
diff --git a/ggml-metal.m b/ggml-metal.m
index 82c6596..d721ac6 100644
--- a/ggml-metal.m
+++ b/ggml-metal.m
@@ -204,6 +204,11 @@ bool ggml_metal_add_buffer(
ctx->buffers[ctx->n_buffers].name = name;
ctx->buffers[ctx->n_buffers].data = data;
ctx->buffers[ctx->n_buffers].size = size;
+
+ if (ctx->device.maxBufferLength < aligned_size) {
+ fprintf(stderr, "%s: buffer '%s' size %zu is larger than buffer maximum of %zu\n", __func__, name, aligned_size, ctx->device.maxBufferLength);
+ return false;
+ }
ctx->buffers[ctx->n_buffers].metal = [ctx->device newBufferWithBytesNoCopy:data length:aligned_size options:MTLResourceStorageModeShared deallocator:nil];
if (ctx->buffers[ctx->n_buffers].metal == nil) {