summaryrefslogtreecommitdiff
authorJulien Cristau <jcristau@debian.org>2011-11-05 12:00:07 (GMT)
committer Julien Cristau <jcristau@debian.org>2011-11-19 13:25:53 (GMT)
commit08ec4da6a7617637914bee1636858474213cf39d (patch) (side-by-side diff)
tree4f616e1607a35c7407b3b9693c617879f9761180
parenta551f126cc4af7a476d9c8fd0cb309d5aa600d54 (diff)
downloadxserver-for-keith.zip
xserver-for-keith.tar.gz
Fix ShmPutImage for XYBitmapfor-keith
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 <pacman@kosh.dhis.org> Reviewed-by: Peter Harris <pharris@opentext.com> Signed-off-by: Julien Cristau <jcristau@debian.org>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Xext/shm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Xext/shm.c b/Xext/shm.c
index 9c8beb2..7ca027a 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),