Module: Mesa Branch: master Commit: 59af7ed28cd1b44b525a7d6a324c4e00092104b6 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=59af7ed28cd1b44b525a7d6a324c4e00092104b6
Author: Martin Peres <martin.pe...@linux.intel.com> Date: Mon Mar 30 10:34:20 2015 +0300 mesa/fbo: lock ctx->Shared->Mutex when allocating renderbuffers This mutex is used to make sure the shared context does not change while some shared code is looking into it. Calling BindRenderbufferEXT BindRenderbuffer with a gles context would not take the mutex before allocating an entry. Commit a34669b then moved out the allocation out of bind_renderbuffer into allocate_renderbuffer before using it for the CreateRenderBuffer entry point. This thus also made this entry point unsafe. The issue has been hinted by Ilia Mirkin. Reviewed-by: Brian Paul <bri...@vmware.com> Signed-off-by: Martin Peres <martin.pe...@linux.intel.com> --- src/mesa/main/fbobject.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 3808b56..8032585 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -1218,8 +1218,10 @@ allocate_renderbuffer(struct gl_context *ctx, GLuint renderbuffer, return NULL; } assert(newRb->AllocStorage); + mtx_lock(&ctx->Shared->Mutex); _mesa_HashInsert(ctx->Shared->RenderBuffers, renderbuffer, newRb); newRb->RefCount = 1; /* referenced by hash table */ + mtx_unlock(&ctx->Shared->Mutex); return newRb; } _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit