Signed-off-by: Julien Cristau <jcris...@debian.org> --- Xext/xvmc.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/Xext/xvmc.c b/Xext/xvmc.c index 64eda92..7565c17 100644 --- a/Xext/xvmc.c +++ b/Xext/xvmc.c @@ -253,6 +253,10 @@ ProcXvMCCreateContext(ClientPtr client) free(pContext); return result; } + if (!AddResource(pContext->context_id, XvMCRTContext, pContext)) { + free(data); + return BadAlloc; + } rep = (xvmcCreateContextReply) { .type = X_Reply, @@ -266,7 +270,6 @@ ProcXvMCCreateContext(ClientPtr client) WriteToClient(client, sizeof(xvmcCreateContextReply), &rep); if (dwords) WriteToClient(client, dwords << 2, data); - AddResource(pContext->context_id, XvMCRTContext, pContext); free(data); @@ -329,6 +332,11 @@ ProcXvMCCreateSurface(ClientPtr client) free(pSurface); return result; } + if (!AddResource(pSurface->surface_id, XvMCRTSurface, pSurface)) { + free(data); + return BadAlloc; + } + rep = (xvmcCreateSurfaceReply) { .type = X_Reply, .sequenceNumber = client->sequence, @@ -338,7 +346,6 @@ ProcXvMCCreateSurface(ClientPtr client) WriteToClient(client, sizeof(xvmcCreateSurfaceReply), &rep); if (dwords) WriteToClient(client, dwords << 2, data); - AddResource(pSurface->surface_id, XvMCRTSurface, pSurface); free(data); @@ -445,6 +452,11 @@ ProcXvMCCreateSubpicture(ClientPtr client) free(pSubpicture); return result; } + if (!AddResource(pSubpicture->subpicture_id, XvMCRTSubpicture, pSubpicture)) { + free(data); + return BadAlloc; + } + rep = (xvmcCreateSubpictureReply) { .type = X_Reply, .sequenceNumber = client->sequence, @@ -462,7 +474,6 @@ ProcXvMCCreateSubpicture(ClientPtr client) WriteToClient(client, sizeof(xvmcCreateSubpictureReply), &rep); if (dwords) WriteToClient(client, dwords << 2, data); - AddResource(pSubpicture->subpicture_id, XvMCRTSubpicture, pSubpicture); free(data); -- 2.7.0 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel