From: Michel Dänzer <[email protected]>

Otherwise sys_pitch will be stale when a system memory copy is allocated.

Fixes a crash when unlocking the screen with xscreensaver, reported by Janne
Huttunen.

Signed-off-by: Michel Dänzer <[email protected]>
Tested-by: Janne Huttunen <[email protected]>
Signed-off-by: Michel Dänzer <[email protected]>
---
 exa/exa_mixed.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
index fd1afb2..ff9f30e 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
@@ -185,11 +185,12 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, 
int height, int depth,
             RegionEmpty(&pExaPixmap->validFB);
         }
 
+       pExaPixmap->sys_pitch = PixmapBytePad(width, depth);
+
        /* Need to re-create system copy if there's also a GPU copy */
        if (has_gpu_copy && pExaPixmap->sys_ptr) {
            free(pExaPixmap->sys_ptr);
            pExaPixmap->sys_ptr = NULL;
-           pExaPixmap->sys_pitch = PixmapBytePad(width, depth);
            DamageUnregister(&pPixmap->drawable, pExaPixmap->pDamage);
            DamageDestroy(pExaPixmap->pDamage);
            pExaPixmap->pDamage = NULL;
-- 
1.7.5.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to