From 08ec4da6a7617637914bee1636858474213cf39d Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Sat, 5 Nov 2011 13:00:07 +0100 Subject: Fix ShmPutImage for XYBitmap We can't call CopyArea in that case because the image has depth 1, which might not match the target drawable, so we might overrun the shm segment. Commit 11817a881cb93a89788105d1e575a468f2a8d27c apparently fixed a similar bug for XYPixmap, but missed the bitmap case. Fixes: http://bugs.debian.org/629611 Thanks to Alan Curry for diagnosing this and providing a test case. Reported-and-tested-by: Alan Curry Reviewed-by: Peter Harris Signed-off-by: Julien Cristau --- Xext/shm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Xext/shm.c') diff --git a/Xext/shm.c b/Xext/shm.c index 9c8beb27c..7ca027a90 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -481,7 +481,7 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC, { PixmapPtr pPixmap; - if (format == ZPixmap || depth == 1) { + if (format == ZPixmap || (format == XYPixmap && depth == 1)) { pPixmap = GetScratchPixmapHeader(dst->pScreen, w, h, depth, BitsPerPixel(depth), PixmapBytePad(w, depth), -- cgit v1.2.3