summaryrefslogtreecommitdiff
path: root/src/via_xvmc.c
diff options
context:
space:
mode:
authorJames Simmons <jsimmons@infradead.org>2011-12-26 21:53:33 +0000
committerJames Simmons <jsimmons@infradead.org>2011-12-26 21:53:33 +0000
commit0789b06d20a234f82d6c036f7084a8fb6fc7a7ff (patch)
tree1803f8b0abddebedeb2d9bac87f32061bcb3f726 /src/via_xvmc.c
parent46d7bef7c0aaf87a76e2e4748dd56f893cfc26bf (diff)
fix a double free and unmapping of video plane memory
Diffstat (limited to 'src/via_xvmc.c')
-rw-r--r--src/via_xvmc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/via_xvmc.c b/src/via_xvmc.c
index 12ce681..b63fecb 100644
--- a/src/via_xvmc.c
+++ b/src/via_xvmc.c
@@ -608,6 +608,7 @@ ViaXvMCCreateSurface(ScrnInfoPtr pScrn, XvMCSurfacePtr pSurf,
memset(buf + yBufSize, 0x80, yBufSize >> 1);
buf += bufSize;
}
+ drm_bo_unmap(pScrn, sPriv->memory_ref);
vXvMC->sPrivs[srfNo] = sPriv;
vXvMC->surfaces[srfNo] = pSurf->surface_id;
@@ -735,7 +736,6 @@ ViaXvMCDestroySurface(ScrnInfoPtr pScrn, XvMCSurfacePtr pSurf)
if (!__ret)
ViaOverlayHide(pScrn);
}
- drm_bo_unmap(pScrn, vXvMC->sPrivs[i]->memory_ref);
drm_bo_free(pScrn, vXvMC->sPrivs[i]->memory_ref);
free(vXvMC->sPrivs[i]);
vXvMC->nSurfaces--;