diff options
author | Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> | 2021-10-04 11:18:47 +0200 |
---|---|---|
committer | Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> | 2021-11-04 13:59:00 +0100 |
commit | 9b09655a587f03b4096df0a4314e98a267816cfa (patch) | |
tree | 28fd6f554d5ceab1c8b5a9756d4ed6ed4924374f /src/mesa | |
parent | 118f2952b621ac56bb681b644d73882ecabc4614 (diff) |
vbo/dlist: free copied.buffer if no vertices were copied
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 <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13246>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/vbo/vbo_save_api.c | 9 |
1 files 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; } |