From 9b09655a587f03b4096df0a4314e98a267816cfa Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 4 Oct 2021 11:18:47 +0200 Subject: [PATCH] vbo/dlist: free copied.buffer if no vertices were copied MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Other parts of the code asserts that copied.buffer is NULL if there are no vertices to copy. Cc: mesa-stable Reviewed-by: Marek Olšák Part-of: --- src/mesa/vbo/vbo_save_api.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index 6bcd3e965f2..e71613c93cf 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -168,8 +168,13 @@ copy_vertices(struct gl_context *ctx, assert(save->copied.buffer == NULL); save->copied.buffer = malloc(sizeof(fi_type) * sz * prim->count); - return vbo_copy_vertices(ctx, prim->mode, prim->start, &prim->count, - prim->begin, sz, true, save->copied.buffer, src); + unsigned r = vbo_copy_vertices(ctx, prim->mode, prim->start, &prim->count, + prim->begin, sz, true, save->copied.buffer, src); + if (!r) { + free(save->copied.buffer); + save->copied.buffer = NULL; + } + return r; }